MySQL是一个关系型数据库管理系统,常用于LAMP和LNMP等建站场景中。本教程介绍如何在CentOS 8系统ECS实例上安装、配置以及远程访问MySQL数据库。

前提条件

已创建一台ECS实例。具体操作,请参见使用向导创建实例

本教程中,创建的ECS实例主要配置说明如下:
  • 实例规格:ecs.c6.large。
  • 操作系统:公共镜像CentOS 8.2 64位。
  • 网络:专有网络VPC,并绑定了固定公网IP。

背景信息

本教程在示例步骤中将部署MySQL 8.0.21版本。您在实际操作时,MySQL的版本可能因软件源的更新而有所不同。关于MySQL相关安装路径说明如下:
  • 配置文件:/etc/my.cnf
  • 数据存储:/var/lib/mysql
  • 命令文件:/usr/bin/usr/sbin

步骤一:安装MySQL

  1. 远程连接CentOS 8系统的ECS实例。
    具体操作,请参见通过密码认证登录Linux实例
  2. 切换CentOS 8源地址。

    CentOS 8操作系统版本结束了生命周期(EOL),按照社区规则,CentOS 8的源地址http://mirror.centos.org/centos/8/内容已移除,您在阿里云上继续使用默认配置的CentOS 8的源会发生报错。如果您需要使用CentOS 8系统中的一些安装包,则需要手动切换源地址。具体操作,请参见CentOS 8 EOL如何切换源?

  3. 运行以下命令安装MySQL。
    dnf -y install @mysql
  4. 安装完成后,运行以下命令查看MySQL版本信息。
    mysql -V
    查看版本结果如下图所示。mysql 8.0.21

步骤二:配置MySQL

  1. 运行以下命令启动MySQL,并设置为开机自启动。
    systemctl enable --now mysqld
  2. 运行以下命令查看MySQL是否已启动。
    systemctl status mysqld
    查看返回结果中Active: active (running)表示已启动。
  3. 运行以下命令执行MySQL安全性操作并设置密码。
    mysql_secure_installation
    命令运行后,根据命令行提示执行如下操作。
    1. 输入Y并回车开始相关配置。
    2. 选择密码验证策略强度,输入2并回车。

      策略0表示低,1表示中,2表示高。建议您选择高强度的密码验证策略。

    3. 设置MySQL的新密码并确认。

      本示例设置密码PASSword123!

    4. 输入Y并回车继续使用提供的密码。
    5. 输入Y并回车移除匿名用户。
    6. 输入Y并回车禁止root用户远程连接MySQL。
    7. 输入Y并回车删除test库以及对test库的访问权限。
    8. 输入Y并回车重新加载授权表。

步骤三:远程访问MySQL数据库

建议您使用非root账号远程登录MySQL数据库。本示例中,将创建新的MySQL用户账户,用于远程访问MySQL。

  1. 为ECS实例所属的安全组入方向放行MySQL所需的端口号。
    MySQL默认占用的端口号为3306。您需要在ECS实例所使用的安全组入方向添加规则并放行3306端口。具体步骤,请参见添加安全组规则
  2. 在ECS实例上,创建并配置远程访问MySQL的账号。
    1. 运行以下命令后,输入root用户的密码登录MySQL。
       mysql -uroot -p
    2. 在MySQL客户端中,依次运行以下命令,创建用于远程访问MySQL的账号,并允许远程主机使用该账号访问MySQL。
      本示例中,账号为dms、密码为PASSword123!
      create user 'dms'@'%' identified by 'PASSword123!';
      grant all privileges on *.* to 'dms'@'%'with grant option;
      flush privileges;
      说明 实际创建账号时,密码需符合要求。长度为8至30个字符,必须同时包含大小写英文字母、数字和特殊符号。可以使用以下特殊符号:

      ()` ~!@#$%^&*-+=|{}[]:;‘<>,.?/

  3. 使用dms账号远程登录MySQL。
    • (推荐)您可以通过阿里云提供的数据管理服务DMS(Data Management Service)来远程访问MySQL数据库。详细信息,请参见云数据库录入
    • 您可以通过本地主机的远程连接工具进行测试。例如:MySQL Workbench、Navicat。