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