在服务器(ECS)部署 MySQL 操作流程

在部署 MySQL 数据库之前需要准备好服务器环境。
可以通过以下两种方式来准备部署服务器:

  • 云服务器(ECS),如:阿里云、华为云、腾讯云等。
  • IDC服务器。

现以阿里云服务器(ECS)Windows版本来进行部署说明。

  1. 远程登录 Windows 服务器,安装好 MySQL 数据库服务。

My SQL Server 下载:MySQL :: Download MySQL Community Server

  1. 安装好后,进入到 MySQL 安装目录下 bin 文件夹(如:++C:\Program Files\MySQL\MySQL Server 8.0\bin++),输入以下 命令来测试是否安装成功。
bash 复制代码
mysql -h localhost -u root -p123456
# -h:表示后跟 MySQL 服务器名
# -u:表示后跟 MySQL 登录用户名
# -p:表示后跟 MySQL 登录密码
# 注:-h和-u参数后面可以有空格或没有空格都可以;-p参数与密码值之间则不能有空格,否则回车后会显示输入密码提示。
  1. MySQL 默认情况下,只允许 localhost 连接。若需要外部 IP 连接到 MySQL,确保 MySQL 数据库里"user"表中有一个允许从远程IP地址连接的用户。

其中,"user"表中 host 列表示该用户可以访问主机情况,默认是 localhost(表示本地访问)。若要允许远程访问,则将 host 值改为"%"即可。
可以通过以下两种方式来创建远程访问用户:

  • 对预设管理员用户 root 授权远程IP访问权限。
bash 复制代码
mysql> use mysql;          # use命令指定使用的数据库。 MySQL数据库用户都放在 mysql 数据库下的"user"表中。
mysql> select user,host from user;   # 查询 user 表中已存在的用户数据,可以看到 root 用户的 host 为 localhsot
+------------------+-----------+
| user             | host      |
+------------------+-----------+

| mysql.infoschema | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
mysql> update user set host='%' where user='root';   # 将 root 用户的"host"值更新为"%"
mysql> flush privileges;     # 将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;   # 为 root 用户进行授权,任意主机以用户 root 和密码连接到 mysql 服务器
mysql> flush privileges;

#  grant语法: grant 权限名(所有的权限用all) on 库名(*全部).表名(*全部) to '要授权的用户名'@'%'(%表示所有的IP,可以只是一个IP) identified by "密码";
  • 创建允许远程IP访问权限的用户。
bash 复制代码
mysql> use mysql;  
mysql> CREATE USER 'user'@'%' IDENTIFIED BY '123456';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
  1. 完成上述处理后,目前还是不能远程访问 MySQL 数据库。还需要在云服务器(ECS)上设定防火墙访问规则。

打开阿里云服务器(ECS)>> 安全组 >> 访问规则 下的"入方向",增加 MySQL 端口(3306)允许访问的授权,如下截图:

  1. 若 MySQL 服务器在配置文件(通常是my.cnfmy.ini )指定特殊IP地址访问设定(如:bind-address = 192.168.0.4),如下:

mysqld

bind-address = 192.168.0.4
则需要将 bind-address 配置项更改为 0.0.0.0,允许MySQL监听所有IP地址。
若指定了 bind-address (如:bind-address = 0.0.0.0),本地连接数据库时,则必须指定IP地址的形式来连接。

bash 复制代码
mysql -h 127.0.0.1 -u root -p123456

注:MySQL 在默认情况下是没有指定 bind-addrerss 配置信息,若没有可以在 [mysqld] 下手动添加。

  1. 完成上述设定后,在外部可以使用 MySQL 客户端管理工具(如:Navicat)通过远程 IP 地址来访问 MySQL 数据库。
相关推荐
<但凡.3 分钟前
Git 完全手册:从入门到团队协作实战(2)
服务器·git·bash
midsummer_woo12 分钟前
基于springboot+vue+mysql的作业管理系统(源码+论文)
vue.js·spring boot·mysql
小云数据库服务专线1 小时前
GaussDB 数据库架构师修炼(三) 集群管理概览
数据库·数据库架构·gaussdb
cherishSpring1 小时前
uniapp相关地图 API调用
服务器·uni-app·apache
爬山算法1 小时前
MySQL(144)如何处理日期和时间问题?
数据库·mysql
熊文豪1 小时前
国产电科金仓数据库:融合进化,智领未来
数据库·国产数据库·金仓数据库·电科金仓
有想法的py工程师2 小时前
Ansible 查看PostgreSQL的版本
数据库·postgresql·ansible
时序数据说2 小时前
工业物联网中的时序数据库应用
大数据·数据库·物联网·时序数据库·iotdb
YuforiaCode2 小时前
使用DataGrip连接安装在Linux上的Redis
数据库·redis·缓存
羊羊羊i2 小时前
MySQL的关键日志
数据库·mysql