MySQL 1045登陆失败

 当你登陆MySQL数据库出现:Error 1045错误时(以下图),就代表你输入的用户名或密码错误被拒绝访问了,最简单的解决方法就是将MySQL数据库卸载而后重装,但这样的缺点就是就之前的数据库中的信息将丢失,若是你不想重装,那么就须要找回密码或者重置密码。解决的方法应该有多种,这里我推荐你们使用一种原理经过,操做简单的方法,适用于windows以及linux平台。 html

MySQL 1045错误如图:mysql

[plain]  view plain copy print ?
 
  1. ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)  


解决方案:

一、  中止服务:中止MySQL服务;linux

二、  跳过验证:修改MySQL安装目录下的my.ini配置文件,使登陆时跳过权限检查;sql

三、  修改密码:启动MySQL服务,登陆MySQL,此时提示输入密码,输入任意密码回车便可进入MySQL。而后经过SQL语句修改root用户的密码;数据库

四、  重启服务:将my.ini文件中加入的跳过权限语句删除或加#号注释。重启服务,使用修改后的密码登陆便可。windows

Windows系统具体操做:

一、  中止服务:函数

方法1:使用dos命令net stop mysql便可;使用这种方式MySQL服务必须为安装的服务,不然工具

会出现服务名无效,这时可使用第二种方法。post

方法2:进入【控制面板】-->【管理工具】 -->【服务】,找到MySQL服务,点击左边的中止。.net

二、  跳过验证:

进入MySQL的安装路径(以默认安装路径为例)C:\Program Files\MySQL\MySQL Server 5.1\,找到my.ini配置文件(些文件记录MySQL的常规参数,每次启动服务都会先加载此文件),在my.ini配置文件的最后一行加入skip_grant_tables,此语句能够忽略登陆检查。

三、  修改密码:

启动MySQL服务,进入dos环境,输入mysql -u root -p登陆MySQL(若是安装时没有勾选添加

环境变量,须要先使用cd命令进入MySQL安装目录),此时提示输入密码,输入任意密码回车便可进入MySQL,出现mysql>控制符,此时表示已经成功登陆MySQL;

mysql> USEmysql   (将数据库切换至mysql库中)

mysql> UPDATE user SET password=PASSWORD(‘newpswd’)WHERE user=’root’          (修改密码)

password函数为MySQL内部函数,其中newpswd为修改后的新密码。

四、  重启服务:

将my.ini文件中加入的跳过权限语句删除或加#号注释。重启服务,使用修改后的密码登陆便可。

 

Linux系统具体操做:

一、  中止服务:

执行:/etc/init.d/mysqlstop

(你的机器不必定是/etc/init.d/mysql也多是/etc/init.d/mysqld,能够经过find命令查找)。

二、  跳过验证:

执行:/usr/local/mysql/bin/mysqld_safe--skip-grant-tables >/dev/null 2>&1 &

(若是mysqld_safe的位置若是和不同须要修改,若是不清楚能够用find命令查找)。

三、  修改密码:

执行:

/usr/local/mysql/bin/mysql -u root mysql      (登陆mysql)

mysql> UPDATE userSET password=PASSWORD(‘newpswd’)WHERE user=’root’  (修改密码)

mysql>flush privileges     ( 刷新MySQL权限相关的表)

mysql>exit                         (退出MySQL)

四、  重启服务:

执行:

killall mysqld                      (杀死mysql进程)

/etc/init.d/mysql start      (启动mysql服务)

转载于:https://www.cnblogs.com/lovelyp/p/4604899.html