# Ubuntu安装部署MySQL数据库
#### 简介
本文以Ubuntu操作系统为例，介绍如何完成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. 创建可以访问公网的Ubuntu弹性云服务器，选择VNC远程登录或SSH远程登录。 ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002210371766.png "点击放大")
   
2. 执行以下命令，更新实例镜像源。
   ```
   sudo apt update
   sudo apt upgrade
   ```
   
3. 执行以下命令，安装MySQL。
   ```
   sudo apt -y install mysql-server
   ```
   ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002210531550.png "点击放大")
   
4. 执行以下命令，查看MySQL运行状态并配置MySQL开机自启动。
   ```
   sudo systemctl status mysql
   sudo systemctl enable mysql
   ```
   ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002245451637.png "点击放大")
   
5. 执行以下命令，进入MySQL。
   ```
   sudo mysql
   ```
   ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002245371741.png "点击放大")
   
6. 执行以下命令，配置root用户密码。
   ```
   ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'kmXNB)60Ckap';
   ```
   ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002210371770.png "点击放大")
   
7. 执行以下命令，退出MySQL数据库。
   ```
   exit
   ```
   ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002210531554.png "点击放大")
   
8. 执行以下命令，安全加固MySQL，可根据自身需求配置。
   ```
   mysql_secure_installation
   ```
   （1）输入第[6]步配置的密码。
   （2）是否需要配置密码策略，输入y或Y，表示是。
   （3）选择密码策略：
   - 低强度：密码长度≥8
   
   - 中强度：密码长度≥8，必须包含大小写字母、数字和特殊字符
   
   - 高强度：密码长度≥8，必须包含大小写字母、数字和特殊字符，且进行字典检测 0=低强度密码，1=中强度密码，2=高强度密码
     
    
   输入2，表示使用高强度密码。
   （4）是否修改MySQL数据库的root用户密码，输入y或Y，表示是。
   输入新的root密码，符合高强度密码要求。
   （5）确认使用已设置的密码，输入y或Y，表示是。
   （6）是否删除匿名用户，输入y或Y，表示是。
   （7）是否禁止MySQL数据库的root用户远程登录，输入y或Y，表示是。
   （8）是否删除test库及对它的访问权限，输入y或Y，表示是。
   （9）是否重新加载授权表，输入y或Y，表示是。
   ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002245451641.png "点击放大")
   
**添加远程访问MySQL用户**
1. 执行以下命令，用MySQL的root账号登录数据库，根据提示输入第[8]步自己配置的密码。
   ```
   sudo mysql -u root -p
   ```
   ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002577530654.png "点击放大")
   
2. 执行以下命令，创建新数据库workspace。
   ```
   CREATE DATABASE workspace;
   ```
   ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002608010617.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_0000002577650644.png "点击放大")
   
4. 执行以下命令，刷新MySQL的权限表，确保第[3]步的赋权立即生效。
   ```
   FLUSH PRIVILEGES;
   ```
   ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002608170511.png "点击放大")
   
5. 执行以下命令，退出MySQL命令行。
   ```
   exit
   ```
   ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000002577530656.png "点击放大")
   
6. （可选）依次执行以下命令（其中第一条命令执行完后输入第[3]步配置的密码），验证数据库和用户是否已成功创建并退出MySQL命令行。
   ```
   mysql -u workspaceuser -p
   SHOW DATABASES;
   exit
   ```
   
 
