Centos安装mysql8

🛠 准备工作

开始前,最好先更新系统并安装一些可能的依赖:

sudo yum update -y
sudo yum install -y wget

如果系统之前有安装过 MariaDB 或旧版 MySQL,建议先卸载它们以避免冲突:

sudo yum remove -y mysql* mariadb*
sudo rm -rf /var/lib/mysql /etc/my.cnf*

使用 Yum 仓库安装(推荐)

  1. 添加 MySQL Yum 仓库 首先,下载并安装 MySQL 官方的 Yum 仓库配置包。

    # 针对 CentOS 7 (El7)
    wget https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm
    # 或者针对 CentOS 8/9 (El8, El9),请根据你的系统版本选择对应的包,例如对于 CentOS 9:
    # wget https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
    sudo rpm -ivh mysql80-community-release-el*.rpm
  2. 安装 MySQL 8 通过 yum 命令安装 MySQL 服务器社区版。

    sudo yum install -y mysql-community-server
  3. 启动 MySQL 服务并设置开机自启 安装完成后,启动 MySQL 服务并让它开机自动启动。

    sudo systemctl start mysqld
    sudo systemctl enable mysqld
  4. 查看初始临时密码 MySQL 首次启动后会为 'root'@'localhost' 用户生成一个临时密码。你需要查看日志文件来找到这个密码。

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

    记下这个临时密码,下一步登录时会用到。

  5. 运行安全配置脚本并设置 root 密码 使用刚才找到的临时密码以 root 用户身份登录 MySQL:

    mysql -u root -p

    在 MySQL 提示符下,强烈建议你立即修改 root 用户的密码(your_new_strong_password 请替换为你自己设定的强密码):

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_new_strong_password';
    FLUSH PRIVILEGES;

    之后,你可以运行 mysql_secure_installation 命令来进行一些额外的安全设置,例如移除匿名用户、禁止 root 远程登录等。

  6. (可选)配置远程访问和防火墙

    • 配置远程访问:默认情况下,MySQL 的 root 用户可能不允许远程连接。如果你需要从其他机器访问,通常需要创建一个新用户并授权:

      CREATE USER 'your_username'@'%' IDENTIFIED WITH mysql_native_password BY 'your_strong_password';
      GRANT ALL PRIVILEGES ON *.* TO 'your_username'@'%' WITH GRANT OPTION;
      FLUSH PRIVILEGES;

      注意:使用 '%' 允许任何主机连接会带来安全风险,请根据实际情况谨慎设置。

    • 开放防火墙端口:如果系统防火墙 (firewalld) 是开启的,你需要开放 MySQL 默认的 3306 端口:

      sudo firewall-cmd --permanent --add-port=3306/tcp
      sudo firewall-cmd --reload
  7. (可选)修改字符集编码 建议将 MySQL 的字符集设置为 utf8mb4 以更好地支持中文等 Unicode 字符。编辑 /etc/my.cnf 文件,在 [mysqld] 部分添加以下内容:

    [client]
    default-character-set=utf8mb4
    ​
    [mysqld]
    character-set-server=utf8mb4
    collation-server=utf8mb4_unicode_ci

    保存后,重启 MySQL 服务使配置生效:

    sudo systemctl restart mysqld

问题记录

安装出现如下报错:

导入的密钥没有公钥,错误的公钥?
mysql-community-client-8.0.43-1.el9.x86_64.rpm 的公钥没有安装. 失败的软件包是:mysql-community-client-8.0.43-1.el9.x86_64
 GPG密钥配置为:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
mysql-community-client-plugins-8.0.43-1.el9.x86_64.rpm 的公钥没有安装. 失败的软件包是:mysql-community-client-plugins-8.0.43-1.el9.x86_64
 GPG密钥配置为:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
mysql-community-common-8.0.43-1.el9.x86_64.rpm 的公钥没有安装. 失败的软件包是:mysql-community-common-8.0.43-1.el9.x86_64
 GPG密钥配置为:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
mysql-community-icu-data-files-8.0.43-1.el9.x86_64.rpm 的公钥没有安装. 失败的软件包是:mysql-community-icu-data-files-8.0.43-1.el9.x86_64
 GPG密钥配置为:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
mysql-community-libs-8.0.43-1.el9.x86_64.rpm 的公钥没有安装. 失败的软件包是:mysql-community-libs-8.0.43-1.el9.x86_64
 GPG密钥配置为:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022
mysql-community-server-8.0.43-1.el9.x86_64.rpm 的公钥没有安装. 失败的软件包是:mysql-community-server-8.0.43-1.el9.x86_64
 GPG密钥配置为:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022

解决方式:

最可能的原因是系统里的MySQL GPG密钥过期了。MySQL的GPG密钥每年都会更新。错误信息里提到RPM-GPG-KEY-mysql-2022,尝试导入更新年份的密钥,比如2023、2024或2025

# 尝试导入2023年的密钥
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2023
# 如果不行,再尝试2024或2025年的
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2024
sudo rpm --import https://repo.mysql-2025

修改密码问题:

首次设置root密码为简单类型时报错,不符合密码策略。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MySecurePassword123!';

解决方式:

先设置符合规则的密码,然后修改密码策略

-- 设置密码策略为低 (0/LOW, 1/MEDIUM, 2/STRONG)
SET GLOBAL validate_password.policy = 0;
​
-- 减少密码最小长度要求
SET GLOBAL validate_password.length = 4;
​
-- 减少特殊字符要求
SET GLOBAL validate_password.special_char_count = 0;
​
-- 减少数字要求
SET GLOBAL validate_password.number_count = 0;
​
-- 减少大小写字母要求
SET GLOBAL validate_password.mixed_case_count = 0;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tsxchen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值