假设我想使用 bash 脚本访问 mysql 服务器并打印本地主机中的所有表和数据库及其数据。
我的脚本如下所示:
mysql -u root -p 密码
执行脚本后,打开的是 mysql shell 而不是 bash。那么如何使用 mysql 运行命令?
另外,我应该执行什么命令来打印出所有数据库、表及其数据?
编辑:我现在知道应该使用哪个命令,但问题仍然存在:
我需要将其写入脚本,但是在输入 mysqldump 命令时,它会以交互方式要求输入密码。
那么如何在 Bash 脚本中处理密码?
答案1
答案2
尝试这个..
mysqldump -u root -p databasename > filename.sql
所有表都存储在filename.sql中。它就像备份一样。
如果您想将表存储回数据库,请使用此命令。
mysqldump -u root -p databasename < filename.sql
答案3
如果你执行man mysqldump
,你将得到以下输出:
--password[=密码], -p[密码]
连接服务器时使用的密码。如果使用短选项形式 (-p),则选项和密码之间不能有空格。如果在命令行中省略 --password 或 -p 选项后的密码值,mysqldump 会提示输入密码。
在命令行上指定密码应被视为不安全。请参阅第 6.1.2.1 节“密码安全的最终用户指南”。您可以使用选项文件来避免在命令行上提供密码。
假设您的 root 密码是 PASSWORD,请尝试以下命令:
mysqldump -u root -pPASSWORD --all-databases > database.sql