2.3.13. 윈도우 환경에서 MySQL 설치 문제 해결
처음으로 MySQL을 설치하고 구동하면 아마도 여러 가지 에러가 발생할 수 있다. 이 섹션에서는 이러한 문제를 진단하고 에러를 해결하는 방법을 설명하기로 한다.
에러를 바로 잡기 위해 사용할 수 있는 첫 자료는 에러 로그이다. MySQL 서버는 에러 로그를 사용해서 서버 구동에 문제를 일으키는 에러를 기록한다. 에러 로그는 my.ini가 지정하는 데이터 디렉토리 안에 있다. 디폴트 디렉토리 위치는 C:\Program Files\MySQL\MySQL Server 5.0\data이다.
가능한 에러에 관련된 또 다른 정보는 MySQL서비스 시작될 때 콘솔에서 보여지는 메시지이다. MySQL서버를 서비스 형태로 시작하는 것에 해당하는 에러 메시지를 보기 위해서는, mysqld를 서비스의 형태로 설치한 후에 NET START mysql 명령어를 사용한다.
아래의 예제에서는 처음으로 MySQL을 설치하고 구동 시킬 때 겪을 수 있는 일반적인 에러 메시지를 보여준다:
MySQL서버가 mysql 권한 데이터 베이스 또는 다른 중요 파일을 찾지 못한다면, 아래의 에러 메시지가 나타난다:
System error 1067 has occurred.
Fatal error: Can't open privilege tables: Table 'mysql.host' doesn't exist
이러한 메시지는 MySQL의 기본 또는 데이터 디렉토리가 디폴트 디렉토리가 아닌 곳에 설치 되어 있을 경우에 종종 발생한다 (C:\Program Files\MySQL\MySQL Server 5.0 및 C:\Program Files\MySQL\MySQL Server 5.0\data).
이와 같은 경우는 MySQL이 새로운 위치에 업그레이드 또는 설치는 되지만, 구성 파일이 새로운 위치를 반영하지 않을 경우에도 발생할 수 있다. 또한, 구형 구성 파일과 새로운 구성 파일이 서로 충돌을 일으킬 경우에도 발생한다. MySQL을 업그레이들 할 때에는 반드시 구형 구성 파일을 삭제하거나 다른 이름으로 저장을 해 두어야 한다는 점을 유의한다.
MySQL을 C:\Program Files\MySQL\MySQL Server 5.0이 아닌 다른 곳에 설치를 했다면, MySQL이 구성 (my.ini) 파일을 통해 이 위치를 알 수 있게끔 해야 한다. my.ini 파일은 윈도우 디렉토리에 두어야 하는데, 일반적으로는 C:\WINDOWS 또는 C:\WINNT가 된다. 명령어 프롬프트에서 아래의 명령어를 입력하면 WINDIR 환경 변수 값으로부터 정확한 위치를 알아낼 수 있다:
C:\> echo %WINDIR%
노트 패드와 같은 텍스트 편집기를 사용해서 옵션 파일을 작성 및 수정할 수도 있다. 예를 들면, MySQL이 E:\mysql에 설치되었고 데이터 디렉토리가 D:\MySQLdata라면, 옵션 파일을 생성하고 [mysqld] 섹션이 basedir과 datadir 파라미터 값을 지정하도록 설정할 수 있다:
[mysqld]
# set basedir to your installation path
basedir=E:/mysql
# set datadir to the location of your data directory
datadir=D:/MySQLdata
윈도우 파라미터는 옵션 파일에서 백슬레쉬가 아닌 슬레쉬를 사용해서 경로를 지정한다는 점을 유의하자. 백슬레쉬를 사용하는 경우에는 두 번 연속 사용한다:
[mysqld]
# set basedir to your installation path
basedir=C:\\Program Files\\MySQL\\MySQL Server 5.1
# set datadir to the location of your data directory
datadir=D:\\MySQLdata
MySQL 구성 파일에 있는 datadir 값을 변경하고자 한다면, 서버를 재 구동하기 전에 반드시 기존 데이터 디렉토리에 있는 모든 내용을 옮겨 놓아야 한다.
기존 MySQL서비스를 중단 및 제거하지 않고 MySQL을 재 설치 또는 업그레이드 하고, 그 다음에 MySQL구성 마법사를 사용해서 MySQL을 설치한다면, 다음과 같은 에러가 나올 수 있다:
Error: Cannot create Windows service for MySql. Error: 0
이것은 구성 마법사가 서비스 설치를 시도하면서 동일한 이름을 가진 기존의 서비스를 찾는 경우에 발생한다.
이 문제를 해결하는 한 가지 방법은, 구성 마법사를 사용할 때 서비스 이름을 mysql이 아닌 다른 이름을 사용하는 것이다. 이것은 새로운 서비스가 정확히 설치 되도록 해 주지만, 대신에 이전의 서비스를 남기게 된다. 비록 이렇게 하는 것이 시스템에는 무해할 지라도, 더 이상 사용하지 않는 이전 서비스는 삭제하는 것이 더욱 바람직하다.
구형 mysql 서비스를 영원히 삭제하기 위해서는, 명령어 라인에서 관리자 권한 사용자 자격으로 아래의 명령어를 실행한다:
C:\> sc delete mysql
[SC] DeleteService SUCCESS
윈도우 버전에서 sc를 사용할 수 없다면, delsrv 유틸리티를 http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/delsrv-o.asp에서 다운 로드 받은 후에 delsrv mysql 신텍스를 사용하도록 한다.
[출처] ::: MySQL Korea ::: - http://www.mysqlkorea.co.kr/
MySQL Korea 사이트의 컨텐츠 소유권은 (주)아이티브릿지에 있으므로
허락 없이 이를 무단전재 하는 경우 저작권법에 민형사적 책임을 지게 되므로
절대 무단 사용을 금해 주시기 바 랍니다
MySQL Korea 저작권 공지 : http://www.mysqlkorea.co.kr/sub.html?mcode=others&scode=04