V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
abelyao
V2EX  ›  MySQL

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

  •  1
     
  •   abelyao ·
    abelyao · 2016-07-04 10:05:05 +08:00 · 4322 次点击
    这是一个创建于 3053 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在 ssh 中执行了 mysqldump 命令:

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

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

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

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

    第 1 条附言  ·  2016-07-04 10:49:12 +08:00

    问题已解决,是因为密码中含有 符号导致的

    16 条回复    2016-07-07 16:01:03 +08:00
    ljbha007
        1
    ljbha007  
       2016-07-04 10:12:20 +08:00
    你这个是交互命令行 加个管道输出到文件呢

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



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

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


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

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

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

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

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

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

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

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

    你确定执行 `mysqldump -uroot -ppassword --all-databases` 不加 > 输出命令会进入 mysql 提示符界面么?
    自己执行一下再来说话吧,好声好气跟你讲话,还来劲了,还唯一原因呢,搞笑
    realpg
        12
    realpg  
       2016-07-04 12:37:34 +08:00   ❤️ 1
    @abelyao
    我搞错了 我道歉
    hl
        13
    hl  
       2016-07-04 12:58:08 +08:00   ❤️ 1
    linux 输出> 且停住,一般都是出现了未闭合的情况比如出现了单个的 ' " ` 等之类的,它会换行继续等待你的输入。你问的问题没错,加不加重定向也都没什么影响,空不空格也无所谓。主要是你中文的“密码” 比较不容易猜到密码中会出现单引号的场景. 哈哈
    AntonChen
        14
    AntonChen  
       2016-07-04 20:20:28 +08:00 via iPhone
    试试单引号包裹密码 或者转义符
    hbprotoss
        15
    hbprotoss  
       2016-07-07 15:18:48 +08:00
    -p 命令后面加的密码是一定不能和这个"-p"有空格的,不然他就认为你要从 stdin 里输入密码。。。
    abelyao
        16
    abelyao  
    OP
       2016-07-07 16:01:03 +08:00 via iPhone
    @hbprotoss 楼上的回复有说,这是 V2EX 加的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1050 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 19:52 · PVG 03:52 · LAX 11:52 · JFK 14:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.