当我从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交互,并且不需要为了获取库而注册某些内容?
答案 0 :(得分:1)
我总是使用-e
标志在脚本中传递命令:
mysql --user="$USERNAME" --password="$PASSWORD" --database="$DATABASE" -e "show tables;"