【转载】MySQL数据库可以用任意ip连接访问的方法

通过CMD命令行修改数据库表的一个字段的值,实现连接,访问。

第一步、找到MYSQL软件安装所在的bin目录;

(1)cd\当前目录

\

(2)指定MYSQL安装的bin目录

\

(3)输入 -h localhost -u root -p;出现输入密码,此时输入你在安装MYSQL软件设置的密码即可。

\

(4)输入 use mysql; select user,host from user;我们的目的是要把localhost用%代替即可。

\

(5)使用update user set host='%' where host='localhost';语句更新即可。

(6)修改成这个样子就ok了。

\

输入如上语句查询结果如下:

\

此时,MYSQL就可以用任何IP地址来访问了。

前面连上了就不用看下面;

番外一:连接不上云服务器的数据库,就在mysql数据库下  执行flush privileges;执行后就可以正确连接了!

 

下面是设置指定的ip访问;

番外二:设置指定ip访问mysql数据库

运行到mysqlbin目录下 执行下面的命令
mysql -u root -p

之后输入密码进行登陆,完毕后添加远程ip访问权限

  1.  
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'10.251.226.172' IDENTIFIED BY 'czp' WITH GRANT OPTION;
  2.  
    flush privileges;

第二行是使设置立刻生效。

 

 

第一行中,10.251.226.172是阿里云内网的一个地址,这个是允许远程访问的IP的值。自行改为其他值。root是账户名,后面的czp是密码。即,允许来自10.251.226.172的连接并使用root账户和czp这个密码进行访问。ALL PRIVILEGES ON 后面的*.*表示所有数据库,即完全访问权限,可以指定为特定数据库。而IP这里,可以使用%来表示所有IP。

 

 

这里还会出现一种问题,当我们授予ip给远程访问时,常常通过第三方软件,比如Navicat Permium 12。如果安装的版本为mysql8.0以上版本,则会报以下错误:

出现2059这个错误的原因是在mysql8之前的版本中加密规则为mysql_native_password,而在mysql8以后的加密规则为caching_sha2_password。通过网络查找发现我们可以将mysql用户登录的加密规则修改为mysql_native_password。

解决方法:

(1)登录mysql。打开cmd,用命令行登陆mysql,使用mysql -u root -p命令;

 

 

2.输入登陆密码;

 

3.输入命令:第一条: ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

 

                    第二条: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

 

 

                    注意此处的password为你的登陆密码,本人的操作为:

 

                    第一条: ALTER USER 'root' IDENTIFIED BY '**********' PASSWORD EXPIRE NEVER;

 

                    第二条: ALTER USER 'root' IDENTIFIED WITH mysql_native_password BY **********';

参考如下:

然后打开navicat,发现连接成功.

 

posted @ 2019-03-11 22:55  时孚  阅读(11213)  评论(0编辑  收藏  举报