linux用mysqldump备份数据库遇到问题Got error: 1045: Access denied for user 'root'@'localhost' (using password:

当尝试使用mysqldump备份数据库时遇到1405错误,通常表现为访问拒绝。常规解决方法包括通过mysql客户端更新root用户的密码并刷新权限,但此方法在某些情况下无效。在Windows系统中,可能需要在my.ini配置文件中添加skip-grant-tables,然后重启MySQL,以无权限检查方式登录,更改密码,刷新权限,最后移除该选项并再次重启MySQL。

解决办法(这部分是看到网友们的)

登录mysql客户端

mysql -hserverip -uroot -p

mysql> update user set password=password('new password') where user='root';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4  Changed: 4  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> quit


执行完了以上操作步骤之后,再执行备份,依然报同样的错,最终解决办法是在备份命令上也要加上-h serverip,但是我公司一台普通主机装了linux系统,放了一些公司内部用的系统,备份时就没有出现这个问题。虽然最终问题是解决了,但是原理还是不知道,求知道的大神告诉我一下,感激不尽


---------------------------------------------------------------------------分割线=--------------------------------------------------------------------------------------------------

以上是自己备份mysql时发生1405错误,今天帮隔壁公司安装一个hr软件,要设置数据库时在window系统又发生了这样的错误,按照以上的方法在命令加-hserverip竟然也还行不行,各种百度,解决方案大都也是像上面一样修改一下root用户的密码,问题是在执行mysql -uroot -ppassword这句命令登录mysql也是报1405。最终在一篇博客上找到 解决方法,方法如下:

1.在mysql的安装目录下,找到mysql的配置文件my.ini[mysqld]这个条目下加入skip-grant-tables(登录时不使用授权表),保存,重启mysql.


2.之后在cmd输入mysql -uroot -p按回车,出现password,直接回车可以成功登录mysql,不会报1405了。


3.在显示mysql>的命令行里输入use mysql,回车,再输入update user set password=password("新密码") where user="root";


4.输入flush privilges;(刷新数据库),再输入quit(退出数据库)


5.最后一步就是在my.ini里面把之前加入的skip-grant-tables删除或用#注释掉。再重启mysql。之后再用mysql -uroot -ppassword登录就不会再报1405了






评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值