mysql-standard-5.0.xx-linux-i686-icc-glibc23.tar.gz(ICC 編譯版,官方宣稱效能較 GCC 版高 10-20%)tar zxvf mysql-standard-5.0.xx-linux-i686-icc-glibc23.tar.gz -C /usr/local/groupadd mysql
useradd -r -g mysql -s /bin/false mysql
cd /usr/local
ln -s mysql-standard-5.0.xx mysql # 符號連結便於版本切換
cd mysql
./scripts/mysql_install_db --user=mysql
chown -R root .
chown -R mysql data
chgrp -R mysql .
/etc/my.cnf(關鍵參數)[mysqld]
# 基礎路徑
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
socket = /tmp/mysql.sock
# 預設引擎與字元集
default-storage-engine = INNODB
default-character-set = utf8
# 禁用 BDB 引擎(節省記憶體)
skip-bdb
# 連線與緩衝區(視記憶體調整)
key_buffer_size = 64M
innodb_buffer_pool_size = 128M
max_connections = 500
/usr/local/mysql/bin/mysqld_safe --user=mysql &
/usr/local/mysql/bin/mysqladmin -u root password 'StrongPass123!'
# 輸入舊密碼直接 Enter(初始為空)
/usr/local/mysql/bin/mysql -u root -p
CREATE USER 'app'@'localhost' IDENTIFIED BY 'AppPass456!';
CREATE DATABASE appdb;
GRANT ALL ON appdb.* TO 'app'@'localhost';
FLUSH PRIVILEGES;
/usr/local/mysql/bin/mysqladmin -u root -p shutdown
| 項目 | 建議 |
|---|---|
| 啟動腳本 | 複製 support-files/mysql.server 至 /etc/init.d/mysqld,chkconfig --add mysqld |
| 日誌管理 | 配置 log-error、slow_query_log、log-bin,啟用 logrotate |
| 備份策略 | 每日 mysqldump --single-transaction + Binlog 增量 |
| 監控 | Prometheus + mysqld_exporter / Percona Monitoring and Management (PMM) |
| 安全 | bind-address=127.0.0.1(僅內網)、防火牆限制 3306、SSL 強制 |
mysql_install_db 失敗:檢查 /tmp 空間、權限、SELinuxCan't create test file:datadir 權限或路徑錯誤Can't connect to local MySQL server through socket:socket 參數不一致,統一 my.cnf 與客戶端配置標準化手動部署流程,讓 MySQL 升級、遷移、多實例共存皆可受控、可追溯。