針對需自訂安裝路徑、多實例、或無 yum 源環境,採用官方 Generic Linux 二進制包 (tar.gz) 手動部署 MySQL 5.6 的標準化流程。
tar -xvf mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz -C /usr/local/ mv /usr/local/mysql-5.6.12-linux-glibc2.5-x86_64 /usr/local/mysql
groupadd -r mysql useradd -g mysql -r -s /sbin/nologin -M -d /usr/local/mysql mysql chown -R mysql:mysql /usr/local/mysql
mkdir -p /usr/local/mysql/mysqldata /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/mysqldata ls /usr/local/mysql/mysqldata/ # 確認產生 ibdata1、mysql、performance_schema 等
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld chmod +x /etc/init.d/mysqld chkconfig --add mysqld chkconfig mysqld on chkconfig --list mysqld # 驗證 2345 on
service mysqld start
# 初次啟動無密碼
/usr/local/mysql/bin/mysql -u root
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'StrongP@ssw0rd!'; -- 5.7+
# 或 5.6
mysql> SET PASSWORD = PASSWORD('StrongP@ssw0rd!');
mysql> FLUSH PRIVILEGES;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'StrongP@ssw0rd!' WITH GRANT OPTION; mysql> FLUSH PRIVILEGES;
安全提醒:生產環境請禁止 root 遠程登入,改建立應用專用帳號並限制來源 IP。
vi /usr/local/mysql/my.cnf [mysqld] lower_case_table_names = 1 service mysqld restart
| 操作 | 指令 |
|---|---|
| 啟動 | service mysqld start |
| 停止 | service mysqld stop |
| 重啟 | service mysqld restart |
| 登入 | /usr/local/mysql/bin/mysql -u root -p |
| 查看進程 | ps aux | grep mysql |
| 查看端口 | netstat -ntlp | grep 3306 |
| 查看表數量 | SELECT COUNT(TABLE_NAME) FROM information_schema.TABLES WHERE TABLE_SCHEMA='db_name'; |
datadir、my.cnf (port、socket、pid-file、datadir 各不同)。mysqld_multi 管理或各自註冊 mysqld3306, mysqld3307 服務。innodb_buffer_pool_size 總和 < 物理記憶體 70%。