cmake、bison、ncurses-devel、boost# 檢查是否已安裝 rpm -qa | grep cmake # 源碼安裝 tar zxvf cmake-3.6.0.tar.gz cd cmake-3.6.0 ./bootstrap make && make install
tar zxvf bison-3.0.4.tar.gz cd bison-3.0.4 ./configure make && make install
yum -y install ncurses-devel
tar -zxvf mysql-5.7.13.tar.gz cd mysql-5.7.13
cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ -DDEFAULT_CHARSET=gbk \ -DDEFAULT_COLLATION=gbk_chinese_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 \ -DDOWNLOAD_BOOST=1 \ -DWITH_BOOST=/usr/local/boost
| 參數 | 說明 |
|---|---|
CMAKE_INSTALL_PREFIX | 安裝根目錄 |
MYSQL_UNIX_ADDR | Socket 檔案路徑 |
DEFAULT_CHARSET/COLLATION | 預設字符集/排序規則 |
WITH_*_STORAGE_ENGINE | 啟用儲存引擎 |
MYSQL_DATADIR | 數據目錄(建議獨立分區) |
DDOWNLOAD_BOOST=1 | 自動下載 Boost(5.7 必須) |
DWITH_BOOST | Boost 存放/下載路徑 |
CMake Error: Could NOT find BOOST 解決:加上 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost
CMake Error: Curses library not found 解決: 1) yum -y install ncurses-devel 2) rm CMakeCache.txt 3) 重新執行 cmake
make -j$(nproc) # 多核並行編譯 make install
groupadd mysql useradd -r -g mysql -s /bin/false mysql mkdir -p /data/mysqldb chown -R mysql:mysql /usr/local/mysql /data/mysqldb
cd /usr/local/mysql bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldb
⚠️ 輸出中會生成臨時 root 密碼,請妥善保存:[Note] A temporary password is generated for root@localhost: xxxx
cp support-files/my-default.cnf /etc/my.cnf # 編輯 /etc/my.cnf 確認 basedir、datadir、socket、port、字符集等
cp support-files/mysql.server /etc/init.d/mysqld chmod +x /etc/init.d/mysqld chkconfig --add mysqld chkconfig mysqld on service mysqld start
mysql -uroot -p'臨時密碼' ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPass123!'; FLUSH PRIVILEGES;
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile source /etc/profile
mysql -V mysql -uroot -p -e "SHOW VARIABLES LIKE 'version'; SHOW ENGINES;"
mysql_install_db 棄用,改用 mysqld --initializevalidate_password 插件,密碼策略嚴格sql_mode 預設包含 ONLY_FULL_GROUP_BY 等嚴格模式utf8mb4