본문
Cannot create Windows service for MySQL. Error: 0 문제 해결하기
[그림 1, 2, 3] Cannot create Windows service for MySQL. Error: 0, sc delete mysql으로 해결할 수 있다.
mysql 서버를 설치한 상태에서 rwapm(번거로운 설치과정이 없어서 유용하게 사용한다)을 설치하고, rwapm을 지운 후 mysql을 다시 설정(설치)하려는데(-_-) 'Cannot create Windows service for MySQL. Error: 0' 오류가 발생하였다. mysql 매뉴얼에 다음과 같이 원인이 설명되어있다.
이것은 구성 마법사가 서비스 설치를 시도하면서 동일한 이름을 가진 기존의 서비스를 찾는 경우에 발생한다.
이 문제를 해결하는 한 가지 방법은, 구성 마법사를 사용할 때 서비스 이름을 mysql이 아닌 다른 이름을 사용하는 것이다. 이것은 새로운 서비스가 정확히 설치 되도록 해 주지만, 대신에 이전의 서비스를 남기게 된다. 비록 이렇게 하는 것이 시스템에는 무해할 지라도, 더 이상 사용하지 않는 이전의 서비스는 삭제하는 것이 더욱 바람직하다.
이는 rwapm의 mysql install/uninstall 명령에서 원인과 해결책을 찾을 수 있다. MYSQL-install.bat에 보면 sc stop MYSQL > nul
sc delete MYSQL > nul 으로 기존의 서비스를 임의로 삭제하고 설치하는 반면, MYSQL-uninstall.bat 에서는 net stop MYSQL으로 서비스를 중지하는데 그치기 때문이다. 따라서 'sc delete MYSQL' 명령을 사용하여(관리자 권한으로 실행해야 한다) 서비스를 제거한 후 bin/MySQLInstanceConfig.exe (Configuration Wizard)으로 설치를 계속한다. 또는, 설치과정에서 mysql5 등으로 기존 mysql 서비스명과 중복되지 않도록 할 수 있으며 이 편이 서버를 여러개 사용하는데 더욱 편리하게 관리할 수 있다. .
또한 mysql을 제거했더라도 기존의 데이터가 남아있는 경우 [그림 1]의 Apply security settings 과정에서 한참동안 멈춰있다가 [그림 3]의 Error Number 1045. Access denied for user 'root'@'localhost' (using password:NO) 오류를 발견하는데, 이는 기존의 데이터베이스 정보가 남아있는 상태에서 새로운 root 정보로 다시 설치하고자 하는 경우에 나타난다. 기본적으로 C:\ProgramData\MySQL\MySQL Server 5.5\data\mysql\의 user.MYD 에 계정정보가 저장되며, 이런 경우에는 설치 과정에서 root 설정을 무시하고 설치를 진행한 후 나중에 기존 데이터를 재활용하거나 혹은 모든 기존파일을 제거한 후 새로 설치하는 방법이 있다.
mysql 설치 폴더의 my.ini의 파일을 살펴보면 아래와 같이 두 폴더의 위치가 지정되어 있는데, 이 폴더를 제거하면 처음부터 다시설치할 수 있다. (ProgramData폴더는 숨김설정되어있으므로 숨김해제를 하여 확인한다)
basedir="C:/Program Files (x86)/MySQL/MySQL Server 5.5/"
datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
댓글