psx Asked: 2010-03-26 03:09:57 +0800 CST2010-03-26 03:09:57 +0800 CST 2010-03-26 03:09:57 +0800 CST 使用 mysqldump 控制台转义密码 772 我正在通过 bash 脚本运行 mysqldump,但遇到了包含特殊字符的密码问题。 mysqldump -hlocalhost -uUSERNAME -pPA$$W0RD DATABASE | gzip > /home/USERNAME/backups-mysql/BACKUP.gz 如何逃脱密码? mysql password 2 个回答 Voted Best Answer David Mackintosh 2010-03-26T04:22:45+08:002010-03-26T04:22:45+08:00 更好的是,不要将用户名或密码放在命令行上,任何人都可以看到它ps -ef。 创建一个名为的控制文件/etc/mysqldump.cnf: [client] user=root password=YOUR_MYSQL_ROOT_PASSWORD ...哪里client是文字(不是您的服务器的名称)并且YOUR_MYSQL_ROOT_PASSWORD是...嗯...您的 mysql root 密码。 然后像这样调用: mysqldump --defaults-file=/etc/mysqldump.cnf DATABASE | gzip > /home/USERNAME/backups-mysql/BACKUP.gz 就我个人而言,我的调用更像是这样的: #!/bin/bash NOW=`perl -e 'print time;'` cd /opt/backup/mysql mkdir $NOW for i in `echo "show databases" | mysql -u root --password="MySqlRootPassword" | grep -v Database`; do mysqldump --defaults-file=/etc/mysqldump.cnf --databases $i --opt > $NOW/$i.dump one tar cfpz $NOW.tgz $NOW du -sh $NOW $NOW/* > $NOW.report rm -rf $NOW 我从来没有想过如何--defaults-file为 mysql 使用类似的参数,但是由于此命令运行得相当快,因此暴露的风险要低得多……尽管确实应该修复。 Gk. 2010-03-26T03:33:09+08:002010-03-26T03:33:09+08:00 mysqldump -hlocalhost -uUSERNAME -p'PA$$W0RD' DATABASE | gzip > /home/USERNAME/backups-mysql/BACKUP.gz 有用?
更好的是,不要将用户名或密码放在命令行上,任何人都可以看到它
ps -ef
。创建一个名为的控制文件
/etc/mysqldump.cnf
:...哪里
client
是文字(不是您的服务器的名称)并且YOUR_MYSQL_ROOT_PASSWORD
是...嗯...您的 mysql root 密码。然后像这样调用:
就我个人而言,我的调用更像是这样的:
我从来没有想过如何
--defaults-file
为 mysql 使用类似的参数,但是由于此命令运行得相当快,因此暴露的风险要低得多……尽管确实应该修复。有用?