在 CentOS 7 环境下安装 MySQL 是一项常见的操作,下面是一个详细的安装步骤,确保你可以顺利地安装 MySQL 数据库并配置它。

一、准备工作

  1. 更新系统
    首先,确保你的系统是最新的。运行以下命令来更新系统的所有软件包:sudo yum update -y
  2. 安装必要的依赖
    有些依赖包可能已经安装,但为了确保没有遗漏,可以先安装 wget 和其他工具:sudo yum install wget -y

二、安装 MySQL

1. 下载并安装 MySQL 仓库

MySQL 官方提供了一个专用的 Yum 仓库,可以方便地安装 MySQL。你需要先添加该仓库。

1.1 通过以下命令下载 MySQL 8.0 的 Yum 仓库配置文件:

wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

1.2 安装仓库:

sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm

1.3 确认仓库已经安装成功:

sudo yum repolist enabled | grep "mysql.*-community.*"

你应该能看到相关的 MySQL 仓库信息。

2. 安装 MySQL Server

安装 MySQL Server:

sudo yum install mysql-server -y

3. 启动 MySQL 服务

安装完成后,你需要启动 MySQL 服务:

sudo systemctl start mysqld

4. 配置 MySQL 开机自启

为了确保每次重启后 MySQL 都能自动启动,运行以下命令:

sudo systemctl enable mysqld

5. 查看 MySQL 服务状态

使用以下命令检查 MySQL 服务是否正常运行:

sudo systemctl status mysqld

如果看到输出中显示 active (running),说明 MySQL 服务已经启动。

三、MySQL 初始密码

MySQL 在第一次启动时会生成一个临时密码,系统会将该密码保存在 MySQL 的日志文件中。

  1. 查找临时密码
    临时密码存储在 MySQL 的日志文件 /var/log/mysqld.log 中。你可以通过以下命令获取它:sudo grep 'temporary password' /var/log/mysqld.log 输出会类似于:2021-01-01T12:34:56.789123Z 1 [Note] A temporary password is generated for root@localhost: abc123def456 上面的 abc123def456 就是 MySQL 的临时密码。

四、配置 MySQL 安全性

MySQL 安装完成后,你需要运行 mysql_secure_installation 来进行基本的安全配置,包括修改 root 密码、删除匿名用户、禁止远程登录等。

  1. 运行安全配置脚本sudo mysql_secure_installation
  2. 按照提示操作
    • 输入当前的 root 密码(临时密码)。
    • 设置一个新的 root 密码。
    • 是否删除匿名用户?输入 Y
    • 是否禁用 root 用户的远程登录?输入 Y
    • 是否删除 test 数据库?输入 Y
    • 是否重新加载权限表?输入 Y
    完成后,你就完成了 MySQL 的初步安全配置。

五、登录 MySQL

  1. 登录 MySQL
    使用新设置的 root 密码登录 MySQL:mysql -u root -p 输入密码后,你会进入 MySQL 提示符,类似于:mysql>
  2. 查看当前 MySQL 版本
    登录后,可以通过以下命令查看 MySQL 的版本:SELECT VERSION();

六、配置防火墙

如果你的 CentOS 系统启用了防火墙,可能需要允许 MySQL 的端口(默认是 3306)通过防火墙。

  1. 允许 MySQL 端口sudo firewall-cmd --permanent --add-port=3306/tcp sudo firewall-cmd --reload
  2. 检查防火墙设置sudo firewall-cmd --list-all

七、配置远程访问(可选)

如果你需要允许远程计算机访问 MySQL,你需要进行一些配置。

  1. 编辑 MySQL 配置文件
    打开 MySQL 配置文件:sudo vi /etc/my.cnf
  2. 修改绑定地址
    找到以下配置行:bind-address = 127.0.0.1 将其改为:bind-address = 0.0.0.0 这将允许 MySQL 接受来自所有 IP 地址的连接。
  3. 重新启动 MySQL
    修改配置文件后,重新启动 MySQL 服务:sudo systemctl restart mysqld
  4. 授予远程访问权限
    如果你希望允许某个远程用户访问 MySQL,登录到 MySQL 并执行以下命令:GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; 其中 username 是远程用户的用户名,password 是用户的密码,% 表示允许所有 IP 访问。

八、测试远程连接(可选)

  1. 测试 MySQL 远程连接
    在客户端机器上,使用以下命令测试连接:mysql -u username -p -h <MySQL_server_ip> 如果连接成功,表示 MySQL 已经配置为支持远程连接。

九、卸载 MySQL(如果需要)

如果你不再需要 MySQL,可以通过以下命令卸载它:

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

十、总结

通过以上步骤,你已经成功在 CentOS 7 上安装了 MySQL 8.0,并进行了基本配置。你可以根据需要进一步调整 MySQL 的配置,进行性能优化或创建数据库和用户。

如果遇到问题,可以查看 MySQL 的错误日志 /var/log/mysqld.log,里面通常会记录详细的错误信息。