有時需要在不同 MySQL 版本間做測試, 如果要在伺服器內重啟 MySQL 切換版本做測試會很麻煩, 以下紀錄一下在伺服器內安裝兩個 MySQL 同時運行, 當然如果有需要, 也可以按此方法安裝 2 個以上的 MySQL。
以下假設第一個 MySQL Server 已經正常運作, 下面全是安裝第二個 MySQL Server 的步驟:
1. 建立 MySQL 資料庫目錄:
# mkdir /var/lib/mysql2
# chown mysql.mysql /var/lib/mysql2
# chown mysql.mysql /var/lib/mysql2
2. 建立 my2.cnf
# cp -p /etc/my.cnf /etc/my2.cnf
3. 將 my2.cnf 的設定修改, 以免與第一個 MySQL Server 發生衝突, 最起碼要修改資料庫目錄, socket, port, pid:
[mysqld]
datadir=/var/lib/mysql2
socket=/var/lib/mysql/mysql2.sock
port=3307
datadir=/var/lib/mysql2
socket=/var/lib/mysql/mysql2.sock
port=3307
[mysqld_safe]
log-error=/var/log/mysqld2.log
pid-file=/var/run/mysqld/mysqld2.pid
4. 初始資料庫安裝:
mysql_install_db –user=mysql –datadir=/var/lib/mysql2
5. 安裝好第二個 MySQL Server 後, 現在啟動 MySQL:
mysqld_safe –defaults-file=/etc/my2.cnf &
啟動後用 netstat 檢查一下埠號 3307 (上面的 my2.cnf 設定使用 3307 埠號)是否被 MySQL 使用:
netstat -tanp |grep 3337
如果沒有問題, 可以使用 mysql client 嘗試連接第二個 MySQL:
mysql -u root -p -h localhost -p 3307
6. 停止第二個 MySQL 用以下指令:
mysqladmin -S /var/lib/mysql/mysql2.sock shutdown -p
7. 如果可以正常啟動及停止第二個 MySQL, 可以建立一個簡單的 MySQL 啟動 shell script,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#!/bin/sh case "$1" in start) mysqld_safe --defaults-file=/etc/my2.cnf & ;; stop) mysqladmin -S /var/lib/mysql/mysql2.sock shutdown -p ;; restart) mysqladmin -S /var/lib/mysql/mysql2.sock shutdown -p mysqld_safe --defaults-file=/etc/my2.cnf & ;; *) echo "Usage: mysqld2 [start|stop|restart]" esac |