数据库修改密码操作失误后,提示1045 access denied for user 'root'@'localhost' using password yes

我是多久没操作过数据库了,忘的一干二净,以后笔记都得记录下来。先说说今天做了个啥,xampp安装的mysql,默认的root用户是没有密码的,而很多程序中,输入用户名和密码来链接mysql,要求密码不能为空,所以:就上网上查找,修改mysql用户的密码,也是不仔细,犯了同下面这位兄弟一样的错误!

mysql> use mysql;
Database changed
mysql> update user set password='master' where user='root';
Query OK, 3 rows affected (0.05 sec)
Rows matched: 3  Changed: 3  Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.16 sec)

注意:上面红色的部分,是错误的!设置密码的语句应该是:

update user set password = PASSWORD('root')where user = 'root';

接下来是解决方案,网上搜的记录下来:

1、首先停止正在运行的MySQL进程 

Linux下,运行 
killall -TERM mysqld 
Windows下,如果写成服务的 可以运行: 
net stop mysql
 ,如未加载为服务,可直接在进程管理器中进行关闭。 

2、以安全模式启动MySQL 

Linux下,运行 

mysqld_safe --skip-grant-tables & 

Windows下,在命令行下运行 
X:/MySQL/bin/mysqld-nt.exe --skip-grant-tables // 我这里使用的是mysqld.exe 程序

(看有的地方可能需要加配置文件的路径  --defaults-file="C:\Program Files\MySQL\MySQL Server 5.1\my.ini" --console,我这里没用可以)
 
3、完成以后就可以不用密码进入MySQL了 

Linux下,运行 
mysql -u root -p 
 进入Windows下,运行 
X:/MySQL/bin/mysql -u root -p// 不用密码登录即可进入 

4、更改密码 // 依旧是最上面的3步
>use mysql  
>update user set password=password("新密码") where user="root";  
>flush privileges;  

上面这个方法,可能是公认的正确方法。我测试也是通过的,下面这2个方法是其他地方别人查找的,并没经过验证,也贴出来:

方法二: 
直接使用/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服务

第4步也可以直接修改mysql表,所用到的SQL语句同linux部分,这里就不再重复了.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值