问题: 外部工具无法连接mysql 本地数据库?
第一步:win+r : cmd 输入ipconfig 查看本地电脑上的ipv4地址
第二步:打开navicate. 将地址改为本地ip(ip为ipv4地址),
第三步:点击“连接测试”,显示测试成功即可。
第一步: cmd ——》mysql -u root -p ——》输入密码:****** 进入到mysql
进入mysql之后千万不要盲目的去根据网上说的授权,改host为%等一顿猛操作,没用,这个问题我解决了半天,经验分享如下:
《主要操作mysql里面的user表》
第一步:先查看user表:select host,user from user;
第二步:把user用户对应的host改为%
update user set host=‘%’ where user =‘root’;
第三步:为改过的%授权:
grant all privileges on *.* to 'root'@'%' with grant option;
第四步:刷新权限:(必须执行)
flush privileges;
测试看外网是否可以连接你本地的数据库,方法一不好使继续第二种方法:
第一步:新增一个ipv4账号
create user ‘root’@'172.33.44.666' identified by '******'
注:172.33.44.666为cmd——》ipconfig出来的ipv4地址 ******为你设置的密码
第二步:查看新增的用户
select host,user from user;
( 红框出为新增成功的用户)
第三步:为新增的用户赋权
grant all privileges on *.* to 'root'@'19.22.34.343' with grant option;
第四步:刷新权限
flush privileges;
第一步:查询user表
select host,user from user;
(所以无论我们怎么授权怎么新增账户,怎么刷新权限都没用。必须把红框处的root的host改掉,然后问题就解决了)
解决办法: 把user为root,并且host为localhost的这个改掉,保留一个root账户的host为%就可以
第一步:先改user:
update user set user =‘User’ where host='localhost' and user='root';
(保证root用户名下只有一个host为%就可以了)
第二步:重新再为root和本地ip授权:
》为root授权
grant all privileges on *.* to 'root'@'%' with grant option;
刷新权限:flush privileges;
》为本地ip授权:
grant all privileges on *.* to 'root'@'ip地址' with grant option;
刷新权限:flush privileges
到此为止:恭喜你,问题就彻底解决了,你又成长了一步,继续加油