当前位置: 首页 > news >正文

(2024最新)CentOS 7上在线安装MySQL 5.7|喂饭级教程

在CentOS 7上安装MySQL 5.7并配置允许远程连接,以下是详细步骤:

1. 添加MySQL官方存储库

首先,下载并添加MySQL的官方存储库。默认情况下,添加的存储库可能会包含最新的MySQL版本(如MySQL 8.0),所以我们需要调整存储库以启用MySQL 5.7。

#随便进入一个目录
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
sudo rpm -ivh mysql57-community-release-el7-11.noarch.rpm
# 导入MySQL GPG密钥
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

tips:导入MySQL GPG密钥的作用是防止出现以下报错:

从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql 检索密钥
导入 GPG key 0x5072E1F5:用户ID     : "MySQL Release Engineering <mysql-build@oss.oracle.com>"指纹       : a4a9 4068 76fc bd3c 4567 70c8 8c71 8d3b 5072 e1f5软件包     : mysql57-community-release-el7-11.noarch (installed)来自       : /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
是否继续?[y/N]:ymysql-community-libs-5.7.44-1.el7.x86_64.rpm 的公钥尚未安装失败的软件包是:mysql-community-libs-5.7.44-1.el7.x86_64GPG  密钥配置为:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

2. 安装MySQL 5.7

安装MySQL 5.7服务器。

sudo yum install mysql-community-server

3. 启动MySQL服务

安装完成后,启动MySQL服务并设置为开机启动。

sudo systemctl start mysqld
sudo systemctl enable mysqld

4. 获取临时密码

在安装过程中,MySQL会为root用户生成一个临时密码。你可以在日志文件中找到这个密码。

sudo grep 'temporary password' /var/log/mysqld.log

5. 安全设置

使用临时密码登录MySQL,并运行安全设置脚本。

mysql_secure_installation

你将被提示输入临时密码并设置新密码。随后,会有一系列安全配置选项:

  • 是否设置密码强度验证插件:Re-enter new password:
  • 是否更改root密码:Change the password for root ? ((Press y|Y for Yes, any other key for No) :
  • 是否删除匿名用户:Remove anonymous users? (Press y|Y for Yes, any other key for No) :
  • 是否禁止root远程登录(该项禁止的话无法本地root账号连接数据库 !):Remove anonymous users? (Press y|Y for Yes, any other key for No) :
  • 是否删除测试数据库:Remove anonymous users? (Press y|Y for Yes, any other key for No) :
  • 是否重新加载权限表:Remove anonymous users? (Press y|Y for Yes, any other key for No) :

通常你可以选择"yes"来加强安全性。

6. 登录MySQL

使用新设置的root密码登录MySQL。

mysql -u root -p

7. 设置允许远程连接

执行以下SQL命令来创建用户并允许远程连接:

CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

8. 配置MySQL以允许远程连接(没有就跳过)

编辑MySQL配置文件 /etc/my.cnf/etc/my.cnf.d/mysql-server.cnf,注释掉或修改 bind-address 行,使MySQL监听所有IP地址:

sudo vi /etc/my.cnf

找到以下行并注释掉:

#bind-address = 127.0.0.1

或者修改为:

bind-address = 0.0.0.0

9. 重启MySQL服务

使配置生效:

sudo systemctl restart mysqld

10. 配置防火墙

允许MySQL的默认端口(3306)通过防火墙:

sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
sudo firewall-cmd --reload

总结

通过以上步骤,你可以在CentOS 7上成功安装并配置MySQL 5.7数据库,并允许远程连接。以下是完整的命令列表,便于复制和执行:

# 下载并添加MySQL官方存储库
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
sudo rpm -ivh mysql57-community-release-el7-11.noarch.rpm# 安装MySQL 5.7
sudo yum install mysql-community-server# 启动MySQL服务并设置为开机启动
sudo systemctl start mysqld
sudo systemctl enable mysqld# 获取临时密码
sudo grep 'temporary password' /var/log/mysqld.log# 运行安全设置脚本
mysql_secure_installation# 登录MySQL
mysql -u root -p# 设置允许远程连接
# 以下命令在MySQL命令行中执行
# CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword';
# GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' WITH GRANT OPTION;
# FLUSH PRIVILEGES;# 配置MySQL以允许远程连接
# 编辑 /etc/my.cnf 文件
sudo vi /etc/my.cnf# 注释掉 bind-address 行
#bind-address = 127.0.0.1# 或者修改为:
bind-address = 0.0.0.0# 重启MySQL服务
sudo systemctl restart mysqld# 配置防火墙
sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
sudo firewall-cmd --reload

相关文章:

  • Nginx基础理论
  • 智能温室大棚在无土栽培中的应用
  • MySQL:创建账户及修改密码
  • 在k8s中部署Elasticsearch高可用集群详细教程
  • Certificate数字证书的有效性验证
  • c#一个udp代码
  • asyncua模块中OPC UA的ua.Variant如何表示字典?
  • 四十八、openlayers地图调色总结——锐化、模糊、浮雕滤镜,调整地图色相、饱和度、亮度
  • 之所以选择天津工业大学,因为它是双一流、报考难度适宜,性价比高!天津工业大学计算机考研考情分析!
  • Java基础 - 练习(三)打印空心菱形
  • 超详细的selenium使用指南
  • 驾校在线考试系统源码 手机+PC+平板自适应
  • 了解指标体系1:指标是大数据开发中的关键要素
  • linux系统中,pwd获取当前路径,dirname获取上一层路径;不使用 ../获取上一层路径
  • 连接Huggingface报requests.exceptions.SSLError错误
  • Apache Spark Streaming 使用实例
  • canvas 五子棋游戏
  • iOS 系统授权开发
  • Node + FFmpeg 实现Canvas动画导出视频
  • opencv python Meanshift 和 Camshift
  • scrapy学习之路4(itemloder的使用)
  • SpiderData 2019年2月16日 DApp数据排行榜
  • vue.js框架原理浅析
  • Web标准制定过程
  • 关于extract.autodesk.io的一些说明
  • 时间复杂度与空间复杂度分析
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​linux启动进程的方式
  • ‌[AI问答] Auto-sklearn‌ 与 scikit-learn 区别
  • # C++之functional库用法整理
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #define用法
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (9)目标检测_SSD的原理
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (javaweb)Http协议
  • (WSI分类)WSI分类文献小综述 2024
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (二)c52学习之旅-简单了解单片机
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (学习日记)2024.01.19
  • (转)linux 命令大全
  • (转)winform之ListView
  • .gitignore文件设置了忽略但不生效
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .NET C# 操作Neo4j图数据库
  • .Net Core中的内存缓存实现——Redis及MemoryCache(2个可选)方案的实现
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting