在局域网中访问本机(Windows)的MySQL服务器,需要确保MySQL服务器配置为允许远程访问,并且防火墙设置允许外部连接。以下是详细的步骤:
1. 修改MySQL配置文件允许远程访问
找到并编辑MySQL配置文件my.ini
,该文件通常位于C:ProgramDataMySQLMySQL Server <version>my.ini
。
使用文本编辑器(如Notepad++)以管理员身份打开my.ini
文件。
找到以下部分:
[mysqld]
在这部分中添加或修改以下内容:
bind-address = 0.0.0.0
这将使MySQL监听所有网络接口,而不仅仅是本地接口。
2. 重启MySQL服务
打开命令提示符
或PowerShell
,以管理员身份运行。
输入以下命令以重启MySQL服务:
net stop mysql
net start mysql
或者,通过服务管理器
重启MySQL服务:
按Win + R
,输入services.msc
并回车。
找到MySQL
服务,右键点击并选择重启
。
3. 创建允许远程访问的MySQL用户
打开MySQL命令行客户端,连接到MySQL服务器:
mysql -u root -p
输入你的MySQL root密码。
创建一个允许从任何主机访问的用户,并授予适当的权限:
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
用户对所有数据库和所有表的所有权限。
FLUSH PRIVILEGES;
FLUSH PRIVILEGES: 这是一个SQL命令,用于重新加载MySQL服务器的权限表。MySQL会在内存中缓存权限表,这条命令确保之前的权限变更立即生效,而不需要重启MySQL服务器。
这条命令的作用是刷新MySQL的权限缓存,以确保刚刚授予的权限立即生效。
总结:
第一条命令:创建一个名为 wordpress_user
的新用户,并设置密码,同时允许从任何主机连接。
第二条命令:授予 wordpress_user
用户对所有数据库和所有表的所有权限。
第三条命令:刷新权限缓存,使新创建的用户和授予的权限立即生效。
这些命令组合在一起,确保新用户 wordpress_user
可以从任何地方连接到MySQL服务器,并且拥有对所有数据库和表的完全控制权限。这对于像WordPress这样的应用程序需要完全访问数据库的情况非常有用。