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)