> 技术文档 > 如何设置本地MySQL数据库,实现数据库远程访问(Linux和Windows)_mysql 远程访问

如何设置本地MySQL数据库,实现数据库远程访问(Linux和Windows)_mysql 远程访问


提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、创建可以远程访问的mysql用户
    • 1、登录MySQL
    • 2、创建新用户( MySQL 5.7 版本之后可直接使用GRANT 语句)
    • 3、授予权限
      • 授予所有权限
      • 授予用户对指定表的部分权限
      • 刷新权限
  • 二、MySQL配置文件设置
    • 1. 定位配置文件
      • Windows系统配置文件位置
      • Linux系统配置文件位置
    • 2. 编辑配置
      • Windows系统
      • Linux系统
    • 3. 重启服务
      • Windows系统
      • Linux系统
  • 三、系统防火墙设置
    • 配置Windows系统防火墙(开放 3306 端口)
      • 手动添加端口规则
    • 配置Linux系统防火墙
  • 四、总结

前言

读完本文你将学会,如何远程连接到另一台电脑的数据库。提高开发效率。


一、创建可以远程访问的mysql用户

一般的,工作中会单独创建拥有不同功能的用户,来实现相应的功能。下面,我们将以实现任意IP远程访问本地mysql所有数据库为例创建用户。

1、登录MySQL

首先,win + R 打开cmd,以管理员身份连接到MySQL数据库,通常是root用户:

mysql -u root -p

系统会提示输入管理员用户的密码,输入密码后进入MySQL的命令行。

2、创建新用户( MySQL 5.7 版本之后可直接使用GRANT 语句)

在早期版本的 MySQL 中,创建用户和授予权限是分开的操作。需要先使用 CREATE USER 语句创建用户,再使用 GRANT 语句为用户授予权限。
但从 MySQL 5.7 版本开始,GRANT 语句在用户不存在时具备了创建用户的功能。

使用CREATE USER命令来创建一个新的MySQL用户。命令语法如下:

CREATE USER \'username\'@\'host\' IDENTIFIED BY \'password\';

‘username’:新用户的名称。
‘host’:指定该用户允许从哪个主机连接。localhost表示只允许本地连接,%表示允许从任何IP地址连接。
‘password’:设置新用户的密码。

按照我们的目标,创建用于远程连接的用户,设置权限为任意IP(设置任意IP是方便自己使用,如有特殊需求,特殊设置)

create user \'remote\'@\'%\' identified by \'123456\';

3、授予权限

常见权限有SELECT、INSERT、UPDATE、DELETE等。通常,GRANT命令用于分配权限。命令语法如下:

GRANT ALL PRIVILEGES ON *.* TO \'username\'@\'host\' IDENTIFIED BY \'password\';

‘username’@‘host’:在 MySQL 里,用户是由 用户名 和 主机名 共同确定的,像 ‘username’@‘%’ 和 ‘username’@‘localhost’ 代表的是两个不同的用户。
ALL PRIVILEGES:授予用户对指定数据库的所有权限。
*. :表示对所有数据库或者表授予权限

授予所有权限

如果希望用户拥有对所有数据库和表的完全访问权限,可以使用以下命令:

GRANT ALL PRIVILEGES ON *.* TO \'remote\'@\'%\' IDENTIFIED BY \'password\';

授予用户对指定表的部分权限

GRANT SELECT, INSERT ON test_db.test_table TO \'remote\'@\'%\' IDENTIFIED BY \'password\';

刷新权限

在使用 GRANT 语句赋予权限之后,你需要刷新权限,这样新的权限设置才能生效:

FLUSH PRIVILEGES;

二、MySQL配置文件设置

1. 定位配置文件

Windows系统配置文件位置

MySQL 的配置文件 my.ini 通常位于以下路径:
默认安装路径:C:\\ProgramData\\MySQL\\MySQL Server X.X\\my.ini
(ProgramData 是隐藏文件夹,需在资源管理器中启用「显示隐藏文件」)
自定义安装路径:C:\\Program Files\\MySQL\\MySQL Server X.X\\my.ini
(若通过 ZIP 包安装,路径可能为 C:\\mysql-8.0.34-winx64\\my.ini)

Linux系统配置文件位置

通常是:/etc/mysql/mysql.conf.d/mysqld.cnf

2. 编辑配置

Windows系统

使用记事本或其他文本编辑器打开 my.ini,找到 [mysqld] 部分,修改或添加以下内容

# 允许所有 IP 连接(生产环境建议限制为特定 IP)bind-address = 0.0.0.0# 可选:设置字符集(避免乱码)character-set-server = utf8mb4collation-server = utf8mb4_unicode_ci

Linux系统

找到 bind-address 这一行,将其值修改为 0.0.0.0 ,这表示允许所有 IP 地址进行连接。

# 找到这一行bind-address = 127.0.0.1# 修改为bind-address = 0.0.0.0

3. 重启服务

Windows系统

以管理员身份打开命令提示符,执行:
mysql服务名称可能不同,根据实际情况选择

net stop mysqlnet start mysql

Linux系统

在 Linux 系统中可以使用以下命令重启:

sudo systemctl restart mysql

三、系统防火墙设置

配置Windows系统防火墙(开放 3306 端口)

手动添加端口规则

步骤 1:搜索并打开「高级安全 Windows 防火墙」。
系统设置搜索防火墙,点击高级设置。
如何设置本地MySQL数据库,实现数据库远程访问(Linux和Windows)_mysql 远程访问

步骤 2:在左侧选择「入站规则」,点击「新建规则」。

步骤 3:选择「端口」,点击「下一步」。
如何设置本地MySQL数据库,实现数据库远程访问(Linux和Windows)_mysql 远程访问

步骤 4:输入端口号 3306,选择「TCP」,点击「下一步」。
如何设置本地MySQL数据库,实现数据库远程访问(Linux和Windows)_mysql 远程访问

步骤 5:选择「允许连接」,点击「下一步」。
如何设置本地MySQL数据库,实现数据库远程访问(Linux和Windows)_mysql 远程访问

步骤 6:勾选所有网络类型(域、专用、公共),点击「下一步」。
如何设置本地MySQL数据库,实现数据库远程访问(Linux和Windows)_mysql 远程访问

步骤 7:命名规则(如 MySQL 3306),点击「完成」。
如何设置本地MySQL数据库,实现数据库远程访问(Linux和Windows)_mysql 远程访问

配置Linux系统防火墙

要确保防火墙允许 MySQL 服务的端口(默认是 3306)通过。

sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

如果你使用的是 iptables 防火墙,可以使用以下命令开放 3306 端口:

sudo ufw allow 3306

四、总结

完成上述三步之后,只要保证网络通畅就可以远程连接mysql数据库了。