› 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 · Jul 4, 2016 · 5357 views
    This topic created in 3743 days ago, the information mentioned may be changed or developed.

    在 ssh 中执行了 mysqldump 命令:

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

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

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

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

    Supplement 1  ·  Jul 4, 2016

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

    16 replies  •  2016-07-07 16:01:03 +08:00
    ljbha007
        1
    ljbha007  
       Jul 4, 2016
    你这个是交互命令行 加个管道输出到文件呢

    mysqldump -uroot -p 密码 --all-databases > output
    realpg
        2
    realpg  
       Jul 4, 2016
    就这种问题 随便度娘一下第一个结果就有答案 非得问问问?



    abelyao
        3
    abelyao  
    OP
       Jul 4, 2016
    @ljbha007 搞定了,密码中含有 ' 的问题,换个普通点的密码就行了。

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


    你整个楼都没说明白你的问题,你贴出的你遇到的问题跟你实际遇到的问题根本不符
    abelyao
        9
    abelyao  
    OP
       Jul 4, 2016 via iPhone
    @realpg

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

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

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

    或许 @Livid 可以考虑一下代码块中不要处理中英文之间加空格?
    realpg
        10
    realpg  
       Jul 4, 2016
    @abelyao

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

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

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

    你确定执行 `mysqldump -uroot -ppassword --all-databases` 不加 > 输出命令会进入 mysql 提示符界面么?
    自己执行一下再来说话吧,好声好气跟你讲话,还来劲了,还唯一原因呢,搞笑
    realpg
        12
    realpg  
       Jul 4, 2016   ❤️ 1
    @abelyao
    我搞错了 我道歉
    hl
        13
    hl  
       Jul 4, 2016   ❤️ 1
    linux 输出> 且停住,一般都是出现了未闭合的情况比如出现了单个的 ' " ` 等之类的,它会换行继续等待你的输入。你问的问题没错,加不加重定向也都没什么影响,空不空格也无所谓。主要是你中文的“密码” 比较不容易猜到密码中会出现单引号的场景. 哈哈
    AntonChen
        14
    AntonChen  
       Jul 4, 2016 via iPhone
    试试单引号包裹密码 或者转义符
    hbprotoss
        15
    hbprotoss  
       Jul 7, 2016
    -p 命令后面加的密码是一定不能和这个"-p"有空格的,不然他就认为你要从 stdin 里输入密码。。。
    abelyao
        16
    abelyao  
    OP
       Jul 7, 2016 via iPhone
    @hbprotoss 楼上的回复有说,这是 V2EX 加的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2327 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 08:54 · PVG 16:54 · LAX 01:54 · JFK 04:54
    ♥ Do have faith in what you're doing.