# CentOS安装部署MySQL数据库
#### 简介
本文以CentOS操作系统为例，介绍如何完成MySQL数据库的部署。
#### 前提条件
1. 弹性云服务器已绑定弹性公网IP。
2. 弹性云服务器所在安全组添加了如下表所示的安全组规则，具体步骤参见[为安全组添加安全组规则](https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0030969470.html)。
   表1安全组规则 
   | 方向  | 优先级 | 策略 | 类型   | 协议端口     | 源地址        |
   |:---|:---|:---|:---|:---|:---|
   | 入方向  | 1       | 允许   | IPv4  | TCP: 22  | 0.0.0.0/0 |
   | 入方向 | 1      | 允许     | IPv4 | TCP: 3306 | 0.0.0.0/0     |
      
   
3. 为了更好地获取和更新系统和软件，建议您更新镜像源为华为云镜像源，详细操作，请参见[如何使用华为云开源镜像配置yum源(x86_64和鲲鹏)？](https://support.huaweicloud.com/ecs_faq/zh-cn_topic_0118948562.html)。
 
#### 操作步骤
**部署MySQL**
1. 创建可以访问公网的CentOS弹性云服务器，选择VNC远程登录或SSH远程登录，使用root账号登录。 ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002245371709.png "点击放大")
   
2. 执行以下命令，从MySQL官网下载[MySQL 8.0](https://dev.mysql.com/get/mysql80-community-release-el7-10.noarch.rpm)的rpm软件包。
   ```
   wget -i -c https://dev.mysql.com/get/mysql80-community-release-el7-10.noarch.rpm
   ```
   ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002210371734.png "点击放大")
   
3. 执行以下命令，安装第[2]步下载的MySQL 8.0的rpm软件包。
   ```
   yum -y install mysql80-community-release-el7-10.noarch.rpm
   ```
   ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002210531518.png "点击放大")
   
4. 执行以下命令，安装MySQL社区版服务器及其依赖包（跳过GPG签名检查）。
   ```
   yum -y install mysql-community-server --nogpgcheck
   ```
   ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002245451613.png "点击放大")
   ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002245371725.png "点击放大")
   
5. 执行以下命令，验证查看MySQL版本。
   ```
   mysql -V
   ```
   ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002210371754.png "点击放大")
   
6. 执行以下命令，启动MySQL服务并配置为开机自启。
   ```
   systemctl start mysqld
   systemctl enable mysqld
   ```
   ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002210531534.png "点击放大")
   
7. 执行以下命令，查看MySQL的运行状态。
   ```
   systemctl status mysqld.service
   ```
   正常运行状态如下图所示。
   ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002245451625.png "点击放大")
   
8. 执行以下命令，获取安装MySQL时自动设置的root用户密码。
   ```
   grep 'temporary password' /var/log/mysqld.log
   ```
   ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002245371729.png "点击放大")
   
9. 执行以下命令，安全加固MySQL。
   ```
   mysql_secure_installation
   ```
   如下图所示，根据自身需要配置。
   （1）输入第[8]步获取到的默认密码。
   （2）自己设置密码，要求密码安全度符合要求，建议按8位密码且包含大小写、数字、字符的规则进行配置。
   （3）是否更改root用户密码，输入N，表示否。
   （4）是否删除匿名用户，输入Y，表示是。
   （5）是否禁用root远程登录，输入Y，表示是。
   （6）是否删除test库及其访问权限，输入Y，表示是。
   （7）是否重新加载授权表，输入Y，表示是。
   ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002210371758.png "点击放大")
   
**添加远程访问MySQL用户**
1. 执行以下命令，使用MySQL的root账号登录数据库，根据提示输入第[9]步自己配置的密码。
   ```
   sudo mysql -u root -p
   ```
   ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002577650638.png "点击放大")
   
2. 执行以下命令，创建新数据库workspace。
   ```
   CREATE DATABASE workspace;
   ```
   ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002608170507.png "点击放大")
   
3. 执行以下命令，创建用户并为用户分配数据库的完全访问权限，其中，"*workspaceuser* "为数据库用户名，"*xxxxx* "为对应的账户密码，可以自行设置。
   ```
   CREATE USER 'workspaceuser'@'localhost' IDENTIFIED BY 'xxxxx';
   GRANT ALL ON workspace.* TO workspaceuser@localhost;
   ```
   ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002577530652.png "点击放大")
   
4. 执行以下命令，刷新MySQL的权限表，确保第[3]步的赋权立即生效。
   ```
   FLUSH PRIVILEGES;
   ```
   ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002608010615.png "点击放大")
   
5. 执行以下命令，退出MySQL命令行。
   ```
   exit
   ```
   ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002577650640.png "点击放大")
   
6. （可选）依次执行以下命令（其中第一条命令执行完后输入第[3]步配置的密码），验证数据库和用户是否已成功创建并退出MySQL命令行。
   ```
   mysql -u workspaceuser -p
   SHOW DATABASES;
   exit
   ```
   ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002608170509.png "点击放大")
   
 
