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
в качестве администратора, ничего не происходит.
Ответы
Ответ 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/datap >
Ответ 6
Первый забег
mysqld -u root --initialize-insecure
Это создаст папку с данными пользователя root без пароля. Тогда беги
mysqld.exe -u root --console
Ответ 7
В mysql 8.0.13 zip пакет инициализируется.
- Убедитесь, что папка данных пуста.
-
Под MySQL Бин путь запуска
mysqld.exe --initialize-insecure
-
Добавить к 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
Мариоферт полностью решил это для меня, вот его шаги:
Убедитесь, что каталог данных mysql пуст (перед тем как удалить его, сохраните файл err для своих записей).
Под mysql bin путь запускается:
mysqld.exe --initialize-insecure
добавьте в 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
Я решил это с помощью
- Скопируйте my.ini из "C:\ProgramData\MySQL\MySQL Server X.Y\my.ini"
- Вставьте его в "C:\Program Files\MySQL\MySQL Server X.Y\my.ini"
- Перезапустите 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".