Windows 下运行多个Mysql

xiaoxiao2026-09-03  1

Windows環境下讓多個Mysql版本同時運行 《以下內容參考資料:http://www.elaguan.net/show-313-1.html、 http://www.albertsong.com/read-17.html》 為了建立開發測試環境,在Windows環境下讓多個Mysql版本同時運行。 目前已安裝之 mysql 版本為 3.23.49,這個部分不再作更動,並且加裝 mysql 4.1.22 及 mysql 5.0.45 共三個版本同時在同一部機器上運行。 (以下原本是要安裝 mysql 5.1.22,但是後來發現缺少 mysqld-nt.exe,因此先改改裝 mysql 5.0.45 。) 一、下載 mysql 4.1 及 mysql 5.0 http://dev.mysql.com/downloads/ 下載Windows 免安裝的 zip package 壓縮包,mysql-4.1.22 及 mysql-5.0.45 。 因為是要另外安裝 Mysql 4 與Mysql 5 共存並行,所以這裡不使用有Setup.exe 的安裝檔而是使用壓縮包,再自行部署。 二、壓縮包解壓縮到 C:\mysql4 與 C:\mysql5 原本已經安裝的 mysql 3.23.49 位置在 C:\mysql,此處不再變動。 為了容易辨識,把 mysql-4.1.22 壓縮包解壓縮到 C:\mysql4 ;把 mysql-5.0.45 壓縮包解壓縮到 C:\mysql5 。 三、建立 mysql 組態設定檔 my.ini 要讓 多個版本的 mysql server 並行於同一部機器上有一個問題,就是 mysql 組態設定檔 my.ini 衝突的問題。 一般在Windows上安裝mysql,都是把 my.ini 檔複製到系統目錄下%SYSTEMROOT%(一般為 C:\WINNT 或 C:\WINDOWS),但是各個版本的 mysql server 的 my.ini 設定值並不完全相同,所以,必須分開放在不同的目錄位置。 事實上, my.ini 除了放在系統目錄下以外,也可以放在 mtsql 安裝的目錄下,只是在執行 mysql install 時需要另外指定位置,這個部分後續再提。 所以,這裡 mysql-4.1.22 的 my.ini 放在 C:\mysql4 ;把 mysql-5.0.45 的 my.ini 放在 C:\mysql5 。 ◎ 以下動作 mysql-4.1.22 及 mysql-5.0.45 都一樣 在 C:\mysql4 與 C:\mysql5 目錄下找到 my-medium.ini ,在原位置複製一份並更名為 my.ini。 (這裡有 my-small.ini、my-medium.ini 、my-large.ini 、my-huge.ini、my-innodb-heavy-4G.ini 五個檔案,內容的設定項目都大同小異,主要差別是針對主機配置記憶體的大小。因為我們只是要建立開發測試環境,所以選擇 my-medium.ini 即可,配置記憶體是 32M - 64M。) 四、編輯 mysql-4.1.22 的 my.ini 在 C:\mysql4 用記事本開啟 my.ini 並且修改/增加以下設定項目: [client] port = 3306 -- 修改為 --- port = 33064 (mysql 預設的 port 號是 3306 ,已經給原來已安裝之 mysql 3.23.49 使用了,所以這裡改成 33064。要改哪一個 port 可以任選(0 ~ 65535),只要不跟其他服務衝突就好。) -- 增加 -- default-character-set = utf8 [mysqld] port = 3306 -- 修改為 --- port = 33064 -- 增加 -- basedir = C:/mysql4 datadir = C:/mysql4/data default-character-set = utf8 default-collation = utf8_general_ci (basedir 是 mysql 程式安裝的位置;datadir 式資料庫檔案存放的位置;default-character-set 是預設編碼;default-collation 是預設字元集。) -- 增加 -- [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8 五、編輯 mysql-5.0.45 的 my.ini 在 C:\mysql5 用記事本開啟 my.ini 並且修改/增加以下設定項目: [client] port = 3306 -- 修改為 --- port = 33065 (mysql 預設的 port 號是 3306 ,已經給原來已安裝之 mysql 3.23.49 使用了,所以這裡改成 33065。要改哪一個 port 可以任選(0 ~ 65535),只要不跟其他服務衝突就好。) -- 增加 -- default-character-set = utf8 [mysqld] port = 3306 -- 修改為 --- port = 33065 -- 增加 -- basedir = C:/mysql5 datadir = C:/mysql5/data default-character-set = utf8 default-collation = utf8_general_ci (basedir 是 mysql 程式安裝的位置;datadir 式資料庫檔案存放的位置;default-character-set 是預設編碼;default-collation 是預設字元集。) -- 增加 -- [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8 六、 移除Windows環境變數 C:\mysql\bin ‧原來已安裝之 mysql 3.23.49 若有設定Windows環境變數 C:\mysql\bin 必須把他移除掉,否則在執行 mysql 其他版本安裝時,會優先執行到 mysql 3.23.49 的指令而造成安裝失敗。 ‧控制台 → 系統 → 【進階】頁籤 → 【環境變數】按鈕 → 下方【系統變數】→找到變數名稱 path→ 編輯→移除 C:\mysql\bin; → 按【確定】 七、安'裝 mysql-4.1.22 及 mysql-5.0.45 因為我們把 mysql4 與 mysql5 的 my.ini 放至於該各自安裝的目錄下 C:\mysql4 與 C:\mysql5,所以在安裝時必須加上 --defaults-file 指令,用意是強制指定 my.ini 的位置(否則就需要把 my.ini 放到 C:\Windows 底下,這樣就無法實現多版本並行)。 另外,原來已安裝之 mysql 3.23.49 已使用了 MySql 這個服務名稱了,所以,這裡分別把 mysql4 與 mysql5 的服務名稱命名為 MySql4 與 MySql5 以作為區別。 ◎有二種方式可以下達安裝或移除 mysql 服務的指令,一是直接在DOS 命令列執行指令;二是把指令建立成命令檔(*.cmd)然後再雙擊執行命令檔。 ** DOS 命令列執行指令 ****** ‧安'裝 mysql-4.1.22 C:\mysql4\bin>mysqld-nt --install MySql4 --defaults-file=C:\mysql4\my.ini ‧安'裝 mysql-5.0.45 C:\mysql5\bin>mysqld-nt --install MySql5 --defaults-file=C:\mysql5\my.ini ‧移除安'裝 mysql-4.1.22 C:\mysql4\bin>mysqld-nt --remove MySql4 ‧安'裝 mysql-5.0.45 C:\mysql5\bin>mysqld-nt --remove MySql5 ** 建立成命令檔(*.cmd) ****** ‧C:\mysql4 下新增文字檔,加入內容文字如下,命名為 install.cmd。 C:\mysql4\bin\mysqld-nt --install MySql4 --defaults-file=C:\mysql4\my.ini ‧C:\mysql5 下新增文字檔,加入內容文字如下,命名為 install.cmd。 C:\mysql5\bin\mysqld-nt --install MySql5 --defaults-file=C:\mysql5\my.ini ‧C:\mysql4 下新增文字檔,加入內容文字如下,命名為 uninstall.cmd。 C:\mysql4\bin\mysqld-nt --remove MySql4 ‧C:\mysql5 下新增文字檔,加入內容文字如下,命名為 uninstall.cmd。 C:\mysql5\bin\mysqld-nt --remove MySql5 六、在 DOS 命令列測試 ‧啟動服務 C:\>NET START MySql4 C:\>NET START MySql5 七、PHP 連線字串 $link = mysql_connect("localhost:33064", "mysql_user", "mysql_password") or die("Could not connect: " . mysql_error()); $link = mysql_connect("localhost:33065", "mysql_user", "mysql_password") or die("Could not connect: " . mysql_error()); ◎ 後記 安裝完成後發現一個問題,使用PHP語法連結 mysql 4.1 資料庫時,可能會產生 "Client does not support authentication protocol requested by server" 的錯誤訊息,解決方法參考下一篇【轉載:新版Mysql密碼算法不同導致「Client does not support authentication protocol requested by server」錯誤】。 另外,使用 DOS 命令列登入mysql4管理介面,結果會變成登入到 mysql 3.23.49 版本的管理介面,mysql5 並不會有此情況,原因待查。
转载请注明原文地址: https://www.6miu.com/read-5052348.html

最新回复(0)