MySQL MariaDB 為什麼會有兩種?
MySQL MariaDB 為什麼會有兩種? 其實,主要的原因是 MySQL 被 Oracle 收購後,存在著有可能不在支援自由軟體專案OpenSolaris的發展,意思就是使用者擔Oracle是否還會持續支援免費版的MySQL社群版(MySQL Community),而這一些隱患促使了MySQL的創始人之一的麥克爾·維德紐斯以MySQL為基礎,成立分支計劃MariaDB。
而 Fedora等 Linux 發行版已經在最新版本中以MariaDB取代MySQL,所以在新版的作業系統中都只會看見 MariaDB 喔!
MySQL MariaDB 差別是什麼? 功能一樣嗎?
MySQL在過去由於效能高、成本低、可靠性。MariaDB的API和協定相容MySQL,所有使用MySQL的連接器、程式庫和應用程式也將可以在MariaDB下工作。
安裝 MySQL MariaDB 資料庫
這裡開始教學如何在 CentOS Linux 7 中安裝 MySQL MariaDB 資料庫
Step 1 先更新 CentOS Linux 系統上的套件
sudo yum update
Step 2 安裝 MariaDB 伺服器
yum install mariadb-server
Step 3 讓開機自動啟動 MariaDB
sudo systemctl enable mariadb
Step 4 啟動服務
sudo systemctl start mariadb
Step 5 檢查 MariaDB
sudo systemctl status mariadb
Step 6 MariaDB 資料庫設定初始值
mysql_secure_installation #第一次設定,直接按 Enter 鍵即可(P.S.這裡的root為資料庫的root,與系統的不同) Enter current password for root (enter for none): #按 Y 設定資料庫 root 密碼 Set root password? [Y/n] #輸入新密碼 New password: #再次輸入新密碼 Re-enter new password: #按 Y 移除匿名使用者 Remove anonymous users? [Y/n] #按 Y 關閉 root 遠端登入 Disallow root login remotely? [Y/n] #按 Y 移除資料表 test Remove test database and access to it? [Y/n] #按 Y 重新載入資料表權限 Reload privilege tables now? [Y/n]
MySQL MariaDB 基本指令
登入 MySQL MariaDB (輸入帳密)
root 其預設密碼為空
mysql -u root -p(密碼)
退出 MySQL MariaDB
exit
檢查資料庫版本
SELECT VERSION();
檢檢查目前登入的使用者
SELECT USER();
建立資料庫
#建立testdb資料庫 create dateabase testdb;
選擇欲使用資料庫
use testdb;
刪除資料庫
drop database testdb;
建立 users 資料表
create table users(name varchar(10), create_date date);
查看 users 資料表
這邊的 DESC 是指 DESCRIBE (描述) 並不是降冪排序的意思喔!
DESC users;
查看更詳細的資訊
- \G 可以更詳細地列出資訊,顯示出來的畫面也比較好閱讀。
show
可以查出最初建立資料的過程
SHOW CREATE TABLE users \G
MySQL MariaDB 備份及還原
復原單一資料庫
mysql -u root -p database_name < backup.sql
復原多個資料庫
mysql mysql -u root -p < backup.sql
備份單一資料庫
mysqldump -h hostname -u root -p database_name > backup.sql;
備份資料庫中單一資料表
mysqldump -u root -p database_name table_name > backup.sql;
備份資料庫中多張資料表
mysqldump -u root -p database_name table1 table2 > backup.sql;
備份多個資料庫
mysqldump -u root -p --databases db1 db2 > backup.sql;
備份所有資料庫,包括 function, trigger, index…
mysqldump -u root -p --all-databases --routines > backup.sql;
MySQL MariaDB 常見的ERROR
ERROR 2006 (HY000) at line 653: MySQL server has gone away
[my.cnf or ini] max_allowed_packet=64M
ERROR 1118 (42000) at line: The size of BLOB/TEXT data inserted in one transaction is greater than 10% of redo log size. Increase the redo log size using innodb_log_file_size.
[mysqld] innodb_log_file_size=256M
更多 MySQL MariaDB 資料庫效能參數設定?
上方列出的只是冰山一角,若要維護好一個穩定且效能高的 DB Server 勢必需要定期較調 MySQL MariaDB 資料庫參數、資料表必須要增加索引、 索引增加的注意事項以及追蹤應用程式的slow sql 並確實修正等等,未來會在寫相關的文章作為分享