2019-08-05

mysql服务设置远程连接 解决1251 client does not support ..问题

mysql连接分为两种一种是localhost,一种是Ip连接。

  • localhost连接
    1.登录mysql
    首先登录到mysql及管理员cmd进入命令提示符界面,执行cd C:\Program Files\MySQL\MySQL Server 8.0\bin进入bin目录下,然后执行mysql -uroot -p,接着输入登录密码,如图1所示
    图1. 登录.PNG

    如果登录时遇到ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)错误,是因为没有启动mysql服务,要先启动服务再登录。
    启动mysql服务语句为net start mysql,mysql(服务名:每个人可能不同,在计算机管理服务里查看mysql服务名)
    2.查询mysql用户信息
    执行select host,user,plugin,authentication_string from mysql.user;
    结果如图2
    图2.PNG

    从图中可看出user用户root的host为localhost的authentication_string及密码为空,plugin为caching_sha2_password,但是要想navicat连接mysql,plugin要为mysql_native_password
    3.修改密码和plugin
    执行ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';,如图3
    图3.PNG

    4.验证
    打开navicat测试连接如图4,密码为刚刚设置的‘123456’。
    图4.PNG

    点击连接测结果如图5 ,证明连接成功!!!
    图5.PNG
  • Ip远程连接
    1.一二步同上,如图2root用户对应的host,默认应该显示的 localhost,只支持本地访问,不允许远程访问。只有当root的host为%可以访问远程,因为% 表示通配所有 host,可以远程访问。
    2.又通过图2没有用户是root,host为%的用户,因此要创建此用户(若用户信息中又user为root,host为%的此步省略)
    执行CREATE USER 'root'@'%' IDENTIFIED BY '123456';,123456为此用户密码。
    再执行select host,user,plugin,authentication_string from mysql.user;查询用户信息如图6
    图6.PNG
    由图可见创建成功!!!
    3.修改plugin
    执行ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
    4.设置为远程登录
    执行GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
    5.刷新权限
    执行flush privileges;
    6.测试连接
    如图7
    图7.png

    结果如图8
    图8.PNG

    证明成功!!!
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容