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)