问题描述
在5.7版本的mysql环境下通过mysqldump备份数据库时报错:
mysqldump: [Warning] Using a password on the command line interface can be insecure
见下图:
问题原因
目前查看资料发现5.5是不报错的,因此此问题可能从5.6开始才有也可能从5.7开始才有
mysql自5.7版本开始,考虑到mysql的安全性而更改对保护机制,在mysqldump备份数据库对时候不能直接在命令行上书写数据库的密码
问题解决
1)修改mysql的配置文件 /etc/my.cnf
文件
[client]
host = localhost
user = root
password = 'root'
注意:主要是添加host
user
password
三个参数,必须填写在[client]
模块下,如果my.cnf文件中没有该模块,手动填写一个(必须),然后再下面补充数据库的三个配置信息
2)使用新的mysqldump命令进行备份
mysqldump --defaults-extra-file=/etc/my.cnf blog01 > /home/abcd.sql
3)导入/恢复数据库
mysql --defaults-extra-file=/etc/my.cnf blog0101 < /home/test0101.sql
注意:恢复数据库时,指定的数据库一定要存在(即blog0101必须要存在),否则无法恢复
从以上新的数据库备份/恢复命令中可以看出,我们新用的命令在执行的时候不再显式输入mysql的用户名和密码了,而是需要加载我们修改后的mysql的配置文件
进行数据库的备份与恢复