安裝建構依賴
sudo apt-get update
sudo apt-get install g++ gcc make automake perl
sudo apt-get install build-essential
sudo apt-get install libncurses5-dev
sudo apt-get install libkdecore5-dev # 替代舊 kdelibs4-dev
# 注意:Ubuntu 現代版本套件名稱可能不同,以 apt search 為準
建立 mysql 使用者/群組
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
解壓、配置、編譯、安裝
tar zxvf mysql-5.0.40.tar.gz
cd mysql-5.0.40
./configure --prefix=/usr/local/mysql \
--with-charset=utf8 \
--with-collation=utf8_general_ci \
--with-extra-charsets=all \
--enable-thread-safe-client \
--enable-local-infile \
--with-plugins=max
make -j$(nproc)
sudo make install
安裝後初始化
cd /usr/local/mysql
sudo chown -R mysql:mysql .
sudo scripts/mysql_install_db --user=mysql
sudo chown -R root .
sudo chown -R mysql data
sudo cp support-files/my-medium.cnf /etc/my.cnf
啟動與驗證
sudo bin/mysqld_safe --user=mysql &
# 驗證
bin/mysql -u root -e "SHOW DATABASES;"
bin/mysqladmin -u root version
系統服務註冊 (systemd)
sudo cp support-files/mysql.server /etc/init.d/mysqld
sudo chmod +x /etc/init.d/mysqld
# Ubuntu 16.04+ 建議 systemd
sudo cat > /etc/systemd/system/mysqld.service <<'EOF'
[Unit]
Description=MySQL Server
After=network.target
[Service]
Type=forking
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf
ExecStop=/usr/local/mysql/bin/mysqladmin shutdown
PIDFile=/usr/local/mysql/data/$(hostname).pid
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable mysqld
sudo systemctl start mysqld
安全強化
sudo /usr/local/mysql/bin/mysql_secure_installation
# 設定 root 密碼、移除匿名用戶、禁止遠端 root、移除 test 库
現代版本提示
- MySQL 5.0 已 EOL,生產環境請使用 5.7/8.0 LTS 版本
- Ubuntu 官方倉庫提供 `mysql-server` 套件,`apt install mysql-server` 即可獲得安全更新
- 若需客製化編譯,建議基於官方源碼包 `apt source mysql-server` 修改編譯規則