我正在尝试使用下一个命令进行转储:
mysqldump -v -u root -p -h 127.0.0.1 -P 3308 -x --add-drop-table --add-locks --create-options -K -e -q -A > database.sql
结果(输入密码后)是消息“连接到 127.0.0.1...”。在这之后什么都没有(没有任何错误,只是在等待)。
database.sql 是空文件。
为什么我看不到任何活动?是虫子吗?
正如您所描述的,此问题可能是由于 mysql 服务器未运行或在主机上不可用(在您的情况下为 localhost),或者它正在运行但不在该端口上。
它是一个什么样的系统?如果是 linux/unix 的风格,你可以运行
ps -ef|egrep mysql
查看mysql服务器是否正在运行。检查 Windows 上的等效命令或您可能正在运行的任何其他命令。此外,您可以通过查看这是否有效来验证这是不是问题:
mysql -u root -p -h 127.0.0.1 -P 3308
解决办法是启动服务器:
/etc/init.d/mysqld start
或系统上的等效项。
注意:如果它正在运行,请确定它在哪个端口上 - 您可能没有指定正确的端口号。默认值为 3306 - 您使用非标准端口是不寻常的。
来自http://linuxcommand.org/man_pages/mysqldump1.html
连接到服务器时使用的密码。如果使用短选项形式 (-p),则选项和密码之间不能有空格。如果您在命令行中省略了 --password 或 -p 选项后面的密码值,系统会提示您输入密码值。
系统可能正在等待您输入密码。
如果你想避免这种情况,只需在命令中添加密码。假设您的密码是“FLOWER”:
mysqldump -v -u root -pFLOWER -h 127.0.0.1 -P 3308 -x --add-drop-table --add-locks --create-options -K -e -q -A > database.sql