【问题标题】:Using variable to invoke MySQL in shell script在 shell 脚本中使用变量调用 MySQL
【发布时间】:2023-03-20 16:56:02
【问题描述】:

我正在创建一个脚本,该脚本可以部署给能够使用自己的凭据运行它的多个管理员。

但是,我从 mysql 收到拒绝访问错误。似乎认为我没有将用户名传递给 MySQL 命令:

使用这个脚本:

set dbUser = "myusername"
set dbPass = "mypassword"
mysql --username=$dbUser --password=$dbPass --database="mydbname" -e "SELECT * FROM sometable"

ERROR 1044 (42000): 拒绝用户 ''@'localhost' 访问数据库

奇怪的是,如果我直接在 MySQL 命令中输入 MySQL 用户名和密码并在 shell 脚本中运行它就可以正常工作。

mysql --username="myusername"--password="mypass" --database="mydbname" -e "SELECT * FROM sometable"

【问题讨论】:

    标签: mysql shell variables mysql-error-1044


    【解决方案1】:

    对于 bash... 你不想 -

    
    dbUser=myusername
    dbPass=mypassword
    mysql --username=$dbUser --password=$dbPass --database="mydbname" -e "SELECT * FROM sometable"
    

    【讨论】:

    • 这对我来说很尴尬,确实是问题所在!感谢您发现
    • 养成总是引用变量的习惯是个好主意,除非你特别想要省略引号的副作用:mysql --username="$dbUser" --password="$dbPass" ...
    猜你喜欢
    • 1970-01-01
    • 2011-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-17
    • 2020-10-02
    • 2013-10-22
    相关资源
    最近更新 更多