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所示
如果登录时遇到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
从图中可看出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
4.验证
打开navicat测试连接如图4,密码为刚刚设置的‘123456’。
点击连接测结果如图5 ,证明连接成功!!!
- 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
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
结果如图8
证明成功!!!