1. 简介

CentOS 7 中已不再使用 MySQL 数据库,由 MariaDB 替代。MariaDB 数据库管理系统是 MySQL 的一个分支,主要由开源社区在维护,采用 GPL 授权许可 MariaDB 的目的是完全兼容 MySQL,包括 API 和命令行,使之能轻松成为 MySQL 的代替品。至于替换的原因,大致有两点:一是随着甲骨文公司收购了 MySQL(SUN 公司)后,有将 MySQL 闭源的潜在风险,因此社区采用分支的方式来避开这个风险。另一点是收购后 MySQL 全部由甲骨文内部人员维护,发展并不活跃,这也是 MariaDB 出现的一个重要因素。

下面介绍在 CentOS 7 中使用 yum 安装 MariaDB 的步骤:

2. 安装

2.1 安装 MariaDB

yum -y install mariadb mariadb-server

2.2 启动 MariaDB

systemctl start mariadb

2.3 设置 MariaDB 开启启动

systemctl enable mariadb

2.4 MariaDB 简单配置

mysql_secure_installation
#Enter current password for root (enter for none): 数据库密码,第一次运行为空直接回车即可。
#Set root password? [Y/n] Y 设置新密码,然后设置新密码
#Remove anonymous users? [Y/n] Y 取消匿名用户访问
#Disallow root login remotely? [Y/n] Y 禁止远程访问
#Remove test database and access to it? [Y/n] Y 删除test数据库
#Reload privilege tables now? [Y/n] Y 刷新权限列表

初始化MariaDB完成,接下来测试登录

mysql -uroot -ppassword

OK!

3. 配置字符集

打开文件 /etc/my.cnf

vi /etc/my.cnf

[mysqld] 标签下添加

init_connect='SET collation_connection = utf8_general_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_general_ci

打开文件 /etc/my.cnf.d/client.cnf

vi /etc/my.cnf.d/client.cnf

[client] 中添加

default-character-set=utf8

打开文件 /etc/my.cnf.d/mysql-clients.cnf

vi /etc/my.cnf.d/mysql-clients.cnf

[mysql] 中添加

default-character-set=utf8

全部配置完成,重启 mariadb 即可。

之后进入 MariaDB 查看字符集:

show variables like "%character%";show variables like "%collation%";

4. 添加用户

创建用户命令:

create user username@localhost identified by 'password';

直接创建用户并授权的命令:

grant all on *.* to username@localhost indentified by 'password';

授予外网登陆权限:

grant all privileges on *.* to username@'%' identified by 'password';

授予权限并且可以授权:

grant all privileges on *.* to username@'hostname' identified by 'password' with grant option;

简单的用户和权限配置基本就这样了。

其中只授予部分权限把其中 all privileges 或者 all 改为select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file 其中一部分。

5. 补充

关于转移数据库数据,可以先用 mysqldump 将数据导出到 backup_all.sql

在上述设置完 MariaDB 开启启动后,将 sql 文件恢复到数据库。

mysql -uroot < backup_all.sql

升级数据库:

mysql_upgrade -uroot

如果不执行升级操作,会出现 Cannot load from mysql.proc. The table is probably corrupted 错误。

最后重启数据库即可。

systemctl restart mariadb