xampp-win 中打包的資料庫好像從某個版本開始就改成 mariadb 了,雖然 mariadb 跟 mysql 在大部份的狀況下是相似的,但…mariadb好像到目前的版本(寫文章時mariadb 最新的是10.6.3)在json的使用上跟mysql不太一樣,但我比較習慣用mysql的。
那因為在 linux 中大部份的來源庫好像是mysql的版本,所以比較沒有要從mariadb換mysql的要求…但因為目前service架在windows中,所以xampp-win是用mariadb,就找了一下資料,把mariadb換成mysql engine的方式。
環境說明:
- xampp-win
- apache: 2.4.48
- db: mariadb 10.4.20
- 要更換為mysql-community 8.0.26
- 免安裝的版本
mariadb => mysql
- 先停止目前正在使用的xampp中的資料庫,或者是新的開始,那就先去下載xampp-win的免安裝版本,然後把xampp解壓縮
- 將xampp中的mysql資料庫更名,更啥名都可,反正不要用「mysql」
- 比較偷懶,把舊的mariadb中的my.ini複製並放到新的mysql/bin放,但留意,mariadb的某些版本可能等同mysql 5.7以前的版本,所以要看你舊系統上的mariadb的版本去找找對應的mysql,如果對應版差距有多的話,那最要邊執行跟設定my.ini
- my.ini確認複製並放在mysql/bin,為啥放這,因為xampp預設讀取的位置;接著打開放完後的my.ini,然後看到在[mysqld]中先駐解掉 key_buffer的設定,以免造成後面操作系統的不便
- 接著依續執行下列指令在cmd模式
- 先切換xampp\mysql所在的路徑
- cd ?:\xampp\mysql
- 執行資料庫初始化
- bin\mysqld --initialize-insecure
- 等它跑完,會要一些時間
- 指定背景啟動mysql服務
- START /b bin\mysqld
- 以 root 免密碼的身份登入mysql
- bin\mysql -u root
- 在mysql engine中建立phpmyadmin的用戶名pma@localhost
- mysql> CREATE USER pma@localhost;
- 在mysql engine中建立phpmyadmin主要用途的資料庫, 表
- mysql> SOURCE ?:/xampp/phpMyAdmin/sql/create_tables.sql
- 設定pma@localhost基本mysql的操作權限
- mysql> GRANT SELECT, INSERT, DELETE, UPDATE, ALTER ON phpmyadmin.* TO pma@localhost;
- 切換root, pma用戶的認證加密方式改回mysql原生方式
- mysql> ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY '';
- mysql> ALTER USER pma@localhost IDENTIFIED WITH mysql_native_password BY '';
- 跳出mysql engine
- \q OR exit
- 停止mysql服務
- bin\mysqladmin -u root shutdown
理論上到這邊應該都不會有太大的問題
參考資料
沒有留言:
張貼留言