728x90

MySQL을 한 컴퓨터에서 두개의 서버를 돌리는 일이 존재할까?

경우에 따라 다르게 들리겟지만 사실 서버를 여러개(두개 이상) 돌리는 일은 흔치 않다.

그러나 경우에 따라서 돌리는 일이 없는 것은 아니다.

예를들어 한 컴퓨터를 복수의 사람이 사용하는 경우, 혹은 다른 버전의 MySQL을 돌리고 싶은 경우이다.

MySQL을 하나를 쓰되 DB를 여러개 쓰면 되지 않나? 할 수 있다.

그러나 서버의 설정을 비롯한 여러가지를 완전 다르게 쓰고싶다면 어쩔 수 없는 경우가 있다.

이 경우의 해답을 보도록 하자.


일단 여러분이 두개의 서버를 돌리려면 MySQL이 두개의 파일이어야한다.

그 이유는 MySQL의 설정파일인 my.cnf(윈도우에서는 my.ini) + MySQL 경로 + MySQL 서비스

이 세가지로 MySQL 서비스가 이루어져있는데 이 세가지가 완전히 달라야한다.

따라서 기존의 MySQL의 폴더를 복사하자



먼저 할일은 실행시킬 mysql 파일을 두개 만드는 것이다.

하지만 이걸로 끝나지 않는다. mysql의 데이터는 다른 경로에 따로 저장되어있다.

걔까지 찾아서 두개를 만든다.



경로의 위치는 알아서 본인이 찾아라. 이렇게 MySQL 실행 파일경로와 데이터 파일 경로 두개를 모두 복사해준다.



이제 my.cnf(my.ini)를 수정한다.



기존에 받은 경로는 필자의 경우이렇다. 조금 손을 봐줘야하는데

basedir,datadir은 필수적으로 바꾸고 port역시 바꿔준다.



이렇게 바꿔주고 나면 파일 경로에서 터미널을 연다.



보통의 경우 mysql을 설치하고 환경설정이 설치되므로 일반적으로 아무 경로에서 mysqld를 실행하면 기존의 mysql이 실행된다.

따라서 이 경로로가서 mysqld를 실행해야 올바르다.


(sudo) mysqld --install <mysql 서비스 명>


sudo가 안 깔려있으면 그냥 관리자 권한으로 실행하면된다.



그다음 일반적으로 실행하는 방법으로 실행하면 된다.


(sudo) net start <mysql 서비스 명>


이제 둘을 실행시켜보자.



위의 경우 기존의 mysql 아래는 새로운 mysql이다.

당연하지만 환경변수가 등록되어 있으므로 새로운 mysql은 해당 경로에서 열어줘야한다.

귀찮다면 새로 환경변수를 등록해주면된다.


보다시피 완전 똑같은데 해당 mysql을 복사해서 그렇다.

그럼 둘이 완전똑같은지 테스트해보자.



보다시피 위에서는 새로 db가 만든게 적용되고 아래는 적용되지 않는다.

즉 둘은 동일하지 않은 개체라는 것을 알 수 있다.




+ Recent posts