說真的我個人是覺得MariaDB很好用,尤其是root的認證方式採用mysql_native_password驗證,與mysql5.7版相同,與PHP及xoops也沒有兼容性問題,那為什麼要吧Xampp的MariaDB替換為mysql8.0,主要是為了做兼容性測試,因為很多虛擬主機都改用mysql8.0,做一個程式開發者開發的模組必須能在各種環境都下正常運作,所以提供了以下替換方式方便測試,說明如下:
1、先進入phpmyadmin中吧資料表匯出備份(轉換為mysql8.0後需要再匯入一次)
2、在windows上使用【系統管理員身分】開啟XAMPP的Panel,然後吧MySQL關閉。
3、確認關閉後,前往MySQL官方網站下載mysql->zip檔回本地端:https://dev.mysql.com/downloads/mysql/
4、將Xampp目錄中的mysql改為mysql_M
既為 c:\xampp\mysql 變更為 c:\xampp\mysql_M
->輸入mysqld.exe --default-authentication-plugin=mysql_native_password --initialize-insecure --basedir=c:\xampp\mysql --datadir=c:\xampp\mysql\data
接下來稍等約1分鐘,就會看到終端機開始執行mysql8.0套件安裝程序到完成。
7、找到以下目錄c:/xampp/mysql/bin/->建立一個my.ini檔,用筆記本打開貼上以下設定
[mysqld]
port=3306
basedir=c:\xampp\mysql
datadir=c:\xampp\mysql\data
socket=c:\xampp\mysql\mysql.sock
其中的port=3306 數值可修改,如果3306port有其他應用程式在使用,可改為其他數字或5萬以內的任何數字!!
8、點選XAMPP的Panel,啟用Mysql,完成啟用後,因為是全新安裝沒設密碼,所以是無法登入phpmyadmin(會跳出密碼提示框並無法登入,此為正常現象)
9、以【系統管理員身分】開啟XAMPP的Panel->點選右邊的Shell開啟終端機,輸入mysqladmin.exe -u root password '123456',123456可修改為您的密碼,可與MariaDB密碼相同,這樣網站就不需修改DB密碼能連線資料庫。
10、開啟XAMPP的Panel->點選mysql右邊的Admin,即可進入phpmyadmin了,需要重新建立資料表,並吧原本匯出的.sql再匯入,這樣網站即可使用mysql8.0運行
11、mysql8.0的sql_mode預設是超嚴格模式ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,很多sql語法都無法使用,可以修改為寬鬆一點,讓網站模組程式不至於出錯,找到這支檔案
c:/xampp/mysql/bin/my.ini用筆記本打開,在[mysqld]最下面加上sql_mode=NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTION
[mysqld]
port=3306
basedir=c:\xampp\mysql
datadir=c:\xampp\mysql\data
socket=c:\xampp\mysql\mysql.sock
sql_mode=NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTION
儲存後重啟mysql,這樣因嚴謹模式產生的功能異常問題就能排除。
如果要測試使用caching_sha2_password驗證方式網站是否能正常連線,可以在[mysqld]後面加上
default_authentication_plugin = caching_sha2_password
然後以【系統管理員身分】開啟XAMPP的Panel->點選右邊的Shell開啟終端機,輸入
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '123456';
※123456改為您的密碼
然後於phpmyadmin的SQL中輸入
SELECT user,authentication_string,plugin,host FROM mysql.user;
plugin欄位會顯示目前連線帳號的認證方式,root因該會變為aching_sha2_password
12、如果要換回MariaDB,以【系統管理員身分】開啟XAMPP的Panel->關閉mysql,然後進到XAMPP根目錄,吧mysql改為mysql_8,吧mysql_M改為mysql
c:\xampp\mysql_8
c:\xampp\mysql
再開啟XAMPP的Panel的mysql,就能換回MariaDB使用!!
以上工作心的分享,祝使用mysql8.0愉快
工作心的撰寫:徐嘉裕 Neil hsu
留言
張貼留言