在服务器(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 数据库。
相关推荐
ulias2121 天前
Linux系统中的权限问题
linux·运维·服务器
沃尔威武1 天前
数据库 Sinks(.net8)
数据库·.net·webview
青花瓷1 天前
Ubuntu下OpenClaw的安装(豆包火山API版)
运维·服务器·ubuntu
Dreamboat¿1 天前
SQL 注入漏洞
数据库·sql
Dream of maid1 天前
Linux(下)
linux·运维·服务器
齐鲁大虾1 天前
统信系统UOS常用命令集
linux·运维·服务器
曹牧1 天前
Oracle数据库中,将JSON字符串转换为多行数据
数据库·oracle·json
被摘下的星星1 天前
MySQL count()函数的用法
数据库·mysql
末央&1 天前
【天机论坛】项目环境搭建和数据库设计
java·数据库
徒 花1 天前
数据库知识复习07
数据库·作业