ContOS8 配置MariaDB

導語:

該篇文章主要記錄ContOS8安裝MariaDB後的一些配置內容,若想要詳細了解安裝過程請移步至上一篇博文!

 

正文:

首先對MariaDB進行相關的簡單配置

使用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] <– 是否重新載入許可權表,回車

  若mysql_secure_installation命令執行不成功,則跳過即可。

一,設置用戶及訪問許可權

使用mysql -u root -p 以root身份登入資料庫

# mysql -u root -p         //剛安裝未設置過root密碼的可直接Enter,設置過root密碼的輸入密碼進入
//默認密碼隱藏,輸入後直接Enter

MariaDB[(NONE)]> create database mytest; //創建mytest資料庫

MariDB[(NONE)]> show database;        //查看所有資料庫
MariaDB[(NONE)]> use mysql; //切換到mysql資料庫
MariaDB[(mysql)]> after user 'root'@'localhost' identified by '123456'; //修改root用戶在本地登錄的密碼;
MariaDB[(mysql)]> create user 'JUNE'@'%' identified by '123456'; //創建超級管理用戶'JUNE'並設置訪問許可權 '%'-所有情況下都能訪問 'localhost'-本機才能訪問 '111.222.33.44'-指定ip才能訪問

MariaDB[(mysql)]> grant all privileges on *.* to 'JUNE'@'%' identified by '123456' with grant option; //授權JUNE擁有所有資料庫和表的許可權並且可以授權
MariaDB[(mysql)]> grant SELECT,UPDATE on mytest.* to 'JUNE'@'%';    //只授權JUNE擁有mytest資料庫下所有表的SELECT,UPDATE的許可權
MariaDB[(mysql)]> SHOW GRANTS FOR 'JUNE'@'%'   //查看用戶JUNE獲得的授權

MariaDB[(mysql)]> REVOKE ALL PRIVILEGES ON 'mytest'.* from 'JUNE'@'%' //撤銷用戶JUNE在mytest資料庫的所有許可權

MariaDB[(mysql)]> flush privileges;      //刷新許可權
MariaDB[(mysql)]> exit;    //退出

  

二,修改MariaDB默認埠號

MySQL/MariaDB的默認埠號是3306,以下為修改MariaDB埠號的方案

首先是編輯配置文件 /etc/my.cnf 將[mysqld]下面的port修改為3308即可(埠號隨意改只要不與其他程式衝突即可)

# vim /etc/my.cnf 

  vim編輯器的使用可參考  vi/vim的使用

[client]
port            = 3306
socket          = /tmp/mysql.sock
[mysqld]
port            = 3308
socket          = /tmp/mysql.sock
skip-external-locking
log-error=/alidata/log/mysql/error.log
key_buffer_size = 16M

 修改完畢後保存退出,重啟資料庫服務

systemctl restart mysqld

  執行 systemctl status mariadb 查看mariadb的狀態就可以看到port已成功更改!

改完配置文件後要開放防火牆的3308埠

開啟埠

# firewall-cmd --zone=public --add-port=3308/tcp --permanent

命令含義:

--zone #作用域

--add-port=80/tcp  #添加埠,格式為:埠/通訊協議

--permanent  #永久生效,沒有此參數重啟後失效

開啟埠後需要重啟防火牆:

# systemctl restart firewalld

  查看已經開放的埠,這時就可以看到3308/tcp已經打開

# firewall-cmd --list-ports

  

三,設置資料庫字符集

mariadb(mysql)資料庫在存儲數據時,默認編碼為latinl,當存儲數據為中文字元時,在顯示或者web調用會出現亂碼的問題,需修改默認字符集為UTF-8.

注意:

  • 先修改配置文件,重啟資料庫服務,然後再創建資料庫數據表插入中文數據,則中文字元可正常顯示;
  • 若先創建資料庫數據表插入中文數據,然後才修改配置文件,重啟資料庫服務,則中文字元將依然顯示為亂碼;

登錄mariadb資料庫,查看資料庫字符集。

# mysql -u root  -p
輸入root密碼後進入
MariaDB [(none)] >  show variables like '%char%';

  

使用vim /etc/my.cnf  命令編輯 /etc/my.cnf 文件內容,在[mysqld]標籤下添加以下內容

character-set-server=utf8 

  配置完成後重啟mariadb

systemctl restart mariadb

  之後再進入mariadb查看字符集,顯示為:

+--------------------------+----------------------------+
| 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)

至此結束!