新安装的mariadb-server
5.5.38FreeBSD 10.0-RELEASE-p5 amd64
拒绝启动。
目前拒绝启动这个原因:
140808 14:12:28 [ERROR] mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
140808 14:12:28 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
140808 14:12:28 [Note] Server socket created on IP: '::'.
140808 14:12:28 [ERROR] mysqld: Can't find file: './mysql/host.frm' (errno: 13)
140808 14:12:28 [ERROR] Fatal error: Can't open and lock privilege tables: Can't find file: './mysql/host.frm' (errno: 13)
140808 14:12:28 mysqld_safe mysqld from pid file /var/db/mysql/milicent.ericx.net.pid ended
而且,当然,引用的mysql_upgrade
拒绝运行,因为服务器没有运行(所以我plugin.frm
暂时忽略错误)。
我能找到的一切都表明host.frm
应该首先在datadir
. 显然mysqld
明白这一点datadir=./mysql
。尽管/usr/local/etc/my.cnf
指定datadir
:
[mysqld]
datadir=/var/db/mysql
而且我datadir=/var/db/mysql
也在命令行上指定。
/var/db/mysql
由mysql:mysql
愉快地创建750
子目录和.mysqld
mysql
test
还可以如何指定路径host.frm
?
我可以手工制作文件吗?(即它是一个文本文件吗?)
运行mysql_install_db --user mysql --datadir /var/db/mysql
失败并出现同样的错误。
--update:我什至尝试从/var/db
目录启动服务器以消除相对路径./mysql
;但这仍然失败。所以相对路径起点不是程序运行的目录。
无论对你提出什么建议都是完全错误的。运行时会创建系统表
mysql_install_db
。MariaDB 官方文档: 安装系统表(mysql_install_db)。
为了在
mysql_install_db
5.5.38 上运行,FreeBSD 10.0-RELEASE-p5 amd64
您必须提供:user、datadir 和 basedir。完成mysql_install_db
后,mysqld
将在没有帮助的情况下找到基本目录和数据目录。例如:另请注意,
=
参数的字符是必需的;但如果它们被遗忘,则不会出现错误消息。