導語:
該篇文章主要記錄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)