win10 docker 无法通过localhost访问mysql,设置mysql 允许所有IP 访问

发布时间 2023-05-24 16:52:47作者: 奚毛宇

默认情况下,Mysql数据库只允许localhost访问,但我们在docker中想要访问本地数据库时,又无法通过localhost访问,因为localhost指的是容器内部。

在这种情况下,我们就需要设置部署在docker中的数据库连接字符串的Ip地址和设置mysql允许所有IP地址访问。

我们可以通过如下方式实现

1.设置docker中的数据库连接字符串Ip 地址:

  获取本机Ip地址: 打开cmd,输入 ipconfig,然后回车。WSL 的IP地址 172.20.48.1 就是docker可以连接的本机IP地址

 

2. 设置mysql 允许所有IP 访问

    (1) cmd 导航到找到mysql安装目录的bin目录

    (2)输入命令mysql -u root -h 127.0.0.1 -p登录到MySql(有密码的话继续输入密码并回车),如图所示:

          

     (3) 输入命令use mysql;切换到mysql数据库,如图所示:                 

           

       (4)输入命令update user set host = '%'  where user ='root';将用户root的host修改为%即可实现IP登录,如图所示:

        

       (5) 输入命令flush privileges;刷新权限数据表,如图所示:

      

       (6)输入命令quit退出MySql登录,如图所示

            

 

此时,我们就完成了docker 访问本机mysql的配置

 

参考文档:https://blog.csdn.net/qubernet/article/details/102496903#:~:text=%E8%AE%BE%E7%BD%AEMySql%E5%85%81%E8%AE%B8IP%E8%BF%9E%E6%8E%A5%201%20%E4%BB%A5%E7%AE%A1%E7%90%86%E5%91%98%E8%BA%AB%E4%BB%BD%E8%BF%90%E8%A1%8Cdos%EF%BC%8C%E5%B9%B6%E5%88%87%E6%8D%A2%E5%88%B0MySql%E5%AE%89%E8%A3%85%E7%9B%AE%E5%BD%95%E7%9A%84bin%E7%9B%AE%E5%BD%95%EF%BC%8C%E5%A6%82%E5%9B%BE%E6%89%80%E7%A4%BA%EF%BC%9A%202%20%E8%BE%93%E5%85%A5%E5%91%BD%E4%BB%A4mysql%20-u%20root%20-h,where%20user%20%3D%27root%27%3B%E5%B0%86%E7%94%A8%E6%88%B7root%E7%9A%84host%E4%BF%AE%E6%94%B9%E4%B8%BA%25%E5%8D%B3%E5%8F%AF%E5%AE%9E%E7%8E%B0IP%E7%99%BB%E5%BD%95%EF%BC%8C%E5%A6%82%E5%9B%BE%E6%89%80%E7%A4%BA%EF%BC%9A%205%20%E8%BE%93%E5%85%A5%E5%91%BD%E4%BB%A4flush%20privileges%3B%E5%88%B7%E6%96%B0%E6%9D%83%E9%99%90%E6%95%B0%E6%8D%AE%E8%A1%A8%EF%BC%8C%E5%A6%82%E5%9B%BE%E6%89%80%E7%A4%BA%EF%BC%9A%206%20%E8%BE%93%E5%85%A5%E5%91%BD%E4%BB%A4quit%E9%80%80%E5%87%BAMySql%E7%99%BB%E5%BD%95%EF%BC%8C%E5%A6%82%E5%9B%BE%E6%89%80%E7%A4%BA%EF%BC%9A