cmake + make)yum -y install gcc gcc-c++ wget make cmake ncurses-devel bison
useradd -r -s /sbin/nologin mysql
-r 創建系統用戶,-s /sbin/nologin 禁止登入,符合最小權限原則。
cd /usr/local/src wget ftp://mirror.switch.ch/mirror/mysql/Downloads/MySQL-5.6/mysql-5.6.25.tar.gz tar zxf mysql-5.6.25.tar.gz cd mysql-5.6.25 # 採用默認 cmake 參數編譯(生產建議顯式指定關鍵路徑,見下文) cmake . make && make install
| 參數 | 說明 | 示例值 |
|---|---|---|
| -DCMAKE_INSTALL_PREFIX | 安裝根目錄 | /usr/local/mysql |
| -DMYSQL_DATADIR | 數據目錄 | /data/mysql |
| -DMYSQL_TCP_PORT | 監聽端口 | 3306 |
| -DDEFAULT_CHARSET | 默認字符集 | utf8mb4 |
| -DDEFAULT_COLLATION | 默認排序規則 | utf8mb4_unicode_ci |
| -DSYSCONFDIR | 配置文件目錄 | /etc/mysql |
| -DMYSQL_UNIX_ADDR | Socket 文件路徑 | /tmp/mysql.sock |
| -DWITH_INNOBASE_STORAGE_ENGINE | 啟用 InnoDB | 1 |
| -DWITH_PARTITION_STORAGE_ENGINE | 啟用分區 | 1 |
完整參數列表請參考:官方文檔
cd /usr/local chown -R root:mysql mysql/ chown -R mysql mysql/data/ # 複製啟動腳本與默認配置 cp mysql/support-files/mysql.server /etc/init.d/mysqld cp mysql/support-files/my-default.cnf /etc/my.cnf # 初始化系統表 (5.6 版本) ./mysql/scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/ --basedir=/usr/local/mysql/ # 環境變量 echo "export PATH=\$PATH:/usr/local/mysql/bin/" >> /etc/profile source /etc/profile
service mysqld start netstat -lnpt | grep 3306
報錯:Starting MySQL...The server quit without updating PID file [FAILED]
日志提示內存不足 (需 ≥ 1GB)。解決方案:
my-small.cnf 覆蓋 /etc/my.cnfinnodb_buffer_pool_size=64M、key_buffer_size=16M、table_open_cache=256 等# 首次登入 (5.6 默認無密碼或隨機密碼在 ~/.mysql_secret)
mysql
# 方式一:mysqladmin
mysqladmin -uroot -p password 'NewPass123!'
# 方式二:SQL 更新 user 表
UPDATE mysql.user SET authentication_string=PASSWORD('NewPass123!') WHERE User='root';
FLUSH PRIVILEGES;
# 方式三:GRANT 授權 (同時開放遠程訪問)
GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY 'NewPass123!' WITH GRANT OPTION;
FLUSH PRIVILEGES;
# 1. 停止服務
/etc/init.d/mysqld stop
# 2. 跳過授權表啟動
/usr/local/mysql/bin/mysqld_safe --skip-grant-tables &
# 3. 無密碼登入修改
mysql
UPDATE mysql.user SET authentication_string=PASSWORD('NewPass123!') WHERE User='root';
FLUSH PRIVILEGES;
# 4. 正常重啟
/etc/init.d/mysqld restart
innodb_buffer_pool_size 與物理內存匹配,512MB 機器建議改用二進制包 + 小內存配置或升級內存。CMAKE_INSTALL_PREFIX、MYSQL_DATADIR 等,避免默認路徑導致維護混亂。mysql_secure_installation 移除匿名用戶、禁止 root 遠程登入、刪除 test 庫。