"ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'"의 두 판 사이의 차이

1번째 줄: 1번째 줄:
{{테스트|페도라 16, xampp-linux-1.7.7}}
{{테스트|페도라 16, xampp-linux-1.7.7}}


==문제상황==
==문제상황 1: MySQL 설치 후==
*MySQL 설치 후, mysql 명령어로는 접속이 안되는 현상
*MySQL 설치 후, mysql 명령어로는 접속이 안되는 현상
<source lang='dos'>
<source lang='dos'>
[root@jmnote ~]# mysql
[root@jmnote ~]# mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
</source>
*XAMPP 설치 후, 웹으로 볼 때는 잘 되는데 쉘에서 실행할 때는 mysql_connect가 되지 않는 현상
<source lang='dos'>
[root@jmnote ~]# php update_0.php
PHP Warning:  mysql_connect(): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /root/update_0.php on line 2
</source>
</source>



2013년 6월 27일 (목) 00:15 판

1 문제상황 1: MySQL 설치 후

  • MySQL 설치 후, mysql 명령어로는 접속이 안되는 현상
[root@jmnote ~]# mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

2 점검

  • mysql.sock의 위치를 확인
[root@jmnote ~]# find / -name mysql.sock
/opt/lampp/var/mysql/mysql.sock
[root@jmnote ~]# netstat -an | grep mysql
unix  2      [ ACC ]     STREAM     LISTENING     780037 /opt/lampp/var/mysql/mysql.sock
  • php.ini의 위치를 확인
[root@jmnote ~]# find / -name php.ini
/etc/php.ini
/opt/lampp/etc/php.ini

3 원인

  • 위에서 보듯이 php.ini가 2개 있다. 즉 이 서버에는 php가 2개 있다.
  • /opt/lampp/etc/php.ini에서는 /opt/lampp/var/mysql/mysql.sock로, /etc/php.ini에는 /var/lib/mysql/mysql.sock로 설정되어 있다.
  • 맨 위 현상에서 보듯이 lampp(XAMPP)에서 제공하지 않는 php가 구동되고 있다.

4 해결 방법

  • 해결 방법은 다음 2가지로 생각할 수 있다. XAMPP가 제공하는 php를 사용하든가, 위에서 사용했던 php가 찾는 /var/lib/mysql/mysql.sock를 /opt/lampp/var/mysql/mysql.sock로 심볼릭 링크를 걸어주는 방법이다.

4.1 방법 1

  • XAMPP가 제공하는 php를 사용.
[root@jmnote ~]# /opt/lampp/bin/php update_0.php

4.2 방법 2

  • /var/lib/mysql/ 디렉토리를 생성
  • mysql.sock 심볼릭 링크 설정
[root@jmnote ~]# mkdir /var/lib/mysql/
[root@jmnote ~]# ln -s /opt/lampp/var/mysql/mysql.sock /var/lib/mysql/mysql.sock
[root@jmnote ~]# ll /var/lib/mysql
total 0
lrwxrwxrwx 1 root root 31 Feb  3 15:51 mysql.sock -> /opt/lampp/var/mysql/mysql.sock
[root@jmnote ~]# php update_0.php

5 같이 보기

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}