Linux 小白求助… 执行 mysqldump 之后卡在 > 中没有结果,可能是什么原因?

2016-07-04 10:05:05 +08:00
 abelyao

在 ssh 中执行了 mysqldump 命令:

[root@centos ~]# mysqldump -uroot -p 密码 --all-databases
>

然后就不动了,需要手动按 ctrl + c 取消才行:

[root@centos ~]# mysqldump -uroot -p 密码 --all-databases
> ^C
[root@centos ~]#

可能是什么原因呢…… Linux 小白,关键字也不懂怎么描述,只能来 V2 求助老司机了!

4340 次点击
所在节点    MySQL
16 条回复
ljbha007
2016-07-04 10:12:20 +08:00
你这个是交互命令行 加个管道输出到文件呢

mysqldump -uroot -p 密码 --all-databases > output
realpg
2016-07-04 10:17:22 +08:00
就这种问题 随便度娘一下第一个结果就有答案 非得问问问?



abelyao
2016-07-04 10:19:36 +08:00
@ljbha007 搞定了,密码中含有 ' 的问题,换个普通点的密码就行了。

@realpg 请不要随意猜测别人没有自行搜索,作为 Linux 小白如果我没有搜索 mysqldump 的用法我根本不知道这个命令。
ChoateYao
2016-07-04 10:29:22 +08:00
首先密码不要明文写在命令里面.
mysqldump -hlocalhost -uroot -p databaseName > file.sql 回车之后会让你输入密码,这样子就不会有因为符号需要转义的问题了。
abelyao
2016-07-04 10:31:26 +08:00
@ChoateYao 谢谢提醒,是因为想尝试写一个自动备份的脚本,在测试命令通不通…
Delbert
2016-07-04 11:01:59 +08:00
虽然你说是单引号的原因,但我觉得不是你密码前面有空格的原因吗?
abelyao
2016-07-04 11:05:10 +08:00
@Delbert “ p 密码” 是因为 V2EX 自动在中文和英文直接加了空格
realpg
2016-07-04 11:32:14 +08:00
@abelyao 不好意思,急于你顶楼的复制内容,我只能得出你基本语法都没研究明白就来问
我的回复是 2 楼 单纯修复你说的密码问题 用你主楼的语法 依然是这个结果


你整个楼都没说明白你的问题,你贴出的你遇到的问题跟你实际遇到的问题根本不符
abelyao
2016-07-04 11:53:00 +08:00
@realpg

如果你说的是 密码 前面空格的问题,这确实我疏忽了 V2EX 会在中英文之间加空格,让你误以为我没搞清楚基本语法。

但如果基本语法没搜过,我也写不出这句命令啊 😂😂

其实遇到问题的时候我也不清楚到底是什么原因,具体的问题也不清楚是出在哪,按照教程来都符合,后来凭着感觉,觉得含有引号都有可能出问题,所以把密码改了果然可以了。

或许 @Livid 可以考虑一下代码块中不要处理中英文之间加空格?
realpg
2016-07-04 11:58:01 +08:00
@abelyao

是你不懂中文还是我不懂中文

你问的问题是 为啥你输入命令回车以后直接进了 mysql 提示符界面 我知道 V2 自动空格问题,我从来没觉得那个空格是问题

你直接进了终端界面的唯一原因就是 mysqldump 是要用>重定向输出的,否则你语句正确,只是会结合你的权限输出一些东西,最后仍然是提示符
abelyao
2016-07-04 12:31:36 +08:00
@realpg

你确定执行 `mysqldump -uroot -ppassword --all-databases` 不加 > 输出命令会进入 mysql 提示符界面么?
自己执行一下再来说话吧,好声好气跟你讲话,还来劲了,还唯一原因呢,搞笑
realpg
2016-07-04 12:37:34 +08:00
@abelyao
我搞错了 我道歉
hl
2016-07-04 12:58:08 +08:00
linux 输出> 且停住,一般都是出现了未闭合的情况比如出现了单个的 ' " ` 等之类的,它会换行继续等待你的输入。你问的问题没错,加不加重定向也都没什么影响,空不空格也无所谓。主要是你中文的“密码” 比较不容易猜到密码中会出现单引号的场景. 哈哈
AntonChen
2016-07-04 20:20:28 +08:00
试试单引号包裹密码 或者转义符
hbprotoss
2016-07-07 15:18:48 +08:00
-p 命令后面加的密码是一定不能和这个"-p"有空格的,不然他就认为你要从 stdin 里输入密码。。。
abelyao
2016-07-07 16:01:03 +08:00
@hbprotoss 楼上的回复有说,这是 V2EX 加的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/290080

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX