首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

CentOS 6.5 64位原始碼編譯安裝 MySQL 5.6.23 完整教學

     編輯:MySQL 綜合教學

CentOS 6.5 64位原始碼編譯安裝 MySQL 5.6.23 完整教學

本文詳細記錄在 CentOS 6.5 x86_64 環境下,從原始碼編譯安裝 MySQL 5.6.23 的完整流程,包含環境準備、依賴安裝、編譯參數調整、目錄規劃、配置檔優化、資料庫初始化與服務啟動等關鍵步驟,適合生產環境部署參考。

一、環境準備與基礎設定

1. 關閉防火牆與 SELinux

chkconfig iptables off
service iptables stop
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

2. 移除系統預裝 MySQL 套件

CentOS 6.5 預裝 mysql-libs-5.1.x 會與高版本衝突,需先移除:

rpm -qa | grep mysql
rpm -e --nodeps mysql-libs-5.1.61-4.el6.x86_64

3. 安裝編譯依賴套件

yum -y install gcc gcc-c++ cmake ncurses-devel perl-Data-Dumper bison

4. 建立 MySQL 專用用戶與群組

groupadd mysql
useradd -r -g mysql -s /sbin/nologin -M mysql

二、目錄規劃與權限設定

採用 /u01/my3306 作為安裝根目錄,分離數據、日誌、臨時檔案:

mkdir -p /u01/my3306/{data,log/iblog,log/binlog,log/relaylog,run,tmp}
chown -R mysql:mysql /u01/my3306
chmod -R 755 /u01/my3306

三、原始碼下載與解壓

cd /usr/local/src
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.23.tar.gz
tar zxvf mysql-5.6.23.tar.gz
cd mysql-5.6.23

四、CMake 編譯配置

關鍵參數說明:
- CMAKE_INSTALL_PREFIX:安裝路徑
- INSTALL_DATADIR:數據目錄
- DEFAULT_CHARSET/DEFAULT_COLLATION:預設字符集
- WITH_SSL:啟用 SSL
- MYSQL_UNIX_ADDR:Socket 檔案路徑
- SYSCONFDIR:配置檔搜尋目錄(/etc)

cmake \
-DCMAKE_INSTALL_PREFIX=/u01/my3306 \
-DINSTALL_DATADIR=/u01/my3306/data \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_SSL=yes \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/u01/my3306/run/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DSYSCONFDIR=/etc \
-DWITH_READLINE=on

五、編譯安裝

make -j$(nproc)
make install

六、配置檔優化 (my.cnf)

建立 /u01/my3306/my.cnf,核心優化參數如下:

[client]
port=3306
socket=/u01/my3306/run/mysql.sock
default-character-set=utf8

[mysql]
prompt="\\u@\\h [\\d]> "

[mysqld]
# 基礎設定
basedir=/u01/my3306
datadir=/u01/my3306/data
port=3306
server_id=101
socket=/u01/my3306/run/mysql.sock
pid_file=/u01/my3306/run/mysqld.pid
tmpdir=/u01/my3306/tmp
user=mysql
skip_name_resolve=ON
explicit_defaults_for_timestamp=true
max_connections=8192
max_user_connections=8000
open_files_limit=65535
max_allowed_packet=128M

# InnoDB 核心優化
innodb_buffer_pool_size=128M
innodb_buffer_pool_instances=8
innodb_log_file_size=1G
innodb_log_files_in_group=4
innodb_log_buffer_size=64M
innodb_flush_log_at_trx_commit=1
innodb_flush_method=O_DIRECT
innodb_file_per_table=ON
innodb_file_format=Barracuda
innodb_io_capacity=1000
innodb_read_io_threads=4
innodb_write_io_threads=10
innodb_purge_threads=1
innodb_lock_wait_timeout=10

# Binlog 設定(主從複制必備)
log_bin=/u01/my3306/log/binlog/binlog
binlog_format=ROW
binlog_cache_size=32K
max_binlog_size=500M
max_binlog_cache_size=2G
expire_logs_days=7
sync_binlog=100
log_slave_updates=ON

# 慢查詢日誌
slow_query_log=1
slow_query_log_file=/u01/my3306/log/slow.log
long_query_time=1
log_queries_not_using_indexes=1
log_slow_admin_statements=1

# Relay Log
relay_log=/u01/my3306/log/relaylog/relaylog
relay_log_index=/u01/my3306/log/relaylog/relaylog.index

# 其他
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
character_set_server=utf8
collation_server=utf8_general_ci

[mysqld_safe]
datadir=/u01/my3306/data
log_error=/u01/my3306/log/alert.log

七、初始化資料庫

cd /u01/my3306
rm -rf data/* log/iblog/* log/binlog/*
chmod -R 777 data/ log/iblog/ log/binlog/
chmod 755 my.cnf
./scripts/mysql_install_db --defaults-file=/u01/my3306/my.cnf --datadir=/u01/my3306/data --user=mysql
chmod -R 777 data/ log/iblog/ log/binlog/

八、啟動服務與驗證

1. 設定環境變數

echo 'export PATH=$PATH:/u01/my3306/bin' >> /root/.bash_profile
source /root/.bash_profile

2. 啟動 MySQL

mysqld_safe --defaults-file=/u01/my3306/my.cnf --user=mysql &

3. 驗證安裝

mysql -h127.0.0.1 -uroot -e "SHOW VARIABLES LIKE '%version%'; SHOW VARIABLES LIKE '%log_bin%';"

九、常用管理腳本

建立初始化、啟動、登入腳本便於日常維護:

# init3306.sh
rm -rf /u01/my3306/data/* /u01/my3306/log/iblog/* /u01/my3306/log/binlog/*
chmod -R 777 /u01/my3306/data/ /u01/my3306/log/iblog/ /u01/my3306/log/binlog/
chmod 755 /u01/my3306/my.cnf
/u01/my3306/scripts/mysql_install_db --defaults-file=/u01/my3306/my.cnf --datadir=/u01/my3306/data --user=mysql
chmod -R 777 /u01/my3306/data/ /u01/my3306/log/iblog/ /u01/my3306/log/binlog/

# start3306.sh
/u01/my3306/bin/mysqld_safe --defaults-file=/u01/my3306/my.cnf --user=mysql &

# logon3306.sh
/u01/my3306/bin/mysql -h127.0.0.1 -uroot

十、開機自啟動設定

echo "/u01/my3306/bin/mysqld_safe --defaults-file=/u01/my3306/my.cnf --user=mysql &" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local

完成上述步驟即可獲得一個高效能、生產就緒的 MySQL 5.6.23 實例。建議後續根據實際業務負載調整 innodb_buffer_pool_size、連接數等核心參數。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved