it-swarm.com.ru

Не удается открыть и заблокировать таблицы привилегий: таблица "mysql.user" не существует

Я установил сервер сообщества MySQL 5.7.10, используя двоичный Zip. Я извлек Zip в c:\mysql и создал папку данных в c:\mysql\data. Я создал файл конфигурации как my.ini и поместил его в c:\mysql (корневая папка распакованного Zip). Ниже приведено содержимое файла my.ini

# set basedir to your installation path
basedir=C:\mysql
# set datadir to the location of your data directory
datadir=C:\mysql\data

Я пытаюсь запустить MySQL, используя mysqld --console, но процесс прерывается с ошибкой ниже.

2015-12-29T18:04:01.141930Z 0 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
2015-12-29T18:04:01.141930Z 0 [ERROR] Aborting 

Любая помощь в этом будет оценена.

35
BValluri

Вы должны инициализировать каталог данных, выполнив следующую команду

mysqld --initialize[со случайным корневым паролем]

mysqld --initialize-insecure[с пустым корневым паролем]

57
anonymous

mysqld --initialize для инициализации каталога данных, затем mysqld &

Если вы уже запустили mysqld и без mysqld --initialize, возможно, вам придется удалить все файлы в вашем каталоге данных

Вы также можете изменить /etc/my.cnf, чтобы добавить собственный путь к вашему каталогу данных, например: 

[mysqld]
...  
datadir=/path/to/directory
3
Kenovo

На Maria DB вы используете mysql_install_db. В моем случае я использую переменную среды для пути к данным, что означает, что mysqld должен не только знать, где через командную строку, но и скрипт установки:

mysql_install_db --user=root --datadir=$db_datapath
2
Charlie

У меня такая же проблема. По какой-то причине --initialize не работал. Примерно через 5 часов проб и ошибок с различными параметрами, конфигами и командами я обнаружил, что проблема была вызвана файловой системой.

Я хотел запустить базу данных на большом жестком диске USB. Диски размером более 2 TB разделены на GPT! Вот отчет об ошибке с решением:

https://bugs.mysql.com/bug.php?id=28913

Вкратце: добавьте следующую строку в ваш my.ini:

innodb_flush_method=normal

У меня была эта проблема с MySQL 5.7 на Windows.

0
Gerfried

Как предложено выше, у меня была похожая проблема с mysql-5.7.18, 
я сделал это таким образом

1. Выполнил эту команду из "MYSQL_HOME\bin\mysqld.exe --initialize-insecure"
2. затем запустил "MYSQL_HOME\bin\mysqld.exe"
3. Подключите верстак к этому локальному узлу: 3306 с именем пользователя 'root'
4. затем выполнил этот запрос "SET PASSWORD FOR 'root' @ 'localhost' = 'root';"

пароль также был успешно обновлен.

0
Muthahir Nawaz