mysql做免密码登录失败,备份报错mysqldump: error: 1045: Access denied for user 'root'@'localhost'

mysql在做完免密码登录,备份时报错

[root@localhost ~]# mysqldump  --login-path=test  --all-databases --single-transaction |gzip > /backup/mysql/mysql-all-$(date +%Y%m%d-%H%M%S).sql.gz
mysqldump: Got error: 1045: Access denied for user 'root'@'localhost' (using password: YES) when trying to connect

免密登录设置

mysql_config_editor set --login-path=test --host=localhost --user=root --password

或者

mysql_config_editor set -G test -S /tmp/mysql.sock -u root -p

test是自己随便起的名字

 

#查看生成的免密文件

[root@localhost ~]# file /root/.mylogin.cnf 
/root/.mylogin.cnf: data
[root@localhost ~]# mysql_config_editor print --all
[test]
user = root
password = *****
socket = /tmp/mysql.sock

 

做全备报错

[root@localhost ~]# mysqldump  --login-path=test  --all-databases --single-transaction |gzip > /backup/mysql/mysql-all-$(date +%Y%m%d-%H%M%S).sql.gz
mysqldump: Got error: 1045: Access denied for user 'root'@'localhost' (using password: YES) when trying to connect

原因

免密文件中不能识别  #  号;如果你的mysql的用户密码中包含  #  号,在做免密码登录时,不能识别到 #  号,导致msyql登录失败,从而备份失败。 

补充:在命令行输入密码时,如果mysql用户的密码中有    也会被当成特殊字符;给密码加单引号‘’也不好使

提醒:在设置mysql用户的密码时,不建议添加  #  !这俩特殊字符,可以添加其他字符,以避免错误

 

解决方法

mysql用户密码中有特殊字符  #   !  号的情况

使用如下方法;给密码加单引号‘’

[root@iZ8vb0ywcounjc3oh3rv2jZ ~]# mysql -uroot -p
Enter password: ‘sfin#00!’

做免密登录点

[root@iZ8vb0ywcounjc3oh3rv2jZ ~]# mysql_config_editor set --login-path=test --host=localhost --user=root --password
Enter password: ‘sfin#00!’

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章