远程连接MYSQL8.0服务器问题

问题描述: 先前使用MYSQL5.1,远端访问MYSQL服务器没问题,遇到的问题也就是防火墙问题,修改出入站规则后轻松的解决了.但是MYSQL8.0就很坑了,按照网上的解决办法折腾了两个小时,最后解决,依然不明白哪里有问题,只能把操作复现,为以后使用留个记录.

机器环境

操作系统:win10
gui工具:navcat12
MYSQL:v8.011
防火墙开启入站端口

直接对root用户修改的方法

操作前请在 bin 目录下运行cmd,或者设置好bin的环境变量

  1. 登录MySQL mysql -u root -p
  2. 回车后输入密码
  3. 选择 要操作的服务 use mysql; 我是使用的mysql作为名称,根据你自己服务器名称输入命令
  4. 查看mysql 数据库的 user 表中当前 root 用户的相关信息(host plugin)select host,user,authentication_string,plugin from user;
    mysql
    执行完命令后显示一个表格, root 用户的 host默认显示的localhost,说明只支持本地访问,不允许远程访问。
  5. 先给root账户授权,这里我直接给了所有权限 grant all privileges on *.* to 'root'@'%' with grant option;
  6. 更改 root用户host 的默认配置 update user set host='%' where user='root';
  7. 执行前面的查询命令查看root的host是否改变为localhost(如果失败请继续往后看)
  8. 然后更改加密规则 ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
  9. 更新用户密码ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
  10. 刷新权限 FLUSH PRIVILEGES;
    mysql
    成功后,可以看到root的host改变了,plugin也变成了mysql_native_password(以前也是mysql_na…但是要修改后才能真的连接成功,很玄学)

!如果上面的步骤你的修改不成功请接着往下看

直接添加用户的方法

很多人可能和我一样,前面的直接修改root用户失败,之后我尝试了直接添加用户的方法成功了,首先你要确保没有犯低级错误,上面的命令行大多是由分号的,请仔细检查.

  1. 启动cmd,到第三步骤为止都一样,先创建一个用户 Create user 'name'@'%' identified by 'password'; 名字自己定密码自己定. 执行查询用户命令后可以看到多了一个用户,这里我创建的是else.它的host应该为localhost,之前我忘记截图了.他的plugin是caching_…..
    mysql

  2. 对用户授权 grant all privileges on *.* to 'name'@'%' with grant option;

  3. 修改host update user set host='%' where user='else';
  4. 修改加密方式ALTER USER 'else'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
  5. 更新密码 ALTER USER 'else'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
  6. 刷新权限FLUSH PRIVILEGES;
  7. 查询用户可以看到else用户的host为”%” plugin为”mysql_native_password”这样基本就代表成功了.
  8. 问题到此解决了!

    后记

    我的root修改是失败的,但是在新建完用户并完成修改后再次修改root就成功了,不知道怎么回事;
    总之要运行远程连接,必须保证服务器端用户的host不为”localhost”,plugin为” mysql_native_password.”
    所有操作方法都来源于网络,参考了众多帖子,没有做记录不好写明来源,抱歉.
    最后祝君成功!

    这是自己解决问题时的的笔记,如有错误请评论或者联系谢谢

如果文章有问题欢迎指出,或者你也可以联系我
本文作者:E1se
本文链接: 2018/07/07/远程连接MYSQL8.0服务器问题/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!
-------------本文结束-------------
0%