• 请不要在回答技术问题时复制粘贴 AI 生成的内容
css3
V2EX  ›  程序员

大佬们帮我看一下这个 sql 的语法问题

  •  
  •   css3 · Feb 5, 2020 · 2084 views
    This topic created in 2316 days ago, the information mentioned may be changed or developed.

    想不进入 mysql 容器内执行 sql 语句(命令行执行是没问题的):

    CREATE USER 'root'@'%' IDENTIFIED BY 'abcd1234';
    GRANT ALL ON *.* TO 'root'@'%';
    

    宿主机执行:

    docker exec -it mysql bash -c 'mysql <<< "CREATE USER 'root'@'%' IDENTIFIED BY 'abcd1234';GRANT ALL ON *.* TO 'root'@'%';"'
    
    
    ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '% IDENTIFIED BY abcd1234' at line 1
    

    报语法错误,引号太多了,我仔细看,感觉也没毛病,但确实是执行不了,各位帮忙看一下,多谢了

    9 replies    2020-02-06 08:50:57 +08:00
    css3
        1
    css3  
    OP
       Feb 5, 2020
    %前加了\也不行😭
    MrUser
        2
    MrUser  
       Feb 5, 2020
    试试这个:
    ```
    docker exec -it mysql bash -c 'mysql <<< "CREATE USER \'root\'@\'%\' IDENTIFIED BY \'abcd1234\';GRANT ALL ON *.* TO \'root\'@\'%\';"'
    ```
    css3
        3
    css3  
    OP
       Feb 5, 2020
    @MrUser 不行,回车后是个>符号,语句不完整🙃
    GM
        4
    GM  
       Feb 5, 2020
    这种容易由于转义导致的问题,建议弄个 sql 文件,然后 mysql < script.sql 这样使用。
    css3
        5
    css3  
    OP
       Feb 5, 2020 via iPhone
    @GM #4 文件确实没问题,主要就是不想增加一个文件😂
    GM
        6
    GM  
       Feb 5, 2020
    @css3 何必跟自己过不去。。。
    hcymk2
        7
    hcymk2  
       Feb 5, 2020
    mysql -e
    msg7086
        8
    msg7086  
       Feb 6, 2020   ❤️ 1
    'mysql <<< "CREATE USER '
    root
    '@'
    %
    ' IDENTIFIED BY '
    abcd1234
    ';GRANT ALL ON *.* TO '
    root
    '@'
    %
    ';"'

    你单引号都没转义,就会被 bash 转义,然后就会变成这样。

    我是建议你最外层用双引号,这样就只要转义一对双引号就行了。

    docker exec -it mysql bash -c "mysql <<< \"CREATE USER 'root'@'%' IDENTIFIED BY 'abcd1234';GRANT ALL ON *.* TO 'root'@'%';\" "

    这样试试看。
    css3
        9
    css3  
    OP
       Feb 6, 2020
    @msg7086 非常感谢,有用!!!👍👍👍👍👍👍
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1125 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 51ms · UTC 18:15 · PVG 02:15 · LAX 11:15 · JFK 14:15
    ♥ Do have faith in what you're doing.