欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

MySql错误代码1045的解决方案 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) ,一般是密码错误造成的。 有大用 有大大用

错误代码 1045
Access denied for user 'root'@'localhost' (using password:YES)
解决办法是重新设置root用户密码,在Windows平台下操作步骤如下:
1、以系统管理员身份登录到系统;
2、如果MySQL服务器正在运行,停止它。
      如果是作为Windows服务运行的服务器,进入服务管理器:开始菜单->控制面板->管理工具->服务
      如果服务器不是作为服务而运行的,可能需要使用任务管理器来强制停止它。
3、创建1个文本文件,并将下述命令置于单一行中:
      SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
      用任意名称保存该文件。在本例中,该文件为C:\mysql-init.txt。
4、进入DOS命令提示:开始菜单->运行-> cmd
      假定你已将MySQL安装到C:\mysql。如果你将MySQL安装到了另一位置,请对下述命令进行相应的调整。
      在DOS命令提示符下,执行命令:
            C:\> C:\mysql\bin\mysqld-nt --init-file=C:\mysql-init.txt
      在服务器启动时,执行由“--init-file”选项(作用:在启动时从指定的文件中读取SQL命令)命名的文件的内容,更改根用户密码。当服务器成功启动后,应删除C:\mysql-init.txt。
5、停止MySQL服务器,然后在正常模式下重启它。如果以服务方式运行服务器,应从Windows服务窗口启动它。如果以手动方式启动了服务器,能够像正常情形下一样使用命令。
附:
其他方法
方法一:  
# /etc/init.d/mysql stop  
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &  
# mysql -u root mysql  
mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’;  
mysql> FLUSH PRIVILEGES;  
mysql> quit  
# /etc/init.d/mysql restart  
# mysql -uroot -p  
Enter password: <输入新设的密码newpassword>  
mysql>  
方法二:  
直接使用/etc/mysql/debian.cnf文件中[client]节提供的用户名和密码:  
# mysql -udebian-sys-maint -p  
Enter password: <输入[client]节的密码>  
mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’;  
mysql> FLUSH PRIVILEGES;  
mysql> quit  
# mysql -uroot -p  
Enter password: <输入新设的密码newpassword>  
mysql>  

内容来自: 脚本之家 www.jb51.net  

另一个方法
Windows:

1. 管理员登陆系统,停止mysql服务或者结束mysqld-nt进程
2. 进入命令行,来到mysql的安装目录.假设安装目录为 d:\mysql\ , CMD进入命令行
3. 运行 d:\mysql\bin\mysqld-nt --skip-grant-tables 启动mysql,关闭权限的检查
4. 运行 d:\mysql\bin\mysqladmin -u root flush-privileges password "newpassword" 重设root密码
5. 重新启动mysql服务

来自  https://www.cnblogs.com/phoenixzq/archive/2011/03/09/1978332.html


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

MySQL 1045错误如图:

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


解决方案:

1、  停止服务:停止MySQL服务;

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

3、  修改密码:启动MySQL服务,登录MySQL,此时提示输入密码,输入任意密码回车即可进入MySQL。然后通过SQL语句修改root用户的密码;

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

Windows系统具体操作:

1、  停止服务:

方法1:使用dos命令net stop mysql即可;使用这种方式MySQL服务必须为安装的服务,否则

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

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

2、  跳过验证:

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

3、  修改密码:

启动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为修改后的新密码。

4、  重启服务:

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

 

Linux系统具体操作:

1、  停止服务:

执行:/etc/init.d/mysqlstop

(你的机器不一定是/etc/init.d/mysql也可能是/etc/init.d/mysqld,可以通过find命令查找)。

2、  跳过验证:

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

(如果mysqld_safe的位置如果和不一样需要修改,如果不清楚可以用find命令查找)。

3、  修改密码:

执行:

/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

4、  重启服务:

执行:

killall mysqld                      (杀死mysql进程)

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

来自 http://blog.csdn.net/bbirdsky/article/details/8134528


mysql ERROR 1045 (28000): 错误解决办法

ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO)

ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: YES)

windows下,以上两个错误的解决方法

工具/原料

  • windows 8
  • MySql

方法/步骤

  1. 找到配置文件my.ini  ,然后将其打开,可以选择用记事本打开

    mysql ERROR 1045 (28000): 错误解决办法
  2. 打开后,搜索mysqld关键字

    找到后,在mysqld下面添加skip-grant-tables,保存退出。

    PS:若提示不让保存时,可以将该文件剪切到桌面,更改保存后再复制到mySQL目录下

    mysql ERROR 1045 (28000): 错误解决办法
    mysql ERROR 1045 (28000): 错误解决办法
  3. 保存后重启mySQL

    mysql ERROR 1045 (28000): 错误解决办法
    mysql ERROR 1045 (28000): 错误解决办法
  4. 然后运行cmd

    输入mysql -u root -p就可以不用密码登录了,出现password:的时候直接回车可以进入。

    mysql ERROR 1045 (28000): 错误解决办法
  5. 1.进入mysql数据库:

    mysql> use mysql;Database changed

    2.给root用户设置新密码,蓝色部分自己输入:mysql> update user set password=password("123456") where user="root";Query OK, 1 rows affected (0.04 sec)Rows matched: 1 Changed: 1 Warnings: 0

    3.刷新数据库mysql> flush privileges;Query OK, 0 rows affected (0.01 sec)

    4.退出mysql:mysql> quitBye

    PS:123456为新密码,用户可根据自己需要修改成自己的密码


    mysql ERROR 1045 (28000): 错误解决办法
  6. 改好之后,再修改一下my.ini这个文件,把我们刚才加入的"skip-grant-tables"这行删除,保存退出再重启mysql服务就可以了。

    END
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
举报作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。

来自 https://jingyan.baidu.com/article/3ea51489e6cfbe52e61bba25.html

普通分类: