V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
nonozone
V2EX  ›  问与答

请教下这句mysql命令有啥问题么?

  •  
  •   nonozone · 2013-07-17 09:27:22 +08:00 · 2424 次点击
    这是一个创建于 3961 天前的主题,其中的信息可能已经有所发展或是发生改变。
    for db in `mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e ‘SHOW DATABASES’ | xargs`; do
    (mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 – > ${db}.sql.gz)
    done

    我想把说有数据库以各个数据库名称分别备份,但是运行这段代码的时候,会提示:
    ERROR 1049 (42000): Unknown database 'DATABASES’'
    如果我直接在终端运行
    mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e ‘SHOW DATABASES’ | xargs
    是可以显示出所有的数据库名称的?

    错误提示里DATABASE后面那个右引号是哪里出来的?

    还有顺便请教下,这段命令里面的‘ ’ 跟最后面的那个 ` 这几个引号有区别么?
    4 条回复    1970-01-01 08:00:00 +08:00
    moroumo
        1
    moroumo  
       2013-07-17 09:31:27 +08:00
    把单引号改成双引号,或者去掉单引号试试
    magicsilence
        2
    magicsilence  
       2013-07-17 09:36:41 +08:00
    1. 用英文的单引号
    2. 反单引号,代表需要执行的语句
    nonozone
        3
    nonozone  
    OP
       2013-07-17 09:42:53 +08:00
    @moroumo
    @magicsilence
    谢谢,貌似把 ‘’改成''不会提示这个问题了。
    但是现在有个问题是:
    Access denied for user 'root'@'localhost' to database 'information_schema' when using LOCK TABLES
    这个是咋回事?
    information_schema 这个数据库是否重要,是否需要备份,如果不重要,排除备份这个数据库,命令要怎么写啊?
    BOYPT
        4
    BOYPT  
       2013-07-17 10:45:18 +08:00
    if [[ $db == 'information_schema' ]]; then continue; fi
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2896 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 11:41 · PVG 19:41 · LAX 04:41 · JFK 07:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.