MariaDB 與 MySQL 高度相容,可以使用相同的用戶端協定、API 和資料檔案,一般而言是用來作為替代 MySQL 的資料庫使用, 不過即使一開始是從完全相同的原始碼開始分支,時間一長就會出現各種小地方的不同,所以仍然應該視為不同的資料庫比較好。 MariaDB 出現的原因是 MySQL 被 Michael Widenius 賣給 Sun 並且大賺一筆,而在之後 Sun 被 Oracle 收購, MySQL 落入 Oracle 手中之後產生的授權疑慮(因為 Oracle 有權利更改 MySQL 的授權成為閉源軟體), 因此 MySQL 的原始開發者(包含 Michael Widenius)創立 MariaDB,以確保其持續的開源性。 但是到目前為止,Oracle 仍然保持 MySQL 的授權為 GPL,並且 MariaDB 與 MySQL 都是使用相同的商業模式, 都是有社群版本與商業版本,只是 MariaDB 的開發更偏重自由軟體社群(不過我們無法確定是因為 MariaDB 的存在所以 Oracle 保持 MySQL 開源, 或者是因為策略考量,所以 Oracle 保持 MySQL 開源;另外有點黑色幽默的地方在於 Oracle 雖然持有 MySQL, 但是在雲端資料庫所得到的收益比其它公司還要低)。Michael Widenius 吸取了之前的教訓, 為了確保即使公司被收購以後 MariaDB 資料庫仍然會維持開源,MariaDB 的運作可以為二部份, 開放原始碼與社群的管理部份由 MariaDB 基金會運作, 商業與發展策略的部份由 MariaDB 公司運作,而開發的主導為 MariaDB 公司。 MariaDB 公司在 2022 年透過與特殊目的收購公司 (SPAC) Angel Pond Holdings 合併, 在紐約證券交易所上市,股票代碼為 MRDB,但是之後因為財務問題,又在 2024 年下市並且已出售給私募股權基金 K1。
在 MySQL 被 Oracle 取得並且 MariaDB 創立之後,多個 Linux 發行版改為提供 MariaDB。在 openSUSE 安裝的指令如下:
sudo zypper install mariadb
使用下列的方式開啟服務:
sudo systemctl start mariadb
關閉服務:
sudo systemctl stop mariadb
如果要開機的時候就啟動服務,使用:
sudo systemctl enable --now mariadb
如果不要開機的時候就啟動服務,使用:
sudo systemctl disable mariadb
查詢目前的狀態:
sudo systemctl status mariadb
openSUSE 可以使用下列的命令設定讓 MariaDB 更安全:
sudo mysql_secure_installation
在早期 MySQL 並沒有正確實作 UTF-8 編碼,作為其分支的 MariaDB 的 utf8 也繼承了此一特性,實際只支援三個位元組。 一般而言建議使用 utf8mb4,這是真正的 UTF-8 編碼,支援四個位元組。為確保兼容性,建議使用 utf8mb4 作為預設編碼。 修改 /etc/my.cnf 加入下列的內容:
[client]
default-character-set = utf8mb4
[mysqld]
character-set-server = utf8mb4
character-set-client-handshake = FALSE
使用 mariadb 指令連線測試(密碼就是在 mysql_secure_installation 設定時所設定的密碼):
mariadb -u root -p
使用下列的 SQL 語句查看編碼設定:
SHOW VARIABLES LIKE 'character_set%';
接下來建立新資料庫與新使用者 danilo。使用 mariadb 指令連線,然後使用下列指令建立一個名叫 danilo 的新資料庫。
CREATE DATABASE `danilo`;
新增一個資料庫使用者 danilo,並將密碼設定為 danilo:
CREATE USER 'danilo'@'localhost' IDENTIFIED BY 'danilo';
使用 GRANT 設定帳號的權限,讓使用者 danilo 可以在資料庫 dnailo 上有所有的權限:
GRANT ALL PRIVILEGES ON danilo.* TO 'danilo'@'localhost';
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。