我尝试在我的系统 (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
无论出于什么原因,mariadb
Manjaro 默认将数据库安装到./data
而不是/var/lib/mysql
,无论运行它的用户是谁。
另一天我mariadb
在 Mint 上安装了服务器,它做了同样的事情,默认在系统范围内安装数据库。在 Manjaro 上,你必须指定--datadir=/var/lib/mysql
在默认系统位置而不是当前目录中安装数据库。