mysql 数据库名有空格,脚本如何连?
有一个数据库名是:Cisco wifi info其中有一个表:connectMac
我在shell中需要写脚本连接这个表读取数据,但因为库名有空格,所以每次mysql都说没有选择表,因为是库名中的空格隔开,语句无法分析。
以下是我测试过的脚本语句:
我直接登录到远程mysql后,输入
use Cisco wifi info
错误信息:ERROR 1044 (42000): Access denied for user 'aaa'@'%' to database 'Cisco'
在shell脚本中
mysql -h$APhost -u$APuser -p$APsqlpw -e "select * from Cisco wifi info.connectMac" | sed 1d >$File
错误信息:ERROR 1046 (3D000) at line 1: No database selected
==============================================================
dataname="Cisco wifi info.connectMac"
mysql -h$APhost -u$APuser -p$APsqlpw -e "select * $dataname" | sed 1d >$File
错误信息:ERROR 1046 (3D000) at line 1: No database selected
这种情况要如何办? 本帖最后由 asdf2110 于 2015-03-13 14:15 编辑
数据库名用反单引号括起来,就是键盘上数字1前面那个符号echo "select count(*) from \`a b\`.t" | /opt/mastermysql/mysql/bin/mysql -u root -h 127.0.0.1 -P 3309 test/opt/mastermysql/mysql/bin/mysql -u root -h 127.0.0.1 -P 3309 -e "use \`a b\`;select count(*) from t"回复 1# smjordan
键盘上数字1前面那个符号单引号就是MySQL的QUOTED_IDENTIFIER
如果使用了单引号那么MySQL的关键字也可以作为表名和列名
每种数据库都会各自的QUOTED_IDENTIFIER符号,只是符号不一样,用途都是一样的 你还求职网络运维?
下面就有个京东的在招DBA啊“京东招聘资深MySQL DBA ”
回复 3# lyhabc
asdf2110
先谢谢你,我想继续待在广州,北京太远了,不过还是谢谢你 使用反单引号将库名包起来即可。
回复 1# smjordan
页:
[1]