mysql出问题:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

版权声明:未经本人同意不得转载 https://blog.csdn.net/object_oriented_/article/details/87908064

解决步骤:

1.停止MySQL服务

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

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

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

Windows系统操作:

1、 停止服务:

方法1:使用cmd命令net stop mysql即可如果出现服务名无效,可以使用第二种方法。

方法2:电脑图标右击–>管理 –>打开服务和应用程序--服务,找到MySQL服务停止。

2、 跳过验证:

进入MySQL的安装路径(以默认安装路径为例)D:\Program Files\MySQL\MySQL Server 5.5\,找到my.ini配置文件,在my.ini配置文件的最后一行加入skip_grant_tables,此语句可以跳过登录检查。

3、 修改密码:

启动MySQL服务: net start mysql
进入cmd环境,输入mysql -uroot -p密码  登录MySQL(如果安装时没有勾选添加环境变量,需要先使用cd命令进入MySQL安装目录),此时提示输入密码,输入任意密码回车即可进入MySQL,出现mysql>控制符,此时表示已经成功登录MySQL;
    

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

mysql> update user set password=password("123456") where user="root";
上述语句我们修改密码为123456 ;然后会显示Query OK;证明我们改密成功,password函数为MySQL内部函数

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服务)


 

猜你喜欢

转载自blog.csdn.net/object_oriented_/article/details/87908064