腾讯云Centos7.6使用yum安装MySQL8

1. 安装 MySQL 8

添加 MySQL Yum 仓库

bash 复制代码
# 下载 MySQL 8 的 yum 源
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

# 安装 yum 源
sudo rpm -ivh mysql80-community-release-el7-3.noarch.rpm

安装 MySQL 8

bash 复制代码
# 安装 MySQL 服务器
sudo yum install mysql-community-server -y

如果遇到类似错误:

bash 复制代码
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
Importing GPG key 0x5072E1F5:
 Userid     : "MySQL Release Engineering <mysql-build@oss.oracle.com>"
 Fingerprint: a4a9 4068 76fc bd3c 4567 70c8 8c71 8d3b 5072 e1f5
 Package    : mysql80-community-release-el7-3.noarch (installed)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql


Public key for mysql-community-common-8.0.46-1.el7.x86_64.rpm is not installed


 Failing package is: mysql-community-common-8.0.46-1.el7.x86_64
 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

请使用下面命令

bash 复制代码
# 方法1:重新安装,跳过GPG检查
sudo yum install mysql-community-server -y --nogpgcheck

2. 启动 MySQL 并获取临时密码

bash 复制代码
# 启动 MySQL 服务
sudo systemctl start mysqld

# 设置开机自启
sudo systemctl enable mysqld

# 查看临时密码(MySQL 8 安装后会生成临时密码)
sudo grep 'temporary password' /var/log/mysqld.log

3. 修改 MySQL 密码

bash 复制代码
# 使用临时密码登录 MySQL
mysql -u root -p

登录后执行以下 SQL 命令:

sql 复制代码
-- 修改密码策略(可选,如果希望设置简单密码)
-- 查看当前密码策略
SHOW VARIABLES LIKE 'validate_password%';

-- 降低密码策略(可选)
SET GLOBAL validate_password.policy = LOW;
SET GLOBAL validate_password.length = 6;

-- 修改 root 密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';

-- 刷新权限
FLUSH PRIVILEGES;

4. 配置远程连接

sql 复制代码
-- 创建远程访问用户
CREATE USER 'root'@'%' IDENTIFIED BY '你的密码';

-- 授予所有权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

-- 或者只授予特定数据库权限
-- GRANT ALL PRIVILEGES ON database_name.* TO 'root'@'%';

-- 刷新权限
FLUSH PRIVILEGES;

-- 查看用户权限
SELECT host, user, plugin FROM mysql.user;

修改 MySQL 配置文件允许远程连接

bash 复制代码
# 编辑 MySQL 配置文件
sudo vim /etc/my.cnf

在 [mysqld] 部分修改或添加:

ini 复制代码
[mysqld]
# 允许远程连接
bind-address = 0.0.0.0
# 或者注释掉 bind-address
# bind-address = 127.0.0.1

配置防火墙

bash 复制代码
# 开放 3306 端口
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload

# 或者直接关闭防火墙(不推荐)
# sudo systemctl stop firewalld
# sudo systemctl disable firewalld

重启 MySQL 服务

bash 复制代码
sudo systemctl restart mysqld

5. 验证远程连接

从其他机器测试连接:

bash 复制代码
mysql -h 服务器IP地址 -u root -p

注意事项

  1. 密码安全 :MySQL 8 默认使用 caching_sha2_password 认证插件,某些客户端可能不支持。如需兼容旧客户端:
sql 复制代码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
  1. SELinux 问题:如果连接失败,可能需要配置 SELinux:
bash 复制代码
# 查看 SELinux 状态
getenforce

# 临时关闭(不推荐)
sudo setenforce 0

# 或添加 SELinux 策略允许 MySQL 远程连接
sudo setsebool -P httpd_can_network_connect_db 1
  1. 云服务器:如果是云服务器(阿里云、腾讯云等),需要在安全组中放行 3306 端口。

完成以上步骤后,你的 MySQL 8 就可以远程连接了!

相关推荐
ClouGence40 分钟前
数据库迁移工具 CloudCanal v6.5.0.0 发布:新增 TDSQL PostgreSQL 多条链路,支持 MongoDB 双向同步
数据库·mysql·mongodb
这个DBA有点耶2 小时前
Change Buffer深入:二级索引写入的隐形加速器与它的代价
数据库·mysql·代码规范
for_ever_love__2 小时前
MySQL 事务隔离级别讲透:MVCC、幻读与四个级别怎么选
java·数据库·mysql·事务·mvcc·不可重复读·幻读
这个DBA有点耶6 小时前
关系数据库管理系统选型指南:四步决策框架与主流产品技术路线对比
数据库·sql·程序人生·mysql·database·dba
我不会起名字3227 小时前
MVCC 快照读为什么读不到刚提交的数据:ReadView 的 4 条可见性规则
数据库·mysql·innodb·mvcc·事务隔离
螺蛳粉 螺蛳粉8 小时前
第四篇:Keepalived + MySQL 主从高可用实战
数据库·mysql·adb·keepalived·高可用
陈年老古董8 小时前
Hive DML 语言学习笔记:数据加载、插入、导出与导入
hive·笔记·学习·mysql
yuezhilangniao8 小时前
阿里云 CentOS 7 升级 Redis 到 7.2 实录-centos7安装redis7
redis·阿里云·centos
for_ever_love__9 小时前
MySQL 锁与死锁讲透:行锁、间隙锁、Next-Key Lock 与排查方法
mysql·lock·行锁·死锁·间隙锁·排查·next-key
云贝贝贝9 小时前
【无标题】TDSQL 分片键怎么选?选错等于数据倾斜加跨分片慢查询
运维·服务器·数据库·腾讯云