MySQL之2003-Can’t connect to MySQL server on ‘localhost’(10038)以及1251 - Client does not support authentication protocol requested by server的解决办法
在学习Mybatis时用到Mysql数据库,结果在Navicat上新建连接时发现如下错误
首先检查了自己MySQL并没有打开,点击电脑最下方右键找到【任务管理器】,在【服务】里面找到MySQL,可以看到MySql服务为打开
启动服务,发现在再次新建连接时还是会报相同的错误
在MySQL5.76之后,解压版不再包含一个data目录了,初始化安装MySQL需要使用 --initialize 或者–initialize-insecure指令
快捷键win+s搜索一下【命令提示符】,这里不建议使用快捷键win+R输入cmd来操作,用管理员身份运行
切换到自己安装的MySQL的bin目录下,接着输入 mysqld --remove,移除mysql服务
检查自己的my.ini配置
接着输入mysqld --defaults-file=my.ini --initialize-insecure,什么都没有
mysqld --install,重新进行MySQL服务的安装
再尝试启动MySQL服务,输入
net start mysql
输入mysql -u root -p重新连接数据库
这时的密码为空,直接回车就行
进去之后第一步先设置密码,【注意:如果打开navicat之后出现,Access denied for user ‘root’@‘localhost’ (using password:YES)或者Access denied for user ‘root’@‘localhost’ (using password:NO)的情况,data文件随机生成了一串密码,需要你重新设置,步骤也跟下面一样:】
use mysql;
update user set authentication_string=“123456” where user=“root”;
net stop mysql;
net start mysql;
mysql -u root -p
123456
接着可以成功登录了
再次打开发现
原因是重新安装了mysql权限问题导致的
只需把下面的两条指令逐条复制粘贴到控制台即可 ( '123456’为你的数据库登录密码。 )。
alter user ‘root’@‘localhost’ identified with mysql_native_password by ‘123456’;
flush privileges;
终于发现连接成功了