windows下mysql服务局域网访问配置
在局域网中访问本机(Windows)的MySQL服务器,需要确保MySQL服务器配置为允许远程访问,并且防火墙设置允许外部连接。以下是详细的步骤:
1. 修改MySQL配置文件允许远程访问
- 找到并编辑MySQL配置文件
my.ini
,该文件通常位于C:\ProgramData\MySQL\MySQL Server <version>\my.ini
。 - 使用文本编辑器(如Notepad++)以管理员身份打开
my.ini
文件。 - 找到以下部分:
[mysqld]
- 在这部分中添加或修改以下内容:
这将使MySQL监听所有网络接口,而不仅仅是本地接口。bind-address = 0.0.0.0
2. 重启MySQL服务
- 打开
命令提示符
或PowerShell
,以管理员身份运行。 - 输入以下命令以重启MySQL服务:
或者,通过net stop mysql net start mysql
服务管理器
重启MySQL服务:- 按
Win + R
,输入services.msc
并回车。 - 找到
MySQL
服务,右键点击并选择重启
。
- 按
3. 创建允许远程访问的MySQL用户
- 打开MySQL命令行客户端,连接到MySQL服务器:
输入你的MySQL root密码。mysql -u root -p
- 创建一个允许从任何主机访问的用户,并授予适当的权限:
这会创建一个名为CREATE USER 'wordpress_user'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'wordpress_user'@'%'; FLUSH PRIVILEGES;
wordpress_user
的用户,密码为password
,并允许该用户从任何主机连接。
4. 配置Windows防火墙以允许MySQL访问
- 打开
Windows Defender 防火墙
。 - 点击
高级设置
。 - 创建一个新的入站规则,允许TCP协议的3306端口(MySQL默认端口)的连接:
- 选择
入站规则
,点击新建规则
。 - 选择
端口
,然后点击下一步
。 - 选择
TCP
,并指定特定的本地端口为3306
,点击下一步
。 - 选择
允许连接
,然后点击下一步
。 - 根据需要选择适用的配置文件(域、专用、公用),然后点击
下一步
。 - 为规则命名(如
MySQL Remote Access
),点击完成
。
- 选择
5. 获取本机的IP地址
- 打开
命令提示符
或PowerShell
,输入以下命令:ipconfig
- 找到当前连接的网络适配器,记下IPv4地址(例如,192.168.1.100)。
6. 在局域网中的其他设备上测试连接
- 在局域网中其他设备的MySQL客户端中输入以下命令以连接到MySQL服务器:
输入密码mysql -h <你的本机IP地址> -u wordpress_user -p
password
,如果成功连接,则表示配置成功。
通过这些步骤,你应该能够在局域网中的其他设备上访问本机(Windows)上的MySQL服务器。如果仍有问题,请检查防火墙和网络设置是否正确配置。
这段SQL命令的目的是在MySQL中创建一个新用户,并授予该用户访问所有数据库的所有权限。以下是每个命令的详细解释:
-
CREATE USER 'wordpress_user'@'%' IDENTIFIED BY 'password';
- CREATE USER: 这是一个SQL命令,用于创建一个新的MySQL用户。
- 'wordpress_user'@'%': 这里指定了新用户的用户名和主机。'wordpress_user' 是用户名,'%' 表示允许该用户从任何主机连接到MySQL服务器。'%' 是一个通配符,表示所有IP地址。
- IDENTIFIED BY 'password': 这是用户的密码。在这里,你需要将 'password' 替换为你想要设置的实际密码。
- 这条命令的作用是创建一个名为
wordpress_user
的新用户,并设置其密码为password
,同时允许该用户从任何主机连接到MySQL服务器。
-
GRANT ALL PRIVILEGES ON . TO 'wordpress_user'@'%';
- GRANT ALL PRIVILEGES: 这是一个SQL命令,用于授予用户权限。
ALL PRIVILEGES
表示授予所有可能的权限,包括 SELECT、INSERT、UPDATE、DELETE 等。 - ON .:: 这里指定了权限的作用范围。
*.*
表示所有数据库的所有表。第一个*
表示所有数据库,第二个*
表示所有表。 - TO 'wordpress_user'@'%';: 这部分指定了要授予权限的用户,即
wordpress_user
,并且允许该用户从任何主机连接。 - 这条命令的作用是授予
wordpress_user
用户对所有数据库和所有表的所有权限。
- GRANT ALL PRIVILEGES: 这是一个SQL命令,用于授予用户权限。
-
FLUSH PRIVILEGES;
- FLUSH PRIVILEGES: 这是一个SQL命令,用于重新加载MySQL服务器的权限表。MySQL会在内存中缓存权限表,这条命令确保之前的权限变更立即生效,而不需要重启MySQL服务器。
- 这条命令的作用是刷新MySQL的权限缓存,以确保刚刚授予的权限立即生效。
总结:
- 第一条命令:创建一个名为
wordpress_user
的新用户,并设置密码,同时允许从任何主机连接。 - 第二条命令:授予
wordpress_user
用户对所有数据库和所有表的所有权限。 - 第三条命令:刷新权限缓存,使新创建的用户和授予的权限立即生效。
这些命令组合在一起,确保新用户 wordpress_user
可以从任何地方连接到MySQL服务器,并且拥有对所有数据库和表的完全控制权限。这对于像WordPress这样的应用程序需要完全访问数据库的情况非常有用。
本文来自博客园,转载请注明原文链接:https://www.cnblogs.com/WG11/p/18307885,作者:def_Class