在服务器(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 数据库。
相关推荐
Codeking__几秒前
Redis——value的数据类型与单线程工作模型
java·数据库·redis
rchmin2 分钟前
MySQL主从复制原理详解
数据库·mysql
wxr06162 分钟前
部署Spring Boot项目+mysql并允许前端本地访问
前端·spring boot·mysql·持续部署
星哥说事17 分钟前
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台
运维·服务器·docker
液态不合群22 分钟前
Java中线程安全问题的原因和解决方案
java·数据库
程序员柒叔23 分钟前
Dify 集成-数据库与缓存
数据库·缓存·dify
栗子叶24 分钟前
深入理解 MySQL 半同步复制:AFTER_SYNC 为何能避免主从同步数据丢失?
数据库·mysql·adb·高可用·主从同步
千寻技术帮34 分钟前
10342_基于Springboot的云存管家平台的设计与实现
mysql·毕业设计·springboot·文件管理·云存储·云存管家
我科绝伦(Huanhuan Zhou)39 分钟前
MySQL主主复制管理器(MMM):技术原理与实践架构解析
数据库·mysql·架构