我正在尝试使用下一个命令进行转储:
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是空文件。
为什么我看不到任何活动?是bug吗?
答案 0 :(得分:0)
来自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
答案 1 :(得分:0)
正如您所描述的,此问题可能是由于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 - 您使用非标准端口是不常见的。