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을 다시 설치하려고했습니다.
업데이트 : 관리자로
실행하면 mysqld -u root -p
아무 일도 일어나지 않습니다.
Windows 설치 프로그램을 사용했기 때문에 MySQL 5.7을 Windows 서비스로 실행할 수 있도록 모든 것이 설정되어 있으며, 이는 대부분의 경우 훌륭한 옵션입니다.
mysqld.exe
명령 줄에서 실행하는 대신
Win + R
- 운영
services.msc
- 오른쪽 클릭
MySQL57
- 서비스를 시작하십시오.
나는 같은 문제를 만났다. 제 경우에는 ..\data
디렉토리 가 없었으므로 디렉토리에서 명령을 C:\mysql\
실행 하고 . 나중에 명령을 사용하여 서버 시작을 테스트 할 수 있습니다 .mysqld --initialize
c:\mysql\bin\
c:\mysql\data
mysqld.exe --console
제 경우에는 데이터 디렉토리를 다른 위치에 설치했습니다. 따라서 데이터 디렉토리는 실제로 기본 위치에 없었습니다. 따라서 mysqld
명령 프롬프트에서 명령을 실행할 때 데이터 디렉터리를 수동으로 지정해야했습니다.
mysqld --datadir=D:/MySQLData/Data
새 설치를 위해 내가 한 작업 (Windows 10) :
관리자 모드에서 cmd를 시작합니다 (Windows 키를 누르고 cmd를 입력 한 다음 마우스 오른쪽 단추로 클릭하고 "관리자 권한으로 실행"을 선택하여 관리자 권한으로 실행).
"MySQL Server XY"디렉토리로 변경합니다 (전체 경로는 C : \ Program Files \ MySQL \ MySQL Server 5.7 ").
메모장을 사용하여 데이터 디렉토리를 가리키는 mysqld 섹션으로 my.ini를 만듭니다.
[mysqld] datadir="X:\Your Directory Path and Name"
위의 my.ini에서 식별 된 디렉토리를 생성했습니다.
서버 디렉토리 아래의 bin 디렉토리로 변경하고 다음을 실행하십시오.
mysqld --initialize
완료되면 서비스를 시작하고 정상적으로 작동했습니다.
- 감독이 있는지 확인하십시오.
- 존재하는 경우 mysql에 대한 액세스 권한 (읽기 / 쓰기)이 있는지 확인하십시오. MySQL을 시스템 프로세스로 실행하는 것이 좋지만 필수는 아닙니다.
이것이 작동하지 않는 경우 이중 슬래시로 다음 표기법을 사용해보십시오. C : \ WebSerer \ MySQL \ data 또는 C : / WebServer / MySQL / data
첫 실행
mysqld -u root --initialize-insecure
암호없이 사용자로 루트를 사용하여 데이터 폴더를 생성합니다. 그런 다음 실행
mysqld.exe -u root --console
mysql 8.0.13 zip 패키지 초기화 중.
- 데이터 폴더가 비어 있는지 확인하십시오.
mysql bin 경로에서 실행
mysqld.exe --initialize-insecure
my.ini 네이티브 mysql에 추가
[mysqld]
default_authentication_plugin=mysql_native_password
실제 my.ini
파일 위치를 확인 --defaults-file="location"
하고이 명령으로 설정 하십시오.
mysql --defaults-file="C:\MYSQL\my.ini" -u root -p
이 솔루션은 cmd 화면에 영구적입니다.
"{path-to-mysql} \ data"디렉토리의 모든 파일을 제거하고 다음을 실행하십시오.
mysqld --initialize-insecure --basedir={path-to-mysql}\mysql --datadir={path-to-mysql}\data --console
If you installed MySQL Server using the Windows installer and as a Window's service, then you can start MySQL Server using PowerShell and experience the convenience of not leaving the command line.
Open PowerShell and run the following command:
Get-Service *sql*
A list of MySQL services will be retrieved and displayed. Choose the one that you want and run the following command while replacing service-name with the actual service name:
Start-Service -Name service-name
Done. You can check that the service is running by running the command Get-Service *sql*
again and checking the status of the service.
mariofertc completely solved this for me here are his steps:
Verify mysql's data directory is empty (before you delete it though, save the err file for your records).
Under the mysql bin path run: mysqld.exe --initialize-insecure
add to my.ini (mysql's configuration file) the following: [mysqld] default_authentication_plugin=mysql_native_password
Then check services (via task manager) to make sure MySql is running, if not - right click MySql and start it.
I'll also note, if you don't have your mysql configuration file in the mysql bin and can't find it via the windows search, you will want to look for it in C:\Program Data\Mysql\ Note that it might be a different name other than my.ini, like a template, as Heesu mentions here: Can't find my.ini (mysql 5.7) Just find the template that matches the version of your mysql via the command mysql --version
When I encountered this same error, I noticed MySQL Configuration file in "C:\Program Files\MySQL\MySQL Server X.Y\" has changed to my-default.ini
I solved it by
- Copy my.ini from "C:\ProgramData\MySQL\MySQL Server X.Y\my.ini"
- Paste it in "C:\Program Files\MySQL\MySQL Server X.Y\my.ini"
- Restart MySQL Server from services.msc
In the .ini file, their is part that reads:
# 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".
참고URL : https://stackoverflow.com/questions/33752407/mysqld-cant-change-dir-to-data-server-doesnt-start
'IT TIP' 카테고리의 다른 글
TempData keep () 대 peek () (0) | 2020.12.02 |
---|---|
CSS를 비동기 적으로로드하는 방법 (0) | 2020.12.02 |
Eloquent ORM laravel 5 ID 배열 가져 오기 (0) | 2020.12.02 |
Laravel 5.2-Eloquent 테이블에 대한 사용자 지정 기본 키로 문자열 사용이 0이 됨 (0) | 2020.12.02 |
열을 외래 키로 추가하면 외래 키 제약 조건에서 참조 된 ERROR 열이 존재하지 않습니다. (0) | 2020.12.02 |