mysql密码登录失败、服务启动失败和1045-Access denied for user ‘root‘@‘localhost‘

一、问题:

1.打开 navicate,双击localhost_3306,出现报错2002 - Can’t connect to server on ‘localhost’(10061)

mysql密码登录失败、服务启动失败和1045-Access denied for user ‘root‘@‘localhost‘_第1张图片

2.查看mysql是否启动

控制面板——管理工具——服务
找到mysql服务,发现无法启动。
mysql密码登录失败、服务启动失败和1045-Access denied for user ‘root‘@‘localhost‘_第2张图片

3.win+R运行cmd,输入mysql -u root -p,输入密码登陆失败。

4.输入net stop mysql/net start mysql 报错服务名失效。

mysql密码登录失败、服务启动失败和1045-Access denied for user ‘root‘@‘localhost‘_第3张图片

二、解决

2.1 解决问题2和问题4,mysql启动问题和服务名无效问题:

1.找到MySQL的安装路径下bin

2.在命令行中输入mysqld --install,出现Service successfully install代表你已经安装成功。

3.执行 net start mysql。

4.删除mysql下的data文件。

5.执行 mysqld --initialize 可以在当前路径下生成data文件夹,再执行net start mysql 就可以启动mysql。

①要删除的data文件夹如下,删除前要备份:
mysql密码登录失败、服务启动失败和1045-Access denied for user ‘root‘@‘localhost‘_第4张图片
②命令行界面中步骤如下(使用管理员身份操作):
mysql密码登录失败、服务启动失败和1045-Access denied for user ‘root‘@‘localhost‘_第5张图片

③服务端mysql启动成功。
mysql密码登录失败、服务启动失败和1045-Access denied for user ‘root‘@‘localhost‘_第6张图片

2.2 解决问题3,输入密码无法登录且报错2003

try1:使用免密登录。

参考:解决几种MYSQL登录失败,Root用户权限异常的问题
①在Mysql的配置文件中加入

skip-grant-tables

分析:skip-grant-tables会让MySQL服务器跳过验证步骤,允许所有用户以匿名的方式,无需做密码验证直接登陆MySQL服务器,并且拥有所有的操作权限。因此,无需进行无密登陆时,应把此行删除。
mysql密码登录失败、服务启动失败和1045-Access denied for user ‘root‘@‘localhost‘_第7张图片
②重新启动mysql

net stop mysql 
net start mysql

③无密码进行登录,依旧报错2003

mysql密码登录失败、服务启动失败和1045-Access denied for user ‘root‘@‘localhost‘_第8张图片

try2:执行mysqld -install。

参考:启动MySQL报错:ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061)
首先,找到服务,确保MySQL启动。
然后,执行安装命令mysqld -install,由于本机中已经安装了mysql服务,所以有如下提示The service already exists!
最后,执行mysql -u root -p或者mysql -uroot -p,尝试免密或输入密码登录,失败。
mysql密码登录失败、服务启动失败和1045-Access denied for user ‘root‘@‘localhost‘_第9张图片

try3:删除Data,再次初始化。

参考:ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061)

①找到mysql安装目录,将其配置文件my.ini移至bin目录下。
②删除原有的数据库。
2.1、查询SQL 服务是否存在:

sc query mysql (对应的SQL服务名称)如果存在则会弹出一些信息,不存在则提示未找到服务。

2.2、删除服务:

sc delete mysql(对应的SQL服务名称)执行该命令即可删除服务

mysql密码登录失败、服务启动失败和1045-Access denied for user ‘root‘@‘localhost‘_第10张图片

③初始化数据(注:最后一行,root@localhost:后面的是你的随机登录密码,我的是:?k*P,0iGlz4*

mysqld --initialize --user=mysql --console

mysql密码登录失败、服务启动失败和1045-Access denied for user ‘root‘@‘localhost‘_第11张图片

④在服务中启动mysql,cmd中输入mysql -uroot -p,输入随机密码,登陆成功。

mysql密码登录失败、服务启动失败和1045-Access denied for user ‘root‘@‘localhost‘_第12张图片

注意:第四步原本登录失败,原因是在try1过程中在my.ini中添加的skip-grant-tables没有删除,删除后,输入随机初始化密码,登录成功。

⑤将随机密码,修改为自己的密码。(引号中为自定义密码)

use mysql;
ALTER USER USER() IDENTIFIED BY 'yourmima';
flush privileges;

mysql密码登录失败、服务启动失败和1045-Access denied for user ‘root‘@‘localhost‘_第13张图片

三、问题1报错2002的延伸问题,报错1045 - Access denied for user ‘root’@‘localhost’ (using password: NO)

解决以上问题后,双击localhost_3306,出现报错1045 - Access denied for user ‘root’@‘localhost’ (using password: NO)

用户’root’@‘localhost’(使用密码:NO)拒绝访问,可能是因为密码错误,或者用户忘记密码。在经过步骤一二更改密码操作后,在navicat中输入新密码即可。

mysql密码登录失败、服务启动失败和1045-Access denied for user ‘root‘@‘localhost‘_第14张图片

解决:编辑连接,输入新的密码,点击确定,连接成功,彻底解决!o( ̄▽ ̄)ブ

mysql密码登录失败、服务启动失败和1045-Access denied for user ‘root‘@‘localhost‘_第15张图片
参考:navicat连接MySQL报错:1045 - Access denied for user ‘root‘@‘localhost‘ (using password: YES)

你可能感兴趣的:(数据库,mysql,java,python)