MariaDB的来源
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。
MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,10.0.9版起使用XtraDB(名称代号为Aria)来代替MySQL的InnoDB。MariaDB由MySQL的创始人麦克尔·维德纽斯主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自麦克尔·维德纽斯的女儿玛丽亚(英语:Maria)的名字。
因此在CentOS 7 中放弃了MySQL,启用了MariaDB。加上完全兼容MySQL,所以在选择的时候,也选择MariaDB来作为日常应用储存数据的关系型数据库。
安装MariaDB
因为在CentOS中,为了方便直接使用了yum命令进行安装
yum install -y mariadb mariadb-server
安装完成后,启动MariaDB
systemctl start mariadb
设置开机启动
systemctl enable mariadb
进行MariaDB初始化设置
mysql_secure_installation
Enter current password for root (enter for none): #输入Root帐户密码,初次运行直接回车
Set root password? [Y/n] #设置Root密码
New password: #输入要设置的密码
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] #是否重新加载权限表
MariaDB 的字符编码配置
设置文件 /etc/my.cnf
vi /etc/my.cnf
# 在[mysqld]标签下添加
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
设置文件/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
systemctl restart mariadb
进入MariaDB查询字符集编码
show variables like "%character%";show variables like "%collation%";
+--------------------------+----------------------------+
| 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/ |
+--------------------------+----------------------------+
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_unicode_ci |
| collation_database | utf8_unicode_ci |
| collation_server | utf8_unicode_ci |
+----------------------+-----------------+
添加用户及设置用户权限
创建用户
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 修改成 select、insert、update、delete、create、drop、index、alter、grant、references、reload、shutdown、process、file,个人使用中并不需要这么多个权限配置。