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

MySQL 安装、加固与远程访问

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


一、MySQL 安装

启用 MySQL 官方仓库

bash 复制代码
dnf -y install https://repo.mysql.com/mysql84-community-release-el8-1.noarch.rpm

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

bash 复制代码
dnf install -y yum-utils

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

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

安装 MySQL

bash 复制代码
dnf install -y mysql-community-server

启动服务并设置开机自启

bash 复制代码
systemctl start mysqld
systemctl enable mysqld
systemctl status mysqld

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

查看临时密码

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

bash 复制代码
grep -i password /var/log/mysqld.log

登录并修改密码

bash 复制代码
mysql -uroot -p
sql 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Mysql@123';
FLUSH PRIVILEGES;   -- 刷新一下

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

bash 复制代码
mysql -uroot -p

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


二、初始化安装配置

bash 复制代码
mysql_secure_installation

交互项说明:

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

三、远程访问配置

1. 修改 MySQL 绑定地址

bash 复制代码
# CentOS / RHEL
vim /etc/my.cnf

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

找到或添加:

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

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

bash 复制代码
# CentOS / RHEL
systemctl restart mysqld

# Ubuntu / Debian
systemctl restart mysql

2. 创建远程用户

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

sql 复制代码
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'Mysql@123';

注:

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

3. 放行防火墙端口

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

bash 复制代码
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload

4. 远程连接测试

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

bash 复制代码
mysql -h 部署服务器IP -u remote_user -p

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

相关推荐
bigbig_ben3 小时前
yearning安装docker
运维·docker·容器
日常筹谋记6 小时前
工业厂房 TPO 防水卷材:技术需求如何传导到配方层面?
运维·网络·html
昵称画6 小时前
交接班记录电子化:三班之间的信息不漏
开发语言·数据库·人工智能·低代码·php
Linux_cy6 小时前
服务器管理工具哪个好用?我用了七八个
运维·服务器·javascript·python·ssh·面板·gmssh
缓慢更新7 小时前
审批的加签与会签:多人意见怎么合
android·java·数据库·低代码·rxjava
跨境联盟7 小时前
大健康实体如何搭建产品差异化:对比普通营养品与合规跨境膳食补充剂服务模式
数据库·ai·健康医疗·健康管理·精准营养
有想法的py工程师7 小时前
PostgreSQL EXPLAIN中的Cost模型分析(random_page_cost参数):优化器眼中的代价世界与执行计划生成
数据库·postgresql
前进的李工8 小时前
飞书企业知识库设计+后端高频八股
数据库·redis·后端·mysql·性能优化·飞书·rag
泡海椒8 小时前
JQuick-SQL CSV 文件数据接入:转换为内存表后再查询
数据库·sql