mysql을 재 설치시 설치가 안되는 문제가 여러번 발생했다.

삽질을 얼마나 한지 모르겠다.


mysql-server-5.5 버전기준이니 다른 버전이면 안 맞을 수 있다. 다른걸 찾아봐야지모 @''@ 데헷.




Web Search 결과,  단순 apt-get purge mysql-server 가 아니라,
기존의 폴더마저 삭제하는 용의 주도함이 필요했던 것 이었다.  ( 내가 이게 부족했던 거야 ... 후....하... )


그것도 모르고 ,,, 얼마나 많이 재설치를 많이 했는지 ...  소요 삽질 30분 가량  ... 슬펐다.


이 때, 아래와 같은 명령어  set 을 활용하면,  재설치에 성공한다.



sudo apt-get purge mysql-server

sudo apt-get purge mysql-common



sudo rm -rf /var/log/mysql

sudo rm -rf /var/log/mysql.*

sudo rm -rf /var/lib/mysql

sudo rm -rf /etc/mysql



sudo apt-get install mysql-server --fix-missing --fix-broken 




하지만!!!!!


재설치에 성공했다고 끝이 아니다. ( 니가 알던 MySQL이 아니야 )


쉽게 되는게 없는 건 필자도 지금 보는 사람도 알 것이다.


또 망할 문제들이 수두룩 하게 있다.


망할망할... 퉤퉤퉤 왜  IT는 삽질을 해야 지식을 얻고 그 지식을 곧바로 까먹고를 반복할까 
기록하자니 귀찮고 다시 찾는데 또 한참걸리고, 
그래서 내가! 정리해본다 >_<



내가 겪은 문제를 나열해 본다.


mysql daemon이 시작되지 않는 문제


ps -aux | grep mysql  을 통해 daemon이 살아있는지 확인 할 수 있다.  존재하지 않는다면 100% 설정을 잘못한 것이다.


가장 쉬운 첫 번째 해결방법은  권한 이다. 



/etc/mysql/my.conf  의 datadir 에 write 할 수 없는 권한이기 때문이다. 



기본 datadir 은  my.conf에 설정되어 있고,   /var/lib/mysql 이다.

먼저, 해당하는 권한 폴더를 chown -R mysql:mysql [datadir] 을 통해 해결 가능하다. 

chmod -R 755  [datadir] 도 같이 해주자. 
      
또 !!! 이건 정말 삽질로 알아낸건데, 권한을 변경해도 정상동작하지 않는다  크크크 권한은 사실 가장 쉬운 해법이 었드랬다.

그럼  왜냐 !!? 
비밀이다. 

사실은....비밀은 아니고, 
조금 귀찮겠지만,  문제를 해결하려면 로그를 봐야 한다. 
    
로그 위치는  var/log/mysql/error.log 이다.   내가 겪은 에러의 유형은 3가지다.



1. 권한이 없는 문제.

2. datadir을 재설정하고 재시작하는 방법을 몰랐기 때문...

3. 재부팅...



1번의 권한 문제야 위의 방법으로 해결하면 되고, 

재시작 문제는 아래와 같은 명령어를 때려 준다. ( 그냥 때려 , 계속 때려 ~~ )



새롭게 저장할 폴더의 권한을 mysql:mysql로 변경을 합니다.$ chown -R mysql:mysql /media/hdd/mysql

기존의 mysql폴더를 backup을 한 뒤에 생성한 mysql의 폴더를 기존의 mysql로 연결을 해줍니다.


sudo mv /var/lib/mysql /var/lib/mysql-old

ln -s [datadir] /var/lib/mysql


AppArmor에 datadir을 등록한 뒤에, apparmor profiles을 다시 로딩

sudo echo "alias /var/lib/mysql/ -> /your/new/datadir/," >> /etc/apparmor.d/tunables/alias

--> 이때 sudo 명령으로 동작하지 않으면 su 로 하면된다.  
근데 또 우분투 초짜들은 su를 하고 어려움을 겪지 ... 왜안되지??ㅋㅋ

안되는게 아니야 ... root의 비밀번호를 설정하지 않은 거지 ㅋㅋ


sudo passwd root 명령을 통해 비밀번호를 설정하고 다시 su를 통해 들어가서 sudo를 빼고 명령어를 때린다.

echo "alias /var/lib/mysql/ -> /your/new/datadir/," >> /etc/apparmor.d/tunables/alias


sudo /etc/init.d/apparmor reload

를 통해 변경된 datadir을 알려준다.


마지막으로 mysql서버를 재시작해준다. 


sudo /etc/init.d/mysql restart


자 이제 되야 해 ....이건 되야해 하면서

mysql -u root -p  엔터!!돻.


 Access denied for user 'root'@'localhost' 뙇.
뿌왉
뿌왉뿌왉뿌왉뿌왉뿌왉뿌왉뿌왉뿌왉뿌왉뿌왉뿌왉뿌왉뿌왉뿌왉뿌왉뿌왉뿌왉뿌왉뿌왉뿌왉뿌왉뿌왉뿌왉뿌왉뿌왉뿌왉뿌왉


이건 다음 포스팅에 계속 해보자.  빡침의 연속이네 이거 개빡...


아참 뭔가 잘안된다 싶으면 

sudo 




+ Recent posts