在服务器(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 数据库。
相关推荐
七七七七071 小时前
【计算机网络】深入理解ARP协议:工作原理、报文格式与安全防护
linux·服务器·网络·计算机网络·安全
Elastic 中国社区官方博客1 小时前
在 Elasticsearch 中使用 Mistral Chat completions 进行上下文工程
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
qq_5470261791 小时前
Flowable 工作流引擎
java·服务器·前端
奋斗的蛋黄2 小时前
网络卡顿运维排查方案:从客户端到服务器的全链路处理
运维·服务器·网络
编程爱好者熊浪3 小时前
两次连接池泄露的BUG
java·数据库
wanhengidc3 小时前
云手机搬砖 尤弥尔传奇自动化操作
运维·服务器·arm开发·安全·智能手机·自动化
图图图图爱睡觉4 小时前
主机跟虚拟机ip一直Ping不通,并且虚拟机使用ifconfig命令时,ens33没有ipv4地址,只有ipv6地址
服务器·网络·tcp/ip
deephub4 小时前
FastMCP 入门:用 Python 快速搭建 MCP 服务器接入 LLM
服务器·人工智能·python·大语言模型·mcp
南宫乘风4 小时前
基于 Flask + APScheduler + MySQL 的自动报表系统设计
python·mysql·flask
lhxcc_fly4 小时前
Linux网络--8、NAT,代理,网络穿透
linux·服务器·网络·nat