我了解到在MariaDB 10.4.1中,mysql.user表已替换为mysql.global_priv表。 The documentation说“ mysql.user现在是一个视图”。当我使用套接字连接以root用户身份登录到全新安装(在OS X上使用Homebrew)时,看不到此视图。这导致我的GUI(续集专业版)无法正常工作。我是否错过了创建此向后兼容视图的设置步骤?
MariaDB [(none)]> select * from mysql.user;
ERROR 1146 (42S02): Table 'mysql.user' doesn't exist
答案 0 :(得分:0)
这可能是导致您问题的原因,也可能不是,但是它只是为我解决了问题-尽管我认为我已经前后检查过,但这仍然是权限问题。
就我而言,不仅mysql.user
被报告为丢失,而且mysql.columns_priv
也被报告为丢失(当我尝试刷新特权时)。我可以use mysql
很好,但是之后show tables
给了我以下错误:
错误1018(HY000):无法读取'./mysql/'的目录(错误号:13“权限被拒绝”)
这对我而言并不立即有意义,但这显然意味着MariaDB服务器使用的mysql
用户无法读取_mysql
数据目录。
我将MariaDB作为Homebrew服务运行,因此我查看了MariaDB MXCL plist文件(位于您的Homebrew Cellar文件夹中;对我来说是/usr/local/Cellar/mariadb/10.4.10_1/homebrew.mxcl.mariadb.plist
):在键ProgramArguments
下,应该是--datadir
参数,它指定MariaDB用于存储数据的目录。我的是/usr/local/var/mysql
,我猜这是标准的。
就我而言,我以前有一个常规的(即非MariaDB)MySQL 5.6安装,该安装使用了相同的数据目录,这可能是罪魁祸首–当我查看该目录的权限时,它是由我自己的用户拥有,而_mysql
用户仅具有读取权限。
我一经授予_mysql
对该文件夹的读写权限,瞧瞧,我的mysql.user
视图以及mysql
数据库中的所有其他内容突然突然出现并开始工作完全符合预期。