Подтвердить что ты не робот

Mysqld: Невозможно изменить dir на данные. Сервер не запускается

Я установил сервер MySQL с установщиком, и он запустился. После перезагрузки я попытался запустить его снова и получить сообщение об ошибке:

D:\Program Files\MySQL\MySQL Server 5.7\bin>mysqld -u root -p
mysqld: Can't change dir to 'D:\Program Files\MySQL\MySQL Server 5.7\data\'     (Errcode: 2 - No such file or directory)
2015-11-17T08:30:18.822962Z 0 [Warning] TIMESTAMP with implicit DEFAULT     value is deprecated. Please use --explicit_defaults_for_timestamp server option     (see documentation for more details).
2015-11-17T08:30:18.822962Z 0 [Warning] Insecure configuration for --secure-    file    -priv: Current value does not restrict location of generated files.     Consider setting it to a valid, non-empty path.
2015-11-17T08:30:18.822962Z 0 [Note] mysqld (mysqld 5.7.9) starting as     process 1108 ...
2015-11-17T08:30:18.838586Z 0 [Warning] Can't create test file D:\Program     Files\MySQL\MySQL Server 5.7\data\DESKTOP-RNBR3E8.lower-test
2015-11-17T08:30:18.838586Z 0 [Warning] Can't create test file D:\Program     Files\MySQL\MySQL Server 5.7\data\DESKTOP-RNBR3E8.lower-test
2015-11-17T08:30:18.838586Z 0 [ERROR] failed to set datadir to D:\Program     Files\MySQL\MySQL Server 5.7\data\
2015-11-17T08:30:18.838586Z 0 [ERROR] Aborting


2015-11-17T08:30:18.838586Z 0 [Note] Binlog end
2015-11-17T08:30:18.838586Z 0 [Note] mysqld: Shutdown complete

Я попытался переустановить MySQL.
UPDATE:
Когда я запускаю mysqld -u root -p в качестве администратора, ничего не происходит.

4b9b3361

Ответ 1

Поскольку вы использовали установщик Windows, все настроено для запуска MySQL 5.7 в качестве службы Windows, что в большинстве случаев является отличным вариантом.

Вместо запуска mysqld.exe из командной строки

  • Win + R
  • Запустить services.msc
  • Щелкните правой кнопкой мыши MySQL57
  • Запустите службу.

Ответ 2

Я встретил ту же проблему. В моем случае у меня не было ..\data dir в моем C:\mysql\ поэтому я просто выполнил mysqld --initialize из mysqld --initialize c:\mysql\bin\ и я получил каталог данных в c:\mysql\data. После этого я мог использовать mysqld.exe --console для проверки запуска сервера.

Ответ 3

В моем случае я установил каталог данных в другое место. Таким образом, каталог данных действительно не был в местоположении по умолчанию. Поэтому, когда я запускал команду mysqld из командной строки, мне нужно было указать каталог данных вручную:

mysqld --datadir=D:/MySQLData/Data

Здесь приведена документация для аргументов командной строки mysqld.

Ответ 4

Что я сделал (Windows 10) для новой установки:

  • Запустите cmd в режиме администратора (запустите как администратор, нажав клавишу Windows, набрав cmd, щелкнув правой кнопкой мыши и выбрав "Запуск от имени администратора"

  • Перейдите в каталог "MySQL Server X.Y" (для меня полный путь: C:\Program Files\MySQL\MySQL Server 5.7 ")

  • используя блокнот, создайте my.ini с разделом mysqld, который указывает на ваш каталог данных

    [mysqld]
    datadir="X:\Your Directory Path and Name"
    
  • создал каталог, указанный в my.ini выше.

  • перейдите в каталог bin в каталоге сервера и выполните: mysqld --initialize

  • После завершения, запустил сервис, и все получилось нормально.

Ответ 5

  • Убедитесь, что режиссер существует.
  • Если он существует, убедитесь, что у mysql есть права доступа (чтение/запись). Может быть хорошей идеей запустить MySQL как системный процесс, но не обязательно.

Если это не работает, попробуйте использовать следующую запись с двойными косыми чертами: C:\WebSerer\MySQL\data или C:/WebServer/MySQL/data​​p >

Ответ 6

Первый забег

mysqld -u root --initialize-insecure 

Это создаст папку с данными пользователя root без пароля. Тогда беги

mysqld.exe -u root --console

Ответ 7

В mysql 8.0.13 zip пакет инициализируется.

  1. Убедитесь, что папка данных пуста.
  2. Под MySQL Бин путь запуска

    mysqld.exe --initialize-insecure

  3. Добавить к my.ini родной mysql

    [mysqld]

    default_authentication_plugin=mysql_native_password

Ответ 8

Проверьте реальное расположение файла my.ini и установите --defaults-file="location" с помощью этой команды

mysql --defaults-file="C:\MYSQL\my.ini" -u root -p

Это решение постоянно для вашего экрана cmd.

Ответ 9

удалите все файлы в каталоге "{path-to-mysql}\data" и выполните:

mysqld --initialize-insecure --basedir={path-to-mysql}\mysql --datadir={path-to-mysql}\data --console

Ответ 10

Если вы установили MySQL Server с помощью установщика Windows и в качестве службы Windows, то вы можете запустить MySQL Server с помощью PowerShell и почувствовать удобство, не выходя из командной строки.

Откройте PowerShell и выполните следующую команду:

Get-Service *sql*

Список служб MySQL будет извлечен и отображен. Выберите тот, который вы хотите, и выполните следующую команду, заменив имя службы на фактическое имя службы:

Start-Service -Name service-name

Готово. Чтобы проверить, запущена ли Get-Service *sql* снова запустите команду Get-Service *sql* и проверьте состояние службы.

Ответ 11

Мариоферт полностью решил это для меня, вот его шаги:

  1. Убедитесь, что каталог данных mysql пуст (перед тем как удалить его, сохраните файл err для своих записей).

  2. Под mysql bin путь запускается: mysqld.exe --initialize-insecure

  3. добавьте в my.ini (файл конфигурации mysql) следующее: [ТуздЫ] default_authentication_plugin = mysql_native_password

Затем проверьте службы (через диспетчер задач), чтобы убедиться, что MySql запущен, если нет - щелкните правой кнопкой мыши MySql и запустите его.

Я также отмечу, что если у вас нет файла конфигурации mysql в корзине mysql и вы не можете найти его через поиск Windows, вам нужно поискать его в C:\Program Data\Mysql\Заметьте, что он это может быть другое имя, отличное от my.ini, например шаблон, как здесь упоминает Heesu: Не могу найти my.ini(mysql 5.7) Просто найдите шаблон, который соответствует версии вашего mysql, с помощью команды mysql --version

Ответ 12

Когда я столкнулся с этой же ошибкой, я заметил, что файл конфигурации MySQL в "C:\Program Files\MySQL\MySQL Server X.Y \" изменился на my-default.ini

Я решил это с помощью

  1. Скопируйте my.ini из "C:\ProgramData\MySQL\MySQL Server X.Y\my.ini"
  2. Вставьте его в "C:\Program Files\MySQL\MySQL Server X.Y\my.ini"
  3. Перезапустите MySQL Server из services.msc

В файле .ini их часть гласит:

# On Windows you should keep this file in the installation directory 
# of your server (e.g. C:\Program Files\MySQL\MySQL Server X.Y). To
# make sure the server reads the config file use the startup option 
# "--defaults-file".