MySQL之旅
Stitch-Zhang
An iddle programerMySQL经验小结
CentOS安装社区版MySQL#
下载#
前往中下载页面链接
其中包含所有版本的Mysql,选择需要的版本和当前的系统类型
如我的是选择5.7.10版本的,在RHEL(CentOS)上食用

下载选的综合包,其中包含页面上显示的所有包
其中包含
| 包名 | 功能 |
|---|---|
| mysql-community-client | 提供客户端命令 |
| mysql-community-libs | 依赖库 |
| mysql-community-common | 通用依赖 |
| mysql-community-libs-compat | 客户端的兼容库 |
| mysql-community-server | 服务器程序和相关工具 |
| mysql-community-devel | 开发MySQL必备的头文件和库 |
| mysql-community-minimal-debuginfo | 最小安装调式信息库 |
| mysql-community-embedded | 嵌入式库 |
| mysql-community-embedded-compat | 嵌入式共享兼容库 |
| mysql-community-test | 测试套件 |
| mysql-community-embedded-devel | 嵌入式开发库和头文件 |
安装#
使用yum安装#
表格中标注粗体的都为必须安装的包

不建议使用rpm进行安装,包之间依赖关系复杂,安装繁琐

启动服务#
查看状态#

配置#
[可选]更改数据库文件夹#
配置文件/etc/my.cnf中datadir字段,如我将把数据库存放改到/dbdata中

重启服务#
查询密码#
MySQL版本<=5.7,启动服务后会自动生成一个临时密码,其存在在日志文件/var/log/mysqld.log中
可通过如下命令查询

初始化#
初始化会要求输入临时密码
密码策略修改#
使用的MySQL 5.7默认有安装密码强度校验插件validate_password
查询当前策略信息#
密码策略配置在全局变量中,可通过查看其变量值来确定

| 变量 | 值意 |
|---|---|
| validate_password_dictionary_file | 检查密码的字典文件的路径名 |
| validate_password_length | 最短密码长度 |
| validate_password_mixed_case_count | 最少大小写字符对数 |
| validate_password_number_count | 最少数字数目 |
| validate_password_policy | 密码策略 |
| validate_password_special_char_count | 最少特殊字符数 |
密码策略
| 策略等级 | 描述 |
|---|---|
| 0/LOW | 只检查长度 |
| 1/MEDIUM | 检查长度、数字、大小写、特殊字符 |
| 2/STRONG | 检查长度、数字、大小写、特殊字符、字典文件。 |
修改策略#
将修改密码策略为LOW
在修改策略之前创建的用户密码不受影响
修改策略后,再进行创建的用户,将受到影响
简单粗暴#
如果觉得上面繁琐,可直接卸载插件
卸载后新增用户,其密码没有任何限制
修改密码#
root用户只能修改为本地访问
设置最大连接数#
查看当前最大连接数#
设置最大连接数#
如下设置最大连接数为500
食用🥢#
建库并配置用户#
如下创建expirement数据库,创建并赋予用户stitch所有权限
所有权限:
select,insert,update,delete ,create,drop,references
index,alter,create temporary tables,lock tables,execute
create view,show view,create routine,alter routine,event,trigger
创建数据库#
数据库授权#
创建与用户并授权#
通过该命令创建的用户,其默认允许任意IP连接
设置限制IP连接#
限制客户端IP为192.168.1.*
启用SSL通信#
MySQL在启动时会自动生成SSL相关证书于数据库文件夹,并启用SSL用于加密数据传输
而MariaDB中SSL默认未配置,且为关闭状态,需要手动生成证书和新增配置文件
生成CA私钥和CA证书#
证书格式:x509
CA私钥#
CA证书#
使用刚刚的私钥进行创建
因为是自签CA证书,将要求填入CA机构信息
生成私钥和证书生成请求#
将生成
server-key.pem证书私钥server-req.pem证书生成请求
私钥预处理#
删除私钥密码短语
证书签名#
使用生成的CA私钥、CA证书将证书生成请求进行签名生成证书
写入配置#
MariaDB#
/etc/my.cnf.d/server.cnf
重启服务#
用户SSL加密登录#
获取服务器SSL配置信息#
have_ssl必须为YES状态才能使用SSL,若未启用请参考
启用并配置SSL#
使用MySQL 5.7内置的命令来完成配置
此工具将会自动生成MySQL需要的相关证书,其存放于数据库文件夹中(默认在/var/lib/mysql)
创建用户并设置SSL登录#
在配置用户SSL登录后,用户登录时需要
- CA证书(CA Certificate)
- 客户端密钥 (Client Key)
- 客户端证书 (Client Certificate)
可从数据库服务器中数据库文件夹中获取

连接测试#
https://mariadb.com/kb/en/securing-connections-for-client-and-server/