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