新闻资讯

MySQL 开启远程访问权限在哪里设置

2025-03-6

MySQL 开启远程访问权限涉及到配置文件修改和用户权限设置两个主要方面,不同操作系统下具体路径和操作略有差异,但总体思路一致。

MySQL 配置文件设置

1、 Windows 系统:MySQL 在 Windows 系统中的配置文件通常是 my.ini,一般位于 MySQL 安装目录下。使用文本编辑器打开该文件,找到 bind - address 配置项。如果该项存在且值为 127.0.0.1,将其注释掉或修改为服务器的实际 IP 地址(若服务器有多块网卡,可设置为 0.0.0.0 监听所有地址)。例如:
#bind - address = 127.0.0.1

bind - address = 192.168.1.100
保存文件后,重启 MySQL 服务使设置生效。可通过 “服务” 窗口或在命令提示符中执行 net stop mysql 和 net start mysql 来重启服务。
2、 Linux 系统:如前文所述,在基于 RPM 包管理的系统(如 CentOS)中,配置文件为 /etc/my.cnf;基于 DEB 包管理的系统(如 Ubuntu)中,配置文件是 /etc/mysql/mysql.conf.d/mysqld.cnf。打开相应文件,找到 bind - address = 127.0.0.1,注释掉该行,保存并关闭文件。之后执行 systemctl restart mysqld(CentOS)或 systemctl restart mysql(Ubuntu)重启 MySQL 服务。

用户权限设置

1、 登录 MySQL 数据库:无论在 Windows 还是 Linux 系统,都可通过命令行登录 MySQL 数据库。执行 mysql - u root - p,输入 root 用户密码进入数据库。
2、 授予远程访问权限:在 MySQL 命令行中,使用 SQL 语句授予远程访问权限。例如,要允许任意 IP 地址的用户 newuser 以密码 newpass 远程访问,并对所有数据库和表具有所有权限,执行以下语句:
CREATE USER 'newuser'@'%' IDENTIFIED BY 'newpass';
GRANT ALL PRIVILEGES ON . TO 'newuser'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
这里 '%' 表示允许来自任意 IP 地址的连接。若要限制特定网段,如 192.168.1.0/24 网段,将 '%' 替换为 '192.168.1.%'。

其他相关设置

1、 防火墙设置:在 Windows 系统中,打开 “控制面板” - “系统和安全” - “Windows Defender 防火墙”,在 “高级设置” 中创建入站规则,允许 MySQL 端口(默认为 3306)通过防火墙。在 Linux 系统中,根据使用的防火墙(如 firewalld 或 ufw)进行相应的端口开放设置,如前文所述。
2、 SELinux 设置(仅 Linux 系统):如果 Linux 系统启用了 SELinux,可能会限制 MySQL 的远程访问。可通过修改 SELinux 策略允许 MySQL 监听网络端口。例如在 CentOS 上,执行 setsebool - P httpd_can_network_connect_db 1 允许 HTTP 服务器(若通过 Web 应用连接 MySQL)连接到数据库。
通过以上在配置文件、用户权限以及可能的防火墙和 SELinux 等方面的设置,即可完成 MySQL 远程访问权限的开启。


拓展阅读:

1、 MySQL 权限模型详解:MySQL 的权限分为全局权限、数据库权限、表权限和列权限等多个层级。深入了解权限模型,有助于根据实际需求精确设置用户权限,避免因权限过大带来的安全风险。例如,对于只读用户,只授予 SELECT 权限,并限制在特定数据库或表上。
2、 多用户远程访问管理:在实际应用中,可能需要为不同用户授予不同的远程访问权限。可以创建多个用户,并根据其角色和需求授予相应权限。同时,定期审查用户权限,删除不必要的用户,以维护数据库安全。
3、 MySQL 配置参数优化:除了 bind - address 外,MySQL 配置文件中还有许多其他参数可优化数据库性能和功能。例如,innodb_buffer_pool_size 可调整 InnoDB 存储引擎的缓冲池大小,影响数据读写性能,可根据服务器内存情况合理设置。

新闻资讯
热门专题
最新专题
友情链接