windows下mysql服务局域网访问配置

在局域网中访问本机(Windows)的MySQL服务器,需要确保MySQL服务器配置为允许远程访问,并且防火墙设置允许外部连接。以下是详细的步骤:

1. 修改MySQL配置文件允许远程访问

  1. 找到并编辑MySQL配置文件my.ini,该文件通常位于C:\ProgramData\MySQL\MySQL Server <version>\my.ini
  2. 使用文本编辑器(如Notepad++)以管理员身份打开my.ini文件。
  3. 找到以下部分:
    [mysqld]
    
  4. 在这部分中添加或修改以下内容:
    bind-address = 0.0.0.0
    
    这将使MySQL监听所有网络接口,而不仅仅是本地接口。

2. 重启MySQL服务

  1. 打开命令提示符PowerShell,以管理员身份运行。
  2. 输入以下命令以重启MySQL服务:
    net stop mysql
    net start mysql
    
    或者,通过服务管理器重启MySQL服务:
    • Win + R,输入services.msc并回车。
    • 找到MySQL服务,右键点击并选择重启

3. 创建允许远程访问的MySQL用户

  1. 打开MySQL命令行客户端,连接到MySQL服务器:
    mysql -u root -p
    
    输入你的MySQL root密码。
  2. 创建一个允许从任何主机访问的用户,并授予适当的权限:
    CREATE USER 'wordpress_user'@'%' IDENTIFIED BY 'password';
    GRANT ALL PRIVILEGES ON *.* TO 'wordpress_user'@'%';
    FLUSH PRIVILEGES;
    
    这会创建一个名为wordpress_user的用户,密码为password,并允许该用户从任何主机连接。

4. 配置Windows防火墙以允许MySQL访问

  1. 打开Windows Defender 防火墙
  2. 点击高级设置
  3. 创建一个新的入站规则,允许TCP协议的3306端口(MySQL默认端口)的连接:
    • 选择入站规则,点击新建规则
    • 选择端口,然后点击下一步
    • 选择TCP,并指定特定的本地端口为3306,点击下一步
    • 选择允许连接,然后点击下一步
    • 根据需要选择适用的配置文件(域、专用、公用),然后点击下一步
    • 为规则命名(如MySQL Remote Access),点击完成

5. 获取本机的IP地址

  1. 打开命令提示符PowerShell,输入以下命令:
    ipconfig
    
  2. 找到当前连接的网络适配器,记下IPv4地址(例如,192.168.1.100)。

6. 在局域网中的其他设备上测试连接

  1. 在局域网中其他设备的MySQL客户端中输入以下命令以连接到MySQL服务器:
    mysql -h <你的本机IP地址> -u wordpress_user -p
    
    输入密码password,如果成功连接,则表示配置成功。

通过这些步骤,你应该能够在局域网中的其他设备上访问本机(Windows)上的MySQL服务器。如果仍有问题,请检查防火墙和网络设置是否正确配置。

这段SQL命令的目的是在MySQL中创建一个新用户,并授予该用户访问所有数据库的所有权限。以下是每个命令的详细解释:

  1. 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服务器。
  2. 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 用户对所有数据库和所有表的所有权限。
  3. FLUSH PRIVILEGES;

    • FLUSH PRIVILEGES: 这是一个SQL命令,用于重新加载MySQL服务器的权限表。MySQL会在内存中缓存权限表,这条命令确保之前的权限变更立即生效,而不需要重启MySQL服务器。
    • 这条命令的作用是刷新MySQL的权限缓存,以确保刚刚授予的权限立即生效。

总结:

  • 第一条命令:创建一个名为 wordpress_user 的新用户,并设置密码,同时允许从任何主机连接。
  • 第二条命令:授予 wordpress_user 用户对所有数据库和所有表的所有权限。
  • 第三条命令:刷新权限缓存,使新创建的用户和授予的权限立即生效。

这些命令组合在一起,确保新用户 wordpress_user 可以从任何地方连接到MySQL服务器,并且拥有对所有数据库和表的完全控制权限。这对于像WordPress这样的应用程序需要完全访问数据库的情况非常有用。

posted @ 2024-07-17 17:16  def_Class  阅读(980)  评论(0编辑  收藏  举报