ContOS8 配置MariaDB
- 2021 年 6 月 9 日
- 筆記
- Linux(Contos)
導語:
該篇文章主要記錄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)