通过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访问权限
-
GRANT ALL PRIVILEGES ON *.* TO 'root'@'10.251.226.172' IDENTIFIED BY 'czp' WITH GRANT OPTION;
-
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,发现连接成功.