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