雖然 Ubuntu 提供 apt-get install mysql-server,但特定版本需求、自訂編譯參數或學習目的,仍需掌握原始碼編譯安裝流程。本文以 MySQL 5.0.40 為例,記錄依賴套件安裝、編譯配置、部署與驗證。
sudo apt-get update
sudo apt-get install g++ gcc make automake perl
sudo apt-get install build-essential libncurses5-dev libssl-dev
# 注意:kdelibs4-dev 非必要,僅 GUI 工具需求
sudo groupadd mysql
sudo useradd -g mysql -s /bin/bash -d /usr/local/mysql mysql
tar -zxvf mysql-5.0.40.tar.gz
cd mysql-5.0.40
./configure \
--prefix=/usr/local/mysql \
--with-charset=utf8 \
--with-extra-charsets=all \
--enable-thread-safe-client \
--enable-local-infile \
--with-mysqld-ldflags=-all-static \
--with-client-ldflags=-all-static
make
sudo make install
sudo cp support-files/my-medium.cnf /etc/my.cnf
cd /usr/local/mysql
sudo chown -R mysql:mysql .
sudo bin/mysql_install_db --user=mysql
sudo chown -R root .
sudo chown -R mysql var
sudo bin/mysqld_safe --user=mysql &
# 等待幾秒
bin/mysql -u root -p
# 密碼為空,直接 Enter
mysql> SHOW DATABASES;
sudo tee /etc/systemd/system/mysql.service <<'EOF'
[Unit]
Description=MySQL Community Server
After=network.target
[Service]
Type=forking
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld_safe --user=mysql
ExecStop=/usr/local/mysql/bin/mysqladmin shutdown
PIDFile=/usr/local/mysql/var/mysqld.pid
TimeoutSec=300
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable mysql
sudo systemctl start mysql
sudo apt-get install libncurses5-devmake clean 後重新 ./configure。ln -s /usr/local/mysql/var/mysql.sock /tmp/mysql.sock 或在 my.cnf 指定 socket=/usr/local/mysql/var/mysql.sock。編譯安裝可完全控制版本、字元集、儲存引擎、安裝路徑與優化參數。生產環境若無特殊需求,建議優先使用發行版套件 (apt/yum) 或官方 APT/YUM Repository,以獲得安全更新與依賴管理便利性。