1. 程式人生 > 實用技巧 >MariaDB資料庫管理系統,是完全相容MySQL

MariaDB資料庫管理系統,是完全相容MySQL

CentOS 6 或早期的版本中提供的是 MySQL 的伺服器/客戶端安裝包,但 CentOS 7 已使用了 MariaDB 替代了預設的 MySQL。MariaDB資料庫管理系統是MySQL的一個分支,主要由開源社群在維護,採用GPL授權許可 MariaDB的目的是完全相容MySQL,包括API和命令列,使之能輕鬆成為MySQL的代替品。

Linux下安裝MariaDB官方文件參見:https://mariadb.com/kb/zh-cn/installing-mariadb-with-yum/

全部刪除MySQL/MariaDB

MySQL 已經不再包含在 CentOS 7 的源中,而改用了 MariaDB;

1.使用rpm -qa | grep mariadb搜尋 MariaDB 現有的包:

如果存在,使用rpm -e --nodeps mariadb-*全部刪除:

[root@localhost ~]# rpm -qa | grep mariadb
mariadb-server-5.5.52-1.el7.x86_64
mariadb-libs-5.5.52-1.el7.x86_64
[root@localhost ~]# rpm -e mysql-*
錯誤:未安裝軟體包 mysql-* 

2.使用rpm -qa | grep mariadb搜尋 MariaDB 現有的包:

如果存在,使用yum remove mysql mysql-server mysql-libs compat-mysql51全部刪除;

[root@localhost ~]# yum remove mysql mysql-server mysql-libs compat-mysql51
已載入外掛:fastestmirror, langpacks
引數 mysql 沒有匹配
引數 mysql-server 沒有匹配
引數 compat-mysql51 沒有匹配
正在解決依賴關係
--> 正在檢查事務
---> 軟體包 mariadb-libs.x86_64.1.5.5.52-1.el7 將被 刪除
--> 正在處理依賴關係 libmysqlclient.so.18()(64bit),它被軟體包 perl-DBD-MySQL-4.023-5.el7.x86_64 需要
--> 正在處理依賴關係 libmysqlclient.so.18()(64bit),它被軟體包 2:postfix-2.10.1-6.el7.x86_64 需要
--> 正在處理依賴關係 libmysqlclient.so.18()(64bit),它被軟體包 1:qt-mysql-4.8.5-13.el7.x86_64 需要..........
刪除:
  mariadb-libs.x86_64 1:5.5.52-1.el7                                            

作為依賴被刪除:
  akonadi-mysql.x86_64 0:1.9.2-4.el7     mariadb-server.x86_64 1:5.5.52-1.el7   
  perl-DBD-MySQL.x86_64 0:4.023-5.el7    postfix.x86_64 2:2.10.1-6.el7          
  qt-mysql.x86_64 1:4.8.5-13.el7        

完畢!
[root@localhost ~]# rpm -qa|grep mariadb
[root@localhost ~]#

3.開始新的安裝, 建立MariaDB.repo檔案

vi /etc/yum.repos.d/MariaDB.repo

插入以下內容:

# MariaDB 10.2.4 CentOS repository list - created 2017-05-05 16:13 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2.4/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

系統及版本選擇:https://downloads.mariadb.org/mariadb/repositories/#mirror=tuna

4.執行安裝命令安裝MariaDB

[root@localhost ~]# yum -y install MariaDB-server MariaDB-client
已載入外掛:fastestmirror, langpacks
mariadb                                                  | 2.9 kB     00:00     
mariadb/primary_db                                         |  18 kB   00:09     
Determining fastest mirrors
 * base: mirrors.btte.net
 * extras: mirrors.zju.edu.cn
 * updates: mirrors.zju.edu.cn
正在解決依賴關係
--> 正在檢查事務
---> 軟體包 MariaDB-client.x86_64.0.10.2.4-1.el7.centos 將被 安裝
--> 正在處理依賴關係 MariaDB-common,它被軟體包 MariaDB-client-10.2.4-1.el7.centos.x86_64 需要
---> 軟體包 MariaDB-server.x86_64.0.10.2.4-1.el7.centos 將被 安裝
--> 正在處理依賴關係 galera,它被軟體包 MariaDB-server-10.2.4-1.el7.centos.x86_64 需要
--> 正在處理依賴關係 libjemalloc.so.1()(64bit),它被軟體包 MariaDB-server-10.2.4-1.el7.centos.x86_64 需要
--> 正在檢查事務
---> 軟體包 MariaDB-common.x86_64.0.10.2.4-1.el7.centos 將被 安裝
--> 正在處理依賴關係 MariaDB-compat,它被軟體包 MariaDB-common-10.2.4-1.el7.centos.x86_64 需要
---> 軟體包 galera.x86_64.0.25.3.19-1.rhel7.el7.centos 將被 安裝
---> 軟體包 jemalloc.x86_64.0.3.6.0-1.el7 將被 安裝
--> 正在檢查事務
---> 軟體包 MariaDB-compat.x86_64.0.10.2.4-1.el7.centos 將被 安裝
--> 解決依賴關係完成

依賴關係解決

================================================================================
 Package            架構       版本                           源           大小
================================================================================
正在安裝:
 MariaDB-client     x86_64     10.2.4-1.el7.centos            mariadb      48 M
 MariaDB-server     x86_64     10.2.4-1.el7.centos            mariadb     113 M
為依賴而安裝:
 MariaDB-common     x86_64     10.2.4-1.el7.centos            mariadb     104 k
 MariaDB-compat     x86_64     10.2.4-1.el7.centos            mariadb     2.8 M
 galera             x86_64     25.3.19-1.rhel7.el7.centos     mariadb     8.0 M
 jemalloc           x86_64     3.6.0-1.el7                    mariadb     104 k

事務概要
================================================================================
安裝  2 軟體包 (+4 依賴軟體包)
....

首先下載安裝包,然後進行自動安裝,安裝成功之後啟動MariaDB服務。

systemctl start mariadb #啟動服務
systemctl enable mariadb #設定開機啟動
systemctl restart mariadb #重新啟動
systemctl stop mariadb.service #停止MariaDB

5.登入到資料庫

  用mysql -uroot命令登入到MariaDB,此時root賬戶的密碼為空。

6.進行MariaDB的相關簡單配置,使用mysql_secure_installation命令進行配置。

mysql_secure_installation

首先是設定密碼,會提示先輸入密碼

Enter current password for root (enter for none):<–初次執行直接回車

設定密碼

Set root password? [Y/n]<– 是否設定root使用者密碼,輸入y並回車或直接回車
New password:<– 設定root使用者的密碼
Re-enter new password:<– 再輸入一次你設定的密碼

其他配置

Remove anonymous users? [Y/n]<– 是否刪除匿名使用者,回車

Disallow root login remotely? [Y/n]<–是否禁止root遠端登入,回車,

Remove test database and access to it? [Y/n]<– 是否刪除test資料庫,回車

Reload privilege tables now? [Y/n]<– 是否重新載入許可權表,回車

初始化MariaDB完成,接下來測試登入

mysql -uroot -ppassword

完成。

7.配置MariaDB的字符集

  檢視/etc/my.cnf檔案內容,其中包含一句!includedir /etc/my.cnf.d 說明在該配置檔案中引入/etc/my.cnf.d 目錄下的配置檔案。

1)使用vi server.cnf命令編輯server.cnf檔案,在[mysqld]標籤下新增

init_connect='SET collation_connection = utf8_unicode_ci' 
init_connect='SET NAMES utf8' 
character-set-server=utf8 
collation-server=utf8_unicode_ci 
skip-character-set-client-handshake

  如果/etc/my.cnf.d 目錄下無server.cnf檔案,則直接在/etc/my.cnf檔案的[mysqld]標籤下新增以上內容。

2)檔案/etc/my.cnf.d/client.cnf

vi /etc/my.cnf.d/client.cnf

在[client]中新增

default-character-set=utf8

3)檔案/etc/my.cnf.d/mysql-clients.cnf

vi /etc/my.cnf.d/mysql-clients.cnf

在[mysql]中新增

default-character-set=utf8

全部配置完成,重啟mariadb

systemctl restart mariadb

之後進入MariaDB檢視字符集

mysql> show variables like "%character%";show variables like "%collation%";

顯示為

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client    | utf8                      |
| character_set_connection | utf8                      |
| character_set_database  | utf8                      |
| character_set_filesystem | binary                    |
| character_set_results    | utf8                      |
| character_set_server    | utf8                      |
| character_set_system    | utf8                      |
| character_sets_dir      | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

+----------------------+-----------------+
| Variable_name        | Value          |
+----------------------+-----------------+
| collation_connection | utf8_unicode_ci |
| collation_database  | utf8_unicode_ci |
| collation_server    | utf8_unicode_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)

字符集配置完成。

8. 新增使用者,設定許可權

建立使用者命令

mysql>create user username@localhost identified by 'password';

直接建立使用者並授權的命令

mysql>grant all on *.* to username@localhost indentified by 'password';

授予外網登陸許可權

mysql>grant all privileges on *.* to username@'%' identified by 'password';

授予許可權並且可以授權

mysql>grant all privileges on *.* to username@'hostname' identified by 'password' with grant option;
MariaDB [mysql]> select host,user,password from user;
+-----------------------+-------+------------------------+
| host                  | user  | password               |
+-----------------------+-------+------------------------+
| localhost             | root  | *E87F9354F7E889A65E... |
| localhost.localdomain | root  | *E87F9354F7E889A65E... |
| 127.0.0.1             | root  | *E87F9354F7E889A65E... |
| ::1                   | root  | *E87F9354F7E889A65E... |
| localhost             |       |                        |
| localhost.localdomain |       |                        |
+-----------------------+-------+------------------------+
7 rows in set (0.00 sec)

簡單的使用者和許可權配置基本就這樣了。