删除 /var/lib/mysql 后无法安装 MariaDB,因为 mysql.user 存在

删除 /var/lib/mysql 后无法安装 MariaDB,因为 mysql.user 存在

我尝试在我的系统 (Manjaro) 上安装 MariaDB,但安装后mariadb-install-db无法运行服务。我认为这是因为我运行命令时没有 root 权限(我很惊讶它甚至以非特权用户身份运行),但在删除 /var/lib/mysql 中的所有内容后,我无法mariadb-install-db再运行,因为存在一个表 mysql.user。命令提示运行mariadb-upgrade,但失败了,因为它需要一个正在运行的服务器 - 如果不先安装它,我就无法获得正在运行的服务器。

我尝试使用--force标志但似乎没有任何作用。

手动删除 /var/lib/mysql 后如何强制mariadb-install-db运行?如果 datadir 为空,怎么会有一个表已经存在?

答案1

无论出于什么原因,mariadbManjaro 默认将数据库安装到./data而不是/var/lib/mysql,无论运行它的用户是谁。

另一天我mariadb在 Mint 上安装了服务器,它做了同样的事情,默认在系统范围内安装数据库。在 Manjaro 上,你必须指定--datadir=/var/lib/mysql在默认系统位置而不是当前目录中安装数据库。

相关内容