记录
MySQL
的常见技术问题和处理办法
多个库使用通配符授权
比如有一批分库,是 user_001,user_002....user_xxx
这样有一定规律的一批库。
如何授权某个账户可以访问,而又避免直接使用*
开放所有权限呢?
使用通配符就可以实现,只授权user_
开头的库。
语句中的关键点是**反单引号**
,不加上这个会报错。
GRANT SELECT ON `user_%`.* TO 'dev'@'%'
MySQL 授权报错分析
代码语言:javascript复制mysql> GRANT SELECT ON *.* TO 'dev_raedonly'@'%';
ERROR 1410 (42000): You are not allowed to create a user with GRANT
查一下资料,就很快能发现,新版的MySQL
取消了这个隐式创建账号。相当于之前MySQL可以GRANT时,自动创建账号。现在必须显式创建账号了。
但也并非只有上面这个原因,比如明确的知道账号已经创建过,那就应该检查用户名是否拼写错误。比如上面的raedonly
就是拼写错误。