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!’

 

 

 

 

 

 

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