CentOS7最小化安装后要做的事(5):MariaDB安装与配置

考虑到《可能是目前最详细简明的CentOS7安装与管理教程》一文太长,以及目前不支持导航目录,阅读起来过于不便,故对其分解成《CentOS7最小化安装后要做的事》系列,方便以后有针对性的丰富内容。

MariaDB:

CentOS 6 或早期的版本中提供的是 MySQL 的服务器/客户端安装包,但 CentOS 7 已使用了 MariaDB 替代了默认的 MySQL。MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

在这里先介绍下常用的RPM命令:

查询软件包
rpm -q xxx
rpm -qp ***.rpm: 获取当前目录下的rpm包相关信息
rpm -qa | less :列出所有已安装的软件包
rpm -qa | grep xxx :列出所有被安装的xxx
rpm -qf /usr/sbin/httpd :查看某个文件属于哪个软件包,可以是普通文件或可执行文件,跟文件的绝对路径
rpm -qi xxx:列出已安装的xxx包的标准详细信息
rpm -ql xxx:列出rpm包xxx的文件内容

安装软件包
rpm -ivh ***.rpm:其中i表示安装,v表示显示安装过程,h表示显示进度

升级软件包
rpm -Uvh ***.rpm

删除软件包
rpm -e xxx
rpm -e -–nodeps xxx:不考虑依赖包
rpm -e –-allmatches xxx:删除所有跟xxx匹配的所有版本的包

1.1 安装

首先查看系统是否安装过mariadb:rpm -qa | grep mariadb

先卸载系统中的mariadb:rpm -e --nodeps mariadb-libs-****.x86_64

CentOS7最小化安装后要做的事(5):MariaDB安装与配置_第1张图片

查看可安装版本:yum list mariadb*

CentOS7最小化安装后要做的事(5):MariaDB安装与配置_第2张图片

这里要说明一下:

出于实用的目的,MariaDB是同一MySQL版本的二进制替代品(例如MySQL 5.1->MariaDB 5.1, MariaDB5.2和MariaDB 5.3是兼容的。MySQL 5.5将会和MariaDB 5.5保持兼容)。简单说5.x就是为了兼容MySQL5.x的,接口几乎一致,体验上几乎无差别。
但是从2012年11月12日发布的mariadb10.0.0开始,不在依照MySQL的版本号,10.0.x版本是以5.5版为基础,加入移植自MySQL5.6版的新功能和自行开发的新功能。

所以,为了更好的兼容已有MySQL(5.6以前)版本,这里我们不安装最新版marisdb10,而是选择5.5版本。

这里我们安装mariadbmariadb-server即可。
执行命令yum install -y mariadb mariadb-server

CentOS7最小化安装后要做的事(5):MariaDB安装与配置_第3张图片

CentOS7最小化安装后要做的事(5):MariaDB安装与配置_第4张图片

程序会自动分析其需要的依赖并下载安装,我们静等完成就好。


CentOS7最小化安装后要做的事(5):MariaDB安装与配置_第5张图片

到此,mariadb安装结束。

1.2 启动配置

启动mariadb:systemctl start mariadb
查看运行状态:systemctl status mariadb

CentOS7最小化安装后要做的事(5):MariaDB安装与配置_第6张图片

设置开启自启: systemctl enable mariadb

1.3 密码配置

登陆数据库:mysql -u root -p

CentOS7最小化安装后要做的事(5):MariaDB安装与配置_第7张图片

首次安装后,root账号默认密码为空,下面我们为root账号设置密码
执行命令: mysql_secure_installation

CentOS7最小化安装后要做的事(5):MariaDB安装与配置_第8张图片

CentOS7最小化安装后要做的事(5):MariaDB安装与配置_第9张图片

使用刚设置的密码登陆数据库:
mysql -u root -p

CentOS7最小化安装后要做的事(5):MariaDB安装与配置_第10张图片
1.4 字符集与排序规则

接下来,让我么你看下mariadb数据库字符集(Character set)和排序规则(Collation):
执行:show variables like "%character%";show variables like "%collation%";

CentOS7最小化安装后要做的事(5):MariaDB安装与配置_第11张图片

这里再普及下字符集的概念:

character_set_client: 代表客户端字符集,客户端最简单的来说,就是指命令行,或者其它操作数据库的网页,应用等等,客户端字符集就代表了用户输入的字符,用什么字符集来编码。
character_set_connection: 代表与服务器连接层的字符集,mysql是连接mysqld服务器的客户端,两者连接层,采用的字符集。
character_set_database: 数据库采用的字符集。
character_set_filesystem: 文件采用的肯定是二进制最合适,不用修改。
character_set_result: 结果字符集,返回结果时采用的字符集。
character_set_server: mysql服务器采用的字符集,也就是操作默认的字符集。
character_set_system: 系统元数据(字段名等)字符集,比如我们输入的命令'insert ...'这些语句字符串采用的字符集。
collation_类同

为了保证统一,避免出现编码不一致导致的乱码问题,我们统一设置成utf-8:

临时修改(重启后失效)

字符集
– mysql> SET character_set_client = utf8 ;
– mysql> SET character_set_connection = utf8 ;
mysql> SET character_set_database = utf8 ;
mysql> SET character_set_results = utf8 ;
mysql> SET character_set_server = utf8 ;

排序规则
– mysql> SET collation_connection = utf8_general_ci;
mysql> SET collation_database = utf8_general_ci;
mysql> SET collation_server = utf8_general_ci ;

这里对mysql中的排序规则utf8_unicode_ci、utf8_general_ci的区别总结:

ci是 case insensitive, 即 "大小写不敏感"
utf8_general_ci 不区分大小写
utf8_general_cs 区分大小写
utf8_unicode_ci和utf8_general_ci对中、英文来说没有实质的差别。
utf8_general_ci校对速度快,但准确度稍差。
utf8_unicode_ci准确度高,但校对速度稍慢。
tf8_unicode_ci比较准确,utf8_general_ci速度比较快。通常情况下 utf8_general_ci的准确性就够我们用的了,如果你的应用有德语、法语或者俄语,请一定使用utf8_unicode_ci。

永久修改
首先修改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
# To ignore client information and use the default server character set
# 忽略客户端字符集信息,并使用服务器默认字符集
skip-character-set-client-handshake
CentOS7最小化安装后要做的事(5):MariaDB安装与配置_第12张图片

重启mariadb:systemctl restart mariadb
重新登录,再次查看:show variables like "%character%";show variables like "%collation%";都已设置成utf8。

CentOS7最小化安装后要做的事(5):MariaDB安装与配置_第13张图片

1.5 用户与权限

创建用户:CREATE USER username IDENTIFIED BY 'password';

为用户设置权限:

授予username用户在所有数据库上的所有权限:
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password';
撤销username用户在所有数据库上的所有权限:
REVOKE ALL PRIVILEGES ON *.* FROM 'username'@'localhost';
授予username用户在xxx数据库上的所有权限:
GRANT ALL PRIVILEGES ON xxx.* TO 'username'@'localhost' IDENTIFIED BY 'password';
授予username用户在xxx数据库上的SELECT, UPDATE权限:
GRANT SELECT, UPDATE ON xxx.* TO 'username'@'localhost' IDENTIFIED BY 'password';

注意:上述命令中@localhost指的是本地,如果需要远程登录数据库,则使用@'%'

刷新权限:
FLUSH PRIVILEGES;

删除用户:
DROP USER username@localhost;

你可能感兴趣的:(CentOS7最小化安装后要做的事(5):MariaDB安装与配置)