linux下mysql数据库备份命令一般这样写
mysqldump -u root -p dataname>data.sql
然后会提示:Enter password:
如果需要备份多个数据库,就需要不断的输入密码。能不能有个方法把密码在mysqldump命令行里一并写入,免得通过提示来输入密码?这样就可以避免如果数据库比较多,每备份一个都需要输入密码的麻烦了。做站群SEO的,一般数据库都会比较多。
在mysql5.5之前,备份命令可以这么写:
/opt/lampp/bin/mysqldump -u root -ppassword db>bak.sql
将密码直接写在命令里。
MySQL从5.5升到5.6以后,mysqldump居然不好用了,提示:
#/opt/lampp/bin/mysqldump -u root -ppassword db>bak.sql
Warning: Using a password on the command line interface can be insecure.
错误提示是:在命令行界面上使用密码可以是不安全的。也就是说在新版的mysql中,是不允许在命令行里直接输入密码的。
查了一堆资料后,总结的解决方案:
在自己用户下新建一个.my.cnf文件,内容拷贝/opt/lampp/etc/my.cnf即可。在[client]下面新增以下两行:
user=root
password=yourpass
然后,在使用mysqldump命令是就可以省略-u和-p命令了,直接使用
/opt/lampp/bin/mysqldump db>bak.sql
就可以了。
这样,如果需要备份多个数据库,就可以将上面的命令编成一段linux脚本就可以了。
linux下的脚本非常简单,新建一个**.sh文件,把命令按行写入,保持即可。
执行的时候执行输入./**.sh即可执行。
这样,在linux下,每次备份数据库,无论有多少个数据库,只要运行预先编好的**.sh脚本文件就可以了。