在服务器(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 数据库。
相关推荐
Leo.yuan7 分钟前
不同数据仓库模型有什么不同?企业如何选择适合的数据仓库模型?
大数据·数据库·数据仓库·信息可视化·spark
麦兜*24 分钟前
MongoDB 6.0 新特性解读:时间序列集合与加密查询
数据库·spring boot·mongodb·spring·spring cloud·系统架构
chat2tomorrow27 分钟前
数据采集平台的起源与演进:从ETL到数据复制
大数据·数据库·数据仓库·mysql·低代码·postgresql·etl
稻草人想看远方29 分钟前
关系型数据库和非关系型数据库
数据库
考虑考虑30 分钟前
Postgerssql格式化时间
数据库·后端·postgresql
依稀i12333 分钟前
Spring Boot + MySQL 创建超级管理员
spring boot·mysql
千里码aicood39 分钟前
【springboot+vue】党员党建活动管理平台(源码+文档+调试+基础修改+答疑)
java·数据库·spring boot
对你无可奈何1 小时前
关于Ubuntu的 update造成的内核升级
运维·服务器·ubuntu
TDengine (老段)1 小时前
TDengine 选择函数 Max() 用户手册
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
驾驭人生1 小时前
Asp .Net Core 系列:Asp .Net Core 集成 Hangfire+MySQL
数据库·mysql·.netcore