編譯前置依賴
yum install -y gcc gcc-c++ ncurses-devel perl cmake make bison openssl-devel libxml2-devel
建立用戶與目錄
groupadd mysql
useradd -r -g mysql -s /sbin/nologin mysql
mkdir -p /usr/local/mysql /data/mysqldb
chown -R mysql:mysql /usr/local/mysql /data/mysqldb
下載源碼並編譯安裝
wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.16.tar.gz
tar -zxvf mysql-5.6.16.tar.gz
cd mysql-5.6.16
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysqldb \
-DMYSQL_TCP_PORT=3306 \
-DENABLE_DOWNLOADS=1
make && make install
cmake 關鍵參數對照表
| 參數 | 說明 |
CMAKE_INSTALL_PREFIX | 安裝根目錄 |
MYSQL_UNIX_ADDR | Socket 檔案路徑 |
DEFAULT_CHARSET | 預設字符集(utf8/utf8mb4) |
WITH_*_STORAGE_ENGINE=1 | 靜態編譯指定引擎 |
MYSQL_DATADIR | 資料目錄 |
ENABLE_DOWNLOADS=1 | 自動下載測試套件(Google Test) |
初始化與啟動
cd /usr/local/mysql
scripts/mysql_install_db --user=mysql --datadir=/data/mysqldb
cp support-files/my-default.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
# 加入 PATH
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
source /etc/profile
# 啟動並設定開機自啟
service mysqld start
chkconfig --level 35 mysqld on
常見錯誤與修復
| 錯誤 | 解決 |
| The server quit without updating PID file | 檢查 /etc/my.cnf datadir 指向正確 |
| Can't connect to local MySQL server through socket '/tmp/mysql.sock' | 建立軟連結:ln -s /usr/local/mysql/data/mysql.sock /tmp/mysql.sock |
| mysql: command not found | ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql |
| World-writable config file '/usr/local/mysql/my.cnf' is ignored | chmod 644 /usr/local/mysql/my.cnf |
安全強化
mysqladmin -u root password '123456'
# 或執行互動式腳本
/usr/local/mysql/bin/mysql_secure_installation