mysql 1045解决方法

30 篇文章 0 订阅
14 篇文章 0 订阅

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

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

MySQL 1045错误如图:

解决方案:

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配置文件[mysqld]配置项最后一行加入skip_grant_tables,此语句可以忽略登录检查。

3、  修改密码:

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

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

mysql> USE mysql;   (将数据库切换至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服务)

MySQL 1045错误一般是由于连接MySQL数据库时使用了错误的用户名或密码导致的。以下是具体的解决方法: 1. 确认用户名和密码是否正确:在连接MySQL时,需要使用正确的用户名和密码。你可以在MySQL安装时设置一个root用户并设置密码,如果你忘记了密码,可以尝试使用以下命令重置密码: ``` sudo /etc/init.d/mysql stop sudo mysqld_safe --skip-grant-tables & mysql -u root mysql mysql> UPDATE user SET password=PASSWORD('new_password') WHERE user='root'; mysql> FLUSH PRIVILEGES; mysql> exit; sudo /etc/init.d/mysql restart ``` 其中,new_password是你要设置的新密码。重启MySQL服务后,使用新密码连接MySQL。 2. 确认是否有权限连接MySQL数据库:在连接MySQL时,需要确保你有权限连接MySQL数据库。你可以通过以下命令创建并授权一个新用户: ``` CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'new_user'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` 其中,new_user是你要创建的新用户,password是你要设置的密码。授予该用户所有权限后,重新连接MySQL。 3. 确认是否使用了正确的主机名:如果是在本地连接MySQL,尝试使用localhost或127.0.0.1代替主机名来连接MySQL。如果是远程连接MySQL,需要确保主机名和端口号正确。 4. 确认MySQL服务器是否已启动:在连接MySQL之前,需要确保MySQL服务器已启动。你可以使用以下命令检查MySQL服务器状态: ``` sudo service mysql status ``` 如果MySQL服务器未启动,使用以下命令启动MySQL服务器: ``` sudo service mysql start ``` 5. 尝试重置MySQL用户密码:如果仍然无法连接MySQL,可以尝试使用以下命令重置MySQL用户密码: ``` sudo mysql -u root use mysql; update user set authentication_string=PASSWORD("new_password") where user='root'; flush privileges; quit; ``` 其中,new_password是你要设置的新密码。重启MySQL服务后,使用新密码连接MySQL。 如果以上方法都无法解决问题,那么可能是MySQL数据库配置有误或者MySQL服务器存在其他问题导致的。你可以查看MySQL服务器的日志文件,以获取更多信息。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值