Новая установка mariadb-server
5.5.38 по FreeBSD 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
для запуска 5.5.38 на FreeBSD 10.0-RELEASE-p5 amd64
вы должны указать: user, datadir и basedir. После mysql_install_db
закончен, mysqld
найдет базы и каталоги данных без посторонней помощи. например.:
mysql_install_db --user=mysql --basedir=/usr/local --datadir=/var/db/mysql
Также обратите внимание, что =
символы для параметров обязательны; но если они забыты, сообщение об ошибке отсутствует.
Все, что я могу найти, говорит о том, что host.frm должен быть сначала создан в datadir.
Все, что вам подсказывало, совершенно неверно. Системные таблицы создаются при запуске mysql_install_db
.
Официальные документы MariaDB: Установка системных таблиц (mysql_install_db).