本文記錄在 RedHat 7.1 上使用官方二進制包 (.tar.gz) 部署 MySQL 5.7.10 的標準化流程:目錄規劃、解壓部署、用戶權限、數據目錄初始化、SSL 憑證生成、配置檔與啟動腳本部署、服務註冊、密碼修改全過程。
| 用途 | 路徑 |
|---|---|
| 程式安裝目錄 | /usr/local/mysql |
| 資料目錄 | /data/mysql |
| 日誌目錄 | /data/log/mysql |
tar -zxvf mysql-5.7.10-linux-glibc2.5-x86_64.tar.gzmv mysql-5.7.10-linux-glibc2.5-x86_64 /usr/local/mysqlmkdir -p /data/mysql /data/log/mysql useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql chown -R mysql:mysql /usr/local/mysql chown -R mysql:mysql /data/mysql
cd /usr/local/mysql bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql # 輸出會包含臨時 root 密碼,例:h(g+qq)pk6fw **請務必記錄**
bin/mysql_ssl_rsa_setup --datadir=/data/mysql
cd support-files cp my-default.cnf /etc/my.cnf cp mysql.server /etc/init.d/mysql
basedir=/usr/local/mysql、datadir=/data/mysql。[mysqld] basedir=/usr/local/mysql datadir=/data/mysql port=3306 socket=/data/mysql/mysql.sock log-error=/data/log/mysql/mysql_error.log pid-file=/data/mysql/mysqld.pid character-set-server=utf8 innodb_buffer_pool_size=1G # 視記憶體調整 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
touch /data/log/mysql/mysql_error.log chown mysql:mysql /data/log/mysql/mysql_error.log mkdir -p /usr/local/mysql/data touch /usr/local/mysql/data/mysqld_safe.pid chown mysql:mysql /usr/local/mysql/data/mysqld_safe.pid
ln -s /usr/local/mysql/bin/mysql /usr/bin/ ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/
service mysql start
mysql -u root -p # 輸入步驟 5 記錄的臨時密碼 ALTER USER 'root'@'localhost' IDENTIFIED BY 'admin'; # 或 5.7.6+ 語法:SET PASSWORD = 'admin'; FLUSH PRIVILEGES;
--initialize 會生成隨機臨時密碼並建立 SSL 憑證;5.6 需手動執行 mysql_install_db。ALTER USER 或 SET PASSWORD,PASSWORD() 函數已棄用。sql_mode 預設嚴格模式(ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, ...),遷移舊應用可能需調整。/etc/my.cnf 路徑是否正確、datadir 權限、log-error 目錄是否存在且可寫、SELinux 是否阻擋(setenforce 0 測試)。socket 參數在 [mysqld] 和 [client] 區塊一致,或連線時指定 --socket=/data/mysql/mysql.sock。