CentOS 6.6 上 MySQL 5.7.14 二進制包(mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz)標準化部署全流程,含目錄規劃、mysql 用戶、my.cnf 生成、--initialize、隨機密碼提取、ALTER USER 修改密碼、安全加固。
mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz(~642MB)cd /tools
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz
mkdir -p /opt/mysql
tar -zxvf mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz -C /opt/mysql
mv /opt/mysql/mysql-5.7.14-linux-glibc2.5-x86_64 /opt/mysql/mysql-5.7.14
ln -s /opt/mysql/mysql-5.7.14 /usr/local/mysql
groupadd mysql
useradd -M -g mysql -s /sbin/nologin -d /usr/local/mysql mysql
mkdir -p /data/mysql/mysql_3306/{data,logs,tmp}
chown -R mysql:mysql /data/mysql/mysql_3306
/etc/my.cnf(關鍵配置見正文完整版)basedir = /usr/local/mysql
datadir = /data/mysql/mysql_3306/data
port = 3306
socket = /data/mysql/mysql_3306/data/mysql.sock
log-error = /data/mysql/mysql_3306/logs/error.log
pid-file = /data/mysql/mysql_3306/data/mysqld.pid
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
innodb_buffer_pool_size = 512M # 按實際記憶體 50-70% 調整
sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
# 其餘緩衝池、日誌、執行緒、複寫參數...
cd /usr/local/mysql
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/mysql_3306/data
# 生成隨機 root 密碼,寫入 error.log
tail -f /data/mysql/mysql_3306/data/error.log
# 關鍵行:InnoDB: Shutdown completed; log sequence number ...
grep 'temporary password' /data/mysql/mysql_3306/data/error.log
# 2016-08-31T09:44:21.172167Z 1 [Note] A temporary password is generated for root@localhost: 8aahkRkxfm%t
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig --add mysql
chkconfig mysql on
# 方式一:mysqld_safe 後台
./bin/mysqld_safe --user=mysql &
# 方式二:service
service mysql start
# 方式三:/etc/init.d
/etc/init.d/mysql start
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bash_profile
source ~/.bash_profile
mysql -uroot -p'8aahkRkxfm%t'
ALTER USER USER() IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
DELETE FROM mysql.user WHERE User != 'root' OR Host != 'localhost';
FLUSH PRIVILEGES;
-- 5.6 需額外:DROP DATABASE test; TRUNCATE mysql.db;
mysql -uroot -p'123456' -e "SHOW DATABASES;"
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
二進制包部署可控性強、無 RPM 依賴地獄,適合自動化腳本與容器化封裝。