安装 MySQL
最新稳定的MySQL版本是5.7,所以这是我们将在本教程中安装和配置的版本。该包是您需要添加的第一件事,它在MySQL存储库中可用。 执行以下命令开始:
yum localinstall -y https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
该命令将添加可以用于安装数据库系统的MySQL存储库:
yum install -y mysql-community-server
在安装过程结束时,使用systemd工具启动MySQL:
systemctl start mysqld
检查MySQL状态:
mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) ...
MySQL可以通过执行netstat工具看到3306端口,
netstat -plntu | grep mysql
tcp6 0 0 :::3306 :::* LISTEN 8776/mysqld
MySQL配置
在MySQL服务器的初始启动时,将创建一个超级用户帐户('root'@'localhost),并将默认密码设置并存储在错误日志文件中。 通过执行以下命令显示此密码:
grep 'temporary password' /var/log/mysqld.log
输出为:
[Note] A temporary password is generated for root@localhost: en>_g6syXIXq
第一步是更改root密码。
登录到MySQL shell:
mysql -u root -p
输入使用上一个命令显示的自动生成的密码。
接下来,使用以下查询更改密码:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'RootStrongPassword1!';
刷新权限并退出:
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> EXIT;
Bye
为MySQL启用SSL
默认情况下,MySQL有自己的SSL证书,存储在/var/lib/mysql中。 为了本教程的目的,这些证书是足够好的。
注意:在生产中,始终使用更安全和“personal”的证书。
从MySQL shell检查SSL。
# mysql -u root -p
mysql> SHOW GLOBAL VARIABLES LIKE '%ssl%';
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| have_openssl | YES |
| have_ssl | YES |
| ssl_ca | ca.pem |
| ssl_capath | |
| ssl_cert | server-cert.pem |
| ssl_cipher | |
| ssl_crl | |
| ssl_crlpath | |
| ssl_key | server-key.pem |
+---------------+-----------------+
9 rows in set (0.01 sec)
检查SSL状态:
mysql> STATUS;
mysql Ver 14.14 Distrib 5.7.18, for Linux (x86_64) using EditLine wrapper
...
SSL: Not in use
...
如您所见,SSL没有被使用。 所以,下一步是启用它。
在MySQL配置文件中启用SSL
编辑MySQL配置文件:
# $EDITOR /etc/my.cnf
在[mysqld]部分,粘贴以下内容:
ssl-ca=/var/lib/mysql/ca.pem
ssl-cert=/var/lib/mysql/server-cert.pem
ssl-key=/var/lib/mysql/server-key.pem
保存,退出并重启MySQL服务。
# systemctl restart mysqld
再次检查MySQL shell中的SSL状态。
# mysql -u root -p
mysql> STATUS;
mysql Ver 14.14 Distrib 5.7.18, for Linux (x86_64) using EditLine wrapper
...
SSL: Not in use
...
启用客户端
此时尚未使用SSL。 这是因为我们需要通过SSL强制所有的客户端连接。 所以,退出MySQL shell并再次编辑my.cnf文件。
# $EDITOR /etc/my.cnf
在文件末尾粘贴以下内容:
[client]
ssl-ca=/var/lib/mysql/ca.pem
ssl-cert=/var/lib/mysql/client-cert.pem
ssl-key=/var/lib/mysql/client-key.pem
再次保存,退出并重新启动MySQL:
# systemctl restart mysqld
检查MySQL状态如上所述:
mysql> STATUS
mysql Ver 14.14 Distrib 5.7.18, for Linux (x86_64) using EditLine wrapper
...
SSL: Cipher in use is DHE-RSA-AES256-SHA
...
现在启用,连接通过它进行保护。
启用远程连接
本教程的最后一步是启用远程连接。 每个系统管理员都知道,只允许经过验证的客户端是至关重要的。
编辑MySQL配置文件:
# $vim /etc/my.cnf
在[mysqld]部分的末尾粘贴以下行:
bind-address = *
#require_secure_transport = ON
保存,退出并重启MySQL。
# systemctl restart mysqld
为远程连接创建新用户
此时,SSL和远程连接已启用。 接下来要做的是创建一个新的MySQL用户:
# mysql -u root -p