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

잔글 (봇: 자동으로 텍스트 교체 (-source +syntaxhighlight))
 
(사용자 2명의 중간 판 35개는 보이지 않습니다)
1번째 줄: 1번째 줄:
{{테스트|리눅스, xampp-linux-1.7.7}}
{{테스트|페도라 16, xampp-linux-1.7.7}}


==문제상황==
==문제상황 1: MySQL 설치 후==
<source lang='dos'>
{{참고|리눅스 MySQL 설치}}
[root@jmnote ~]# php -f update_0.php
*MySQL 설치 후, mysql 명령어로는 접속이 안되는 현상
<syntaxhighlight lang='console'>
[root@zetawiki ~]# mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
</syntaxhighlight>
<syntaxhighlight lang='console'>
[root@zetawiki ~]# find / -name mysql.sock
</syntaxhighlight>
:→ mysql.sock이 없다.
 
===상황 1: MySQL 클라이언트만 설치됨===
*mysql-server 설치 확인
<syntaxhighlight lang='console'>
[root@zetawiki ~]# rpm -qa | grep ^mysql
mysql-5.1.69-1.el6_4.x86_64
mysql-libs-5.1.69-1.el6_4.x86_64
</syntaxhighlight>
:→ mysql-server 패키지(서버)가 설치되어야 하는데, mysql 패키지(클라이언트)만 설치되어 있다.
 
;해결방법
*다음 명령어로 mysql-server 패키지를 설치하자.
<syntaxhighlight lang='bash'>
yum install mysql-server
</syntaxhighlight>
 
===상황 2: mysqld가 시작되지 않음===
<syntaxhighlight lang='console'>
[root@zetawiki ~]#  rpm -qa | grep ^mysql
mysql-5.1.69-1.el6_4.x86_64
mysql-libs-5.1.69-1.el6_4.x86_64
mysql-server-5.1.69-1.el6_4.x86_64
</syntaxhighlight>
:→ mysql-server가 설치되어 있다.
 
<syntaxhighlight lang='console'>
[root@zetawiki ~]# service mysqld status
mysqld is stopped
</syntaxhighlight>
:→ mysqld 가 중지되어 있다.
 
다음 명령어로 실행하면 된다.
<syntaxhighlight lang='bash'>
service mysqld start
</syntaxhighlight>
 
==문제상황 2: XAMPP 설치 후==
*XAMPP 설치 후, 웹으로 볼 때는 잘 되는데 쉘에서 실행할 때는 mysql_connect가 되지 않는 현상
<syntaxhighlight lang='console'>
[root@zetawiki ~]# 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
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>
</syntaxhighlight>


==확인==
===확인===
*mysql.sock의 위치를 확인
*mysql.sock의 위치를 확인
<source lang='dos'>
<syntaxhighlight lang='console'>
[root@jmnote ~]# find / -name mysql.sock
[root@zetawiki ~]# find / -name mysql.sock
/opt/lampp/var/mysql/mysql.sock
/opt/lampp/var/mysql/mysql.sock
[root@jmnote ~]# netstat -an | grep mysql
[root@zetawiki ~]# netstat -an | grep mysql
unix  2      [ ACC ]    STREAM    LISTENING    780037 /opt/lampp/var/mysql/mysql.sock
unix  2      [ ACC ]    STREAM    LISTENING    780037 /opt/lampp/var/mysql/mysql.sock
[root@jmnote ~]# find / -name php.ini
</syntaxhighlight>
 
*php.ini의 위치를 확인
<syntaxhighlight lang='console'>
[root@zetawiki ~]# find / -name php.ini
/etc/php.ini
/etc/php.ini
/opt/lampp/etc/php.ini
/opt/lampp/etc/php.ini
</source>
</syntaxhighlight>
:→ 위에서 보듯이 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 대신 기본설치되어 있던 php가 구동되고 있다.


==해결==
===해결 방법===
*해결 방법은 다음 2가지로 생각할 수 있다. XAMPP가 제공하는 php를 사용하든가, 위에서 사용했던 php가 찾는 /var/lib/mysql/mysql.sock를 /opt/lampp/var/mysql/mysql.sock로 심볼릭 링크를 걸어주는 방법이다.
 
====방법 1====
*XAMPP가 제공하는 php를 사용.
<syntaxhighlight lang='console'>
[root@zetawiki ~]# /opt/lampp/bin/php update_0.php
</syntaxhighlight>
 
====방법 2====
* /var/lib/mysql/ 디렉토리를 생성
* /var/lib/mysql/ 디렉토리를 생성
*mysql.sock 심볼릭 링크 설정
*mysql.sock 심볼릭 링크 설정
<source lang='dos'>
<syntaxhighlight lang='console'>
[root@jmnote ~]# mkdir /var/lib/mysql/
[root@zetawiki ~]# mkdir /var/lib/mysql/
[root@jmnote ~]# ln -s /opt/lampp/var/mysql/mysql.sock /var/lib/mysql/mysql.sock
[root@zetawiki ~]# ln -s /opt/lampp/var/mysql/mysql.sock /var/lib/mysql/mysql.sock
[root@jmnote ~]# ll /var/lib/mysql
[root@zetawiki ~]# ll /var/lib/mysql
total 0
total 0
lrwxrwxrwx 1 root root 31 Feb  3 15:51 mysql.sock -> /opt/lampp/var/mysql/mysql.sock
lrwxrwxrwx 1 root root 31 Feb  3 15:51 mysql.sock -> /opt/lampp/var/mysql/mysql.sock
[root@jmnote ~]# php update_0.php
[root@zetawiki ~]# php update_0.php
</source>
</syntaxhighlight>
 
==같이 보기==
*[[Another MySQL daemon already running with the same unix socket.]]
*[[XAMPP: Call to undefined function pg connect()]]


[[분류:MySQL]]
[[분류: MySQL 오류]]
[[분류:문제]]
[[분류:XAMPP]]

2020년 11월 2일 (월) 00:55 기준 최신판

1 문제상황 1: MySQL 설치 후[ | ]

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

1.1 상황 1: MySQL 클라이언트만 설치됨[ | ]

  • mysql-server 설치 확인
[root@zetawiki ~]# rpm -qa | grep ^mysql
mysql-5.1.69-1.el6_4.x86_64
mysql-libs-5.1.69-1.el6_4.x86_64
→ mysql-server 패키지(서버)가 설치되어야 하는데, mysql 패키지(클라이언트)만 설치되어 있다.
해결방법
  • 다음 명령어로 mysql-server 패키지를 설치하자.
yum install mysql-server

1.2 상황 2: mysqld가 시작되지 않음[ | ]

[root@zetawiki ~]#  rpm -qa | grep ^mysql
mysql-5.1.69-1.el6_4.x86_64
mysql-libs-5.1.69-1.el6_4.x86_64
mysql-server-5.1.69-1.el6_4.x86_64
→ mysql-server가 설치되어 있다.
[root@zetawiki ~]# service mysqld status
mysqld is stopped
→ mysqld 가 중지되어 있다.

다음 명령어로 실행하면 된다.

service mysqld start

2 문제상황 2: XAMPP 설치 후[ | ]

  • XAMPP 설치 후, 웹으로 볼 때는 잘 되는데 쉘에서 실행할 때는 mysql_connect가 되지 않는 현상
[root@zetawiki ~]# 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

2.1 확인[ | ]

  • mysql.sock의 위치를 확인
[root@zetawiki ~]# find / -name mysql.sock
/opt/lampp/var/mysql/mysql.sock
[root@zetawiki ~]# netstat -an | grep mysql
unix  2      [ ACC ]     STREAM     LISTENING     780037 /opt/lampp/var/mysql/mysql.sock
  • php.ini의 위치를 확인
[root@zetawiki ~]# find / -name php.ini
/etc/php.ini
/opt/lampp/etc/php.ini
→ 위에서 보듯이 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 대신 기본설치되어 있던 php가 구동되고 있다.

2.2 해결 방법[ | ]

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

2.2.1 방법 1[ | ]

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

2.2.2 방법 2[ | ]

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

3 같이 보기[ | ]

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