执行MySQL命令时,bash拒绝MySQL访问

时间:2014-03-07 22:14:17

标签: mysql bash shell unix

当我从bash脚本登录mysql时:

mysql --user="$USERNAME" --password="$PASSWORD" --database="$DATABASE" << EOF
# No command here
EOF;

我的用户登录到数据库,工作正常。但是当我的bash脚本做了像

这样简单的事情时
mysql --user="$USERNAME" --password="$PASSWORD" --database="$DATABASE" << EOF
show tables;
show columns from some_table;
...
# Now there are commands
EOF;

Mysql给了我这个错误:用户'user'@'localhost'访问被拒绝到数据库'database' 什么会导致这个?

为了澄清,我完全可以从命令行调用mysql -uUser -pPass database,登录,然后调用show tables;。它只在从bash脚本运行时,当该bash脚本包含mysql命令时,我的访问权限才会被拒绝。

此外,是否有一个简单易用的python / c ++库来处理mysql交互,并且不需要为了获取库而注册某些内容?

1 个答案:

答案 0 :(得分:1)

我总是使用-e标志在脚本中传递命令:

  mysql --user="$USERNAME" --password="$PASSWORD" --database="$DATABASE"  -e "show tables;"