在企業級Linux服務器環境中,使用RPM包管理MySQL安裝是標準化運維的基礎技能。本文以MySQL 4.0.14為例,詳細記錄從包安裝、服務管理、配置文件部署到完全卸載的全流程操作,適用於RHEL、CentOS、Fedora等基於RPM的發行版。
cd /data
rpm -ivh MySQL-server-4.0.14-0.i386.rpm
安裝完成後自動執行的操作:
mysql與組mysql/var/lib/mysql(含mysql系統庫、test庫)mysql(System V init腳本位於/etc/init.d/mysql)/usr/share/mysql/(my-huge.cnf、my-large.cnf、my-medium.cnf、my-small.cnf)cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
根據服務器內存選擇模板:
my-small.cnf:< 64MB內存my-medium.cnf:128MB-512MB內存my-large.cnf:512MB-1GB內存my-huge.cnf:> 1GB內存# 啟動服務(兩種等效方式)
/etc/init.d/mysql start
service mysql start
# 停止服務
/etc/init.d/mysql stop
service mysql stop
# 重啟服務
service mysql restart
# 設置開機自啟
chkconfig mysql on
mysql -u root -p
# 首次登錄無密碼,直接回車進入
# 建議立即設置root密碼:
mysqladmin -u root password 'new_password'
rpm -ivh MySQL-client-4.0.14-0.i386.rpm
客戶端安裝後提供以下核心工具(位於/usr/bin/):
mysql:命令行客戶端mysqladmin:管理工具mysqldump:備份導出mysqlimport:數據導入mysqlshow:庫表結構查看| 路徑 | 用途 | 備註 |
|---|---|---|
| /usr/bin/mysql* | 客戶端工具程序 | 用戶態命令 |
| /usr/sbin/mysqld | 服務端守護進程 | 核心二進制文件 |
| /var/lib/mysql | 數據目錄 | 含庫文件、日志、pid文件 |
| /etc/my.cnf | 主配置文件 | 全局配置入口 |
| /usr/share/mysql/ | 共享資源 | 字符集、錯誤信息、示例配置 |
| /etc/init.d/mysql | 服務管理腳本 | System V兼容 |
編輯/etc/my.cnf,常見優化項:
[mysqld]
# 基礎設置
datadir = /var/lib/mysql
socket = /var/lib/mysql/mysql.sock
port = 3306
character_set_server = utf8
default_storage_engine = InnoDB
# 日志分離(建議生產環境配置)
[mysqld_safe]
log-error = /var/log/mysqld.log
pid-file = /var/run/mysqld/mysqld.pid
# 慢查詢日志
slow_query_log = 1
slow_query_log_file = /var/log/mysql-slow.log
long_query_time = 2
# 二進制日志(主從複製必需)
log-bin = /var/log/mysql/binlog
server-id = 1
expire_logs_days = 7
max_binlog_size = 100M
修改配置後需重啟服務生效:service mysql restart
若誤刪/var/lib/mysql導致系統庫丟失,可使用初始化工具:
/usr/bin/mysql_install_db --user=mysql --datadir=/var/lib/mysql
此命令將重建mysql系統庫(含授權表)、test庫及必要目錄結構。
rpm -qa | grep -i mysql
# 輸出示例:
# MySQL-server-4.0.14-0
# MySQL-client-4.0.14-0
rpm -ev MySQL-server-4.0.14-0 MySQL-client-4.0.14-0
# 確認數據無用後執行
rm -f /etc/my.cnf
rm -rf /var/lib/mysql
rm -rf /var/log/mysql* # 若修改過日志路徑
警告:卸載包不會刪除數據目錄與配置文件,手動清理前請確認已完成備份。
rpm -Uvh升級而非先卸後裝,保留數據目錄mysqld_multi工具管理多個實例,各實例獨立配置、數據目錄、端口mysql_secure_installation腳本移除匿名用戶、禁止root遠程登錄、刪除test庫mysqldump邏輯備份與xtrabackup物理熱備份RPM包管理提供了標準化、可追溯的MySQL部署方式。掌握rpm -ivh/ev/qa核心命令、理解/etc/my.cnf配置層級、熟悉/var/lib/mysql數據目錄結構,是Linux運維工程師的必備技能。現代生產環境更推薦使用Percona Server或MariaDB替代官方MySQL,並配合Ansible、Puppet等自動化工具實現基礎設施即代碼管理。