Mysql的安装,加固与远程访问

1 阅读2分钟

MySQL 安装、加固与远程访问

MySQL 是一个流行的开源关系型数据库管理系统(RDBMS),使用 SQL 操作数据,数据以表、行、列形式存储。本节详细记录了 MySQL 的安装与加固的完整步骤(CentOS / Rocky 版本),以及怎么配置远程访问。


一、MySQL 安装

启用 MySQL 官方仓库

dnf -y install https://repo.mysql.com/mysql84-community-release-el8-1.noarch.rpm

MySQL 常用有 5.7 和 8.0 版本,默认下载 8.0;如果需要下载 5.7,需要提前切换:

dnf install -y yum-utils

# 禁用 8.0 仓库
yum-config-manager --disable mysql80-community

# 启用 5.7 仓库
yum-config-manager --enable mysql57-community

安装 MySQL

dnf install -y mysql-community-server

启动服务并设置开机自启

systemctl start mysqld
systemctl enable mysqld
systemctl status mysqld

注意:CentOS / RHEL 上服务名是 mysqld;Ubuntu / Debian 上是 mysql。

查看临时密码

安装以后需要先获取初始临时密码,再登录 MySQL 修改密码:

grep -i password /var/log/mysqld.log

登录并修改密码

mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Mysql@123';
FLUSH PRIVILEGES;   -- 刷新一下

修改以后可以重新登录一下,然后用 show databases 检验:

mysql -uroot -p

-u 表示用户,-p 表示输入密码。


二、初始化安装配置

mysql_secure_installation

交互项说明:

交互项建议选择说明
是否启用密码强度检查(validate_password)新手可先选 N选 N 可设置简单密码,方便练习;生产环境建议选 Y 并设置强密码
设置 root 密码输入并确认需牢记,后续登录使用
删除匿名用户Y提高安全性
禁止 root 远程登录Y只允许本地登录更安全
删除测试数据库Y减少冗余与风险
重新加载权限表Y使配置立即生效

三、远程访问配置

1. 修改 MySQL 绑定地址

# CentOS / RHEL
vim /etc/my.cnf

# Ubuntu / Debian
vim /etc/mysql/mysql.conf.d/mysqld.cnf

找到或添加:

bind-address = 0.0.0.0    # 表示允许任何主机访问,也可以设置成特定 IP

配置更改后需要重新启动服务:

# CentOS / RHEL
systemctl restart mysqld

# Ubuntu / Debian
systemctl restart mysql

2. 创建远程用户

修改配置文件以后,我们不能直接让远程用户获取 root 账号登录,所以需要创建一个用户账号:

CREATE USER 'remote_user'@'%' IDENTIFIED BY 'Mysql@123';

注:

  • 'remote_user'@'%':允许从任何主机连接。remote_user 表示用户名;% 表示任何主机可访问。
  • IDENTIFIED BY 设置密码。

3. 放行防火墙端口

设置完毕以后,还要防止防火墙阻拦 MySQL 端口,需要放行 3306 端口:

firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload

4. 远程连接测试

在数据库服务器创建远程用户后,远程用户又该怎么连接呢?只需要比本机登录多一个 -h 参数即可:

mysql -h 部署服务器IP -u remote_user -p

输入密码后即可登录,说明远程访问配置成功。