Назад | Перейти на главную страницу

Полностью застрял на новой инициализации mariadb-сервера

Новая установка 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).