登录后台

页面导航

本文编写于 1434 天前,最后修改于 352 天前,其中某些信息可能已经过时。

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 修改成 selectinsertupdatedeletecreatedropindexaltergrantreferencesreloadshutdownprocessfile,个人使用中并不需要这么多个权限配置。