在shell脚本中使用mysql\u config\u编辑器
我很难理解为什么这一行在命令行中工作:在shell脚本中使用mysql\u config\u编辑器,mysql,linux,bash,shell,Mysql,Linux,Bash,Shell,我很难理解为什么这一行在命令行中工作: mysql --login-path=local 我像预期的那样得到典型的mysql>提示 但是,当我在shell脚本中使用以下内容时: #!/bin/bash mysql --login-path=local -e "SELECT contractor FROM contractor" | while read contractor; do echo "Contractor: $contractor" done 这就是我尝试运行该小脚本时发生
mysql --login-path=local
我像预期的那样得到典型的mysql>提示
但是,当我在shell脚本中使用以下内容时:
#!/bin/bash
mysql --login-path=local -e "SELECT contractor FROM contractor" | while read contractor; do
echo "Contractor: $contractor"
done
这就是我尝试运行该小脚本时发生的情况:
#!/bin/bash
mysql --login-path=local -e "SELECT contractor FROM contractor" | while read contractor; do
echo "Contractor: $contractor"
done
zak@yserver:$sh承包商。sh
错误1045(28000):用户“zak”@“localhost”的访问被拒绝(使用密码:否)
问题是,当我设置local
时,我使用了root
用户(我知道这是个坏主意——但这只是一个概念证明而不是产品),如下所示:
从我所读到的内容来看,我正确地使用了它——它在命令行上工作。。只是不在我的shell脚本中——我的语法有问题吗
经过深思熟虑——我很难理解为什么1)它使用zak
用户名——2)它使用密码NO
——当我清楚地将用户名设置为root
,并在提示符下输入密码时
更新
如果我使用bash
而不是sh
——IE,它也会失败
zak@yserver:$bash contractors.sh
错误1045(28000):用户“zak”@“localhost”的访问被拒绝(使用密码:否)
您是否从运行交互式mysql
的同一用户处运行脚本?它在当前用户的.mylogin.cnf
文件中查找。我使用的是同一个用户--zak@