yeskery

CentOS 7 安装 MariaDB 与 MariaDB 的字符编码配置

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命令进行安装

  1. yum install -y mariadb mariadb-server

安装完成后,启动MariaDB

  1. systemctl start mariadb

设置开机启动

  1. systemctl enable mariadb

进行MariaDB初始化设置

  1. mysql_secure_installation
  2. Enter current password for root (enter for none): #输入Root帐户密码,初次运行直接回车
  3. Set root password? [Y/n] #设置Root密码
  4. New password: #输入要设置的密码
  5. Re-enter new password: #重输入一次刚刚输入的密码
  6. Remove anonymous users? [Y/n] #是否删除匿名用户
  7. Disallow root login remotely? [Y/n] #是否禁用Root用户远程登录
  8. Remove test database and access to it? [Y/n] #是否删除test数据库
  9. Reload privilege tables now? [Y/n] #是否重新加载权限表

MariaDB 的字符编码配置

设置文件 /etc/my.cnf

  1. vi /etc/my.cnf
  2. # 在[mysqld]标签下添加
  3. init_connect='SET collation_connection = utf8_unicode_ci'
  4. init_connect='SET NAMES utf8'
  5. character-set-server=utf8
  6. collation-server=utf8_unicode_ci
  7. skip-character-set-client-handshake

设置文件/etc/my.cnf.d/client.cnf

  1. vi /etc/my.cnf.d/client.cnf
  2. # 在[client]标签下添加
  3. default-character-set=utf8

设置文件/etc/my.cnf.d/mysql-clients.cnf

  1. vi /etc/my.cnf.d/mysql-clients.cnf
  2. # 在[mysql]标签下添加
  3. default-character-set=utf8

全部设置完成之后,重启MariaDB

  1. systemctl restart mariadb

进入MariaDB查询字符集编码

  1. show variables like "%character%";show variables like "%collation%";
  2. +--------------------------+----------------------------+
  3. | Variable_name | Value |
  4. +--------------------------+----------------------------+
  5. | character_set_client | utf8 |
  6. | character_set_connection | utf8 |
  7. | character_set_database | utf8 |
  8. | character_set_filesystem | binary |
  9. | character_set_results | utf8 |
  10. | character_set_server | utf8 |
  11. | character_set_system | utf8 |
  12. | character_sets_dir | /usr/share/mysql/charsets/ |
  13. +--------------------------+----------------------------+
  14. +----------------------+-----------------+
  15. | Variable_name | Value |
  16. +----------------------+-----------------+
  17. | collation_connection | utf8_unicode_ci |
  18. | collation_database | utf8_unicode_ci |
  19. | collation_server | utf8_unicode_ci |
  20. +----------------------+-----------------+

添加用户及设置用户权限

创建用户

  1. create user username@localhost identified by 'password';

创建用户的同时授权权限

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

授权用户网络访问权限

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

授权用户可以授权给其它用户的权限

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

如果只需要授予用户部分权限,可以将上述代码中的 all privileges 修改成 selectinsertupdatedeletecreatedropindexaltergrantreferencesreloadshutdownprocessfile,个人使用中并不需要这么多个权限配置。

评论

发表评论 点击刷新验证码

提示

该功能暂未开放