將 MySQL 轉換到 MariaDB

將 MySQL 轉換到 MariaDB

看到 SQL Server 2019上市的消息, 其中支援各家資料庫的功能, 想到自己使用的MySQL,之前便想要轉到MariaDB,但一直未真正下手,不如今天來改一下。
作業系統使用 Ubuntu 18.04 LTS, 直接用 apt 安裝 mariadb-server, 看到別人寫的資訊, 似乎可以直接取代, 但是安裝過程中移除mysql之後, 不僅沒有叫我設定 root密碼, 資料庫也不會出現在 mariaDB中,還好有先備份資料庫。
在倒回資料庫前, 記得先重新設定 root 密碼, 因看到有網友寫到未設定前用phpmyadmin會有問題, 所以先依他的方法設定密碼, 再到phpmyadmin中做後續.


use mysql; (使用原本 MySQL使用者資料庫)
UPDATE user SET Password=PASSWORD('輸入新密碼') where USER='root';
GRANT all ON *.* TO root@'localhost' IDENTIFIED BY '輸入密碼';
FLUSH PRIVILEGES;
quit

但是在倒回資料時, 其中一個資料庫在網頁上顯示變亂碼, 這個資料庫歷史悠久,至少14年,中間有更換過系統, 文字編碼搞到有點亂, 可是之前在MySQL中卻能在網頁以 UTF8顯示.
試了很多方法, 後來試到以下的方法:

1.先在mysql中把資料庫的編碼從latin1變utf8 (此步驟是否必要不確定, 但是有執行過, 還是寫下來以防萬一)
mysql> ALTER DATABASE db1 CHARACTER SET utf8 COLLATE utf8_general_ci;

2.把資料庫備份出來
mysqldump -u root -p --default-character-set=latin1 --skip-set-charset db1 > db1.sql
用文字編輯器打開資料庫內的編碼就都確定是 utf8後, 再把資料庫倒到 mariaDB中顯示就正常了

目前幾個網頁看來都正常, 先運作幾天看看

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料