MariaDB 10.4.10错误1146(42S02):表'mysql.user'不存在

时间:2019-12-21 05:15:48

标签: mysql macos mariadb homebrew

我了解到在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

1 个答案:

答案 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数据库中的所有其他内容突然突然出现并开始工作完全符合预期。