首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 4.0 編譯安裝筆記:高效能參數調校與 DBI/DBD Perl 介面部署

     編輯:MySQL 資料庫相關知識

作者偏好從原始碼編譯以榨取最大效能。記錄 MySQL 4.0.14 在 Linux 上的編譯參數選擇、安裝流程、權限設定、啟動驗證,以及 Perl DBI/DBD::mysql 介面安裝。

編譯參數詳解

./configure --prefix=/web/mysql \
  --without-debug              \  # 移除除錯資訊,減小體積提升速度
  --with-extra-charsets=gb2312 \  # 內建 GB2312 中文支援
  --enable-assembler           \  # 字串函數使用組合語言優化
  --without-isam               \  # 移除舊 ISAM 表引擎
  --without-innodb             \  # 不需事務,移除 InnoDB 減少記憶體佔用
  --with-pthread               \  # 強制使用 POSIX 執行緒庫
  --enable-thread-safe-client  \  # 執行緒安全的客戶端庫
  --with-client-ldflags=-all-static \
  --with-mysqld-ldflags=-all-static \  # 靜態連結,部署無相依
  --with-raid                    # 啟用 RAID 支援(大表分割)

安裝與部署流程

make && make install
scripts/mysql_install_db
cp support-files/my-medium.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
chmod 700 /etc/init.d/mysqld
cd /web
chmod 750 mysql -R
chgrp mysql mysql -R
chown mysql mysql/var -R

# strip 二進位檔減小體積
cd /web/mysql/libexec
cp mysqld mysqld.old
strip mysqld

chkconfig --add mysqld
chkconfig --level 345 mysqld on
service mysqld start
netstat -an | grep 3306  # 確認 3306 監聽

# 建立便捷連結
ln -s /web/mysql/bin/mysql /sbin/mysql
ln -s /web/mysql/bin/mysqladmin /sbin/mysqladmin

# 設定 root 密碼並清理匿名帳號
mysqladmin -uroot password "your_password"
mysql -uroot -p -e "USE mysql; DELETE FROM user WHERE Password=''; FLUSH PRIVILEGES;"

Perl DBI/DBD::mysql 安裝

tar zxvf DBI-1.38.tar.gz
tar zxvf DBD-mysql-2.9002.tar.gz
cd DBI-1.38
perl Makefile.PL && make && make test && make install
cd ../DBD-mysql-2.9002
perl Makefile.PL && make && make test && make install

注意:若系統 Perl 路徑為 /usr/local/bin/perl,確保 #!/usr/local/bin/perl shebang 正確。

效能調校提醒

  • my-medium.cnf 適合 64-128MB 記憶體機器;大記憶體請用 my-large.cnf 或 my-huge.cnf 並手動調大 key_buffer_size、table_cache、sort_buffer_size
  • strip mysqld 可減少 20-30% 二進位大小,略微提升載入速度
  • 靜態連結(-all-static)避免 glibc 版本相依問題,適合跨機器部署

結語

編譯安裝給予最大彈性,但也要求維運者具備除錯能力。建議將上述流程封裝為 Ansible Playbook / Shell 腳本 / RPM Spec,實現基礎設施即代碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved