mysql - 授予 mysql 数据库权限时出现特殊字符问题

标签 mysql ubuntu terminal

我在尝试通过 t 为 mysql 用户授予数据库权限时遇到了一个问题。我认为这是因为数据库名称中的特殊字符。

这个正在工作:

/usr/bin/mysql -uroot -pXz5eaCqwvsT0pAr0gsf0tg1a -e "GRANT ALL PRIVILEGES ON dev_52000_nycny.* TO 'wp_j-5-1-5_nycny'@localhost"

那个不起作用:

/usr/bin/mysql -uroot -pXz5eaCqwvsT0pAr0gsf0tg1a -e "GRANT ALL PRIVILEGES ON dev_j-5-1-5_nycny.* TO 'wp_j-5-1-5_nycny'@localhost"

我尝试了几种组合,但没有成功:

/usr/bin/mysql -uroot -pXz5eaCqwvsT0pAr0gsf0tg1a -e "GRANT ALL PRIVILEGES ON 'dev_j-5-1-5_nycny'.* TO 'wp_j-5-1-5_nycny'@localhost"

/usr/bin/mysql -uroot -pXz5eaCqwvsT0pAr0gsf0tg1a -e "GRANT ALL PRIVILEGES ON dev_j\-5\-1\-5_nycny.* TO 'wp_j-5-1-5_nycny'@localhost"

/usr/bin/mysql -uroot -pXz5eaCqwvsT0pAr0gsf0tg1a -e "GRANT ALL PRIVILEGES ON 'dev_j\-5\-1\-5_nycny'.* TO 'wp_j-5-1-5_nycny'@localhost"

我应该做什么?

最佳答案

MySQL 使用反引号来引用包含特殊字符的数据库、表和列名称。请参阅When to use single quotes, double quotes, and backticks in MySQL

/usr/bin/mysql -uroot -pXz5eaCqwvsT0pAr0gsf0tg1a -e 'GRANT ALL PRIVILEGES ON `dev_j-5-1-5_nycny`.* TO "wp_j-5-1-5_nycny"@localhost`

确保在 -e 参数周围使用单引号,因为反引号在双引号字符串内时对 shell 具有特殊含义。我还将用户名周围的引号更改为双引号,以适应在整个查询周围使用单引号。

关于mysql - 授予 mysql 数据库权限时出现特殊字符问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39268419/

相关文章:

bash - 通过命令重定向终端标准输出

mysql - 在 mysql 字段中搜索

联系远程主机的 MySQL 源命令

php - 无法重新启动 php-fpm.service : Unit php-fpm. 找不到服务

linux - Docker:创建aufs挂载到/var/lib/docker/aufs/mnt/15396ee0f38d161382f104e11c94b6ca0efafe10f9952e1dfba4f548009fbe59-init时出错:参数无效

linux - 如何将标准输出写入带有颜色的文件?

mysql - Joomla 数据库导出问题

mysql - 从mysql批量插入非ascii varchar到redis

php - 带有 .htaccess 或 PHP 的动态子域页面

Java简单网络程序在Eclipse中运行,而不是在终端中运行