本文記錄在 Linux 環境下從源碼包編譯安裝 MySQL 5.1.72 的標準化流程,適用於需要自定義安裝路徑、字符集或優化參數的生產環境部署。
wget ftp://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.1/mysql-5.1.72.tar.gz
rpm -qa | grep mysql # 若有輸出,建議先卸載:rpm -e --nodeps 包名
# CentOS/RHEL 示例 yum -y install gcc gcc-c++ ncurses-devel cmake bison perl
tar -zxvf mysql-5.1.72.tar.gz cd mysql-5.1.72 ./configure \ --prefix=/usr/local/mysql \ --with-charset=gbk \ --with-extra-charsets=all \ --enable-thread-safe-client \ --enable-local-infile make make install
關鍵參數說明:
--prefix:安裝根目錄,建議統一規範路徑。--with-charset:預設字符集,生產環境推薦 utf8mb4(需 5.5+ 版本支援)。--enable-local-infile:啟用 LOAD DATA LOCAL INFILE 功能。MySQL 提供四種預設配置模板,根據服務器內存選擇:
# 以中型配置為例 cp support-files/my-medium.cnf /etc/my.cnf
常用模板對照:
| 模板文件 | 適用內存 |
|---|---|
| my-small.cnf | ≤ 64MB |
| my-medium.cnf | 128MB |
| my-large.cnf | 512MB |
| my-huge.cnf | ≥ 1GB |
cp support-files/mysql.server /etc/rc.d/init.d/mysqld chmod 755 /etc/init.d/mysqld chkconfig --add mysqld chkconfig --level 345 mysqld on
cd /usr/local/mysql scripts/mysql_install_db --user=mysql
chown -R root /usr/local/mysql chgrp -R mysql /usr/local/mysql
/etc/rc.d/init.d/mysqld start
首次啟動會輸出初始化信息,關鍵提示:
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
netstat -altnp | grep 3306 # 輸出應包含:tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 6946/mysqld
mysqladmin -u root password 'shallnet' # 或使用新版推薦方式: # mysqladmin -u root -p password 'newpass'
mysql -u root -p Enter password: shallnet mysql> SHOW DATABASES;
gcc、ncurses-devel、cmake 已安裝。/usr/local/mysql/var/主機名.err 錯誤日誌,常見為端口衝突、權限不足、配置文件語法錯誤。--with-charset=utf8 或 5.5+ 使用 utf8mb4,並在 my.cnf 中設置 character-set-server=utf8mb4。源碼安裝雖步驟較多,但能完全掌控版本、編譯參數與部署路徑,是生產環境標準化部署的基礎技能。建議將上述步驟封裝為 Ansible Playbook 或 Shell 腳本,實現自動化交付。