Sock 에러 어떻게 해결하면 좋을까요?

모두들 안녕하신지요?

독일에 사시는 아는 분의 요청으로
홈페이지를 만들어 주기 위해 독일의 https://www.strato.de 라는 사이트에 웹호스팅 신청을 했습니다.
독일어는 고등학교 때 배운 후 약 30여년이 지나다 보니 (엥? 벌써? 정말이네…)
구글 번역기의 친절하지만 쫌 그렇고 그런 실력(?)의 도움을 받아 간신히 간신히
ftp 주소를 알아내어 XE를 업로드 하고,
DB를 생성하고 …
드디어 계정에 들어가 감격의 XE 홈페이지 설치 화면을 접하게 되었습니다.

그런데 …
설치를 진행하는 과정 중 DB정보 입력 탭에서,
아이디와 비밀번호 DB이름을 입력하고 다음을 누르자 …

Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)

라는 에러가 뜨면서 진행이 되지 않아요.
이 한단계만 지나간다면 나머지는 어느 정도 알아서 할 수 있을 것 같은데…

인터넷에서 여기 저기를 검색을 해 보니, 서버 관리자 권한이 있어야 뭔가를 할 수 있을 듯 한데…
정확히 제가 어떻게 할 수 있는 것인지는 모르겠네요.
XE의 묻고답하기 게시판에 글을 올렸는데, 아직까지 아무도 답변이 없어요. 모두들 바쁘신가 봐요.

그래서, 부득이하게 여기 다시 글을 남겨요.
여기 분들은 자기 일 바빠도, 이런 일은 먼저 신경 써 주시기로 유명하잖아요?
끝까지, 해결 될 때까지 물고 늘어져 주셔서 오히려 질문자가 할 말 없게 만들기로 유명한 ^^
여러분께 부탁좀 드릴께요.

클라이언트 입장으로 제가 무엇을 어떻게 해야 하지요?
어떻게 해야 하는지 아시는 분, 도움 좀 부탁 드릴게요.

미리 감사들 드립니다.

보통 저런 에러가 난 경우 mysql을 재시작 해주는 데요(서버관리자 권한)
또는 sock의 위치가 달라서 그럴 수도 있는데 이 경우도 서버관리자 권한으로 심볼릭을 만들어 줍니다. (ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock)

호스팅을 사용하고 계시니
호스팅의 경우는
호스팅 업체에 mysql(DB) 소켓에러 ( Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’) 가 난나고 알려서
sock 심볼릭을 만들어 달라 요청해야 할것입니다.

아니면 제로보드XE 소스를 수정해야 하는데…(소켓의 위치 수정)
[list:3oher8ll]
(2) 클라이언트쪽의 접속 소켓을 지정한다.

예를들면 php의 경우
if(!$con=mysql_connect("localhost","mysql","passwd")){

if(!$con=mysql_connect("localhost:/var/lib/mysql/mysql.sock","mysql","passwd")){

Perl의 경우
$dbh=DBI->connect("DBI:mysql:tsumiki:localhost","mysql","passwd",
{RaiseError=>0,PrintError=>1,AutoCommit=>1});

$dbh=DBI->connect("DBI:mysql:tsumiki;host=localhost;port=/var/lib/mysql/mysql.sock",
"mysql","passwd",{RaiseError=>0,PrintError=>1,AutoCommit=>1});

위와 같이 포트 번호를 지정하는 개소에 소켓파일의 경로를 지정할 수가 있다.
[/list:u:3oher8ll] 참조 : http://pokute.tistory.com/366

위 작업은 쉽지 않으실거 같습니다. ㅠ,.ㅍ

제로보드 잘하는 친구를 페북에서 불러 보아야겠습니다. 어디 수정해야하는지 …

페북 답변

장형욱 = xe 설치해본지 오래되서 기억이 안나지만 아래 내용을 xe db호출 하는 부분위에 넣어주시면 됩니다.
ini_set(‘mysql.default_socket’,‘/var/lib/mysql/mysql.sock’);

[quote="강분도":309bpfrd]페북 답변

장형욱 = xe 설치해본지 오래되서 기억이 안나지만 아래 내용을 xe db호출 하는 부분위에 넣어주시면 됩니다.
ini_set(‘mysql.default_socket’,‘/var/lib/mysql/mysql.sock’);[/quote:309bpfrd]

혹시나 하고 .htaccess 파일에 넣어서 루트에 넣어 봤는데 안되고,
xe폴더 내의 .htaccess파일에 넣어 봐도 안 되네용.
구체적으로 어딘지 알려 주심 안될까요?

아, 그리고 인사가 늦었네요.
강분도님 정말 오랜만이네요. 반갑고 감사해요.
포럼에 글 쓰시는 것이 요즘 거의 뜸~하시기에, '저처럼 해외 나가서 적응하는 기간이신가’하고 생각했습니다. ㅎㅎㅎ
(사람이 일생동안 겪는 스트레스 중에 가장 큰 스트레스는 배우자를 잃는 슬픔이라고 하는데, 이민은 그것보다 더 스트레스라더군요.)
그래서 … ^^

XE 소스를 살펴보니까 DB 호스트는 설치시에 입력을 받아 저장하게 되어 있더군요

그러니
설치시에 DB 호스트네임을 localhost 로 하지 마시고
localhost:/var/lib/mysql/mysql.sock 으로 하여 보시기 바랍니다.

아 제가
외국에 나간 건 아닙니다. ;)

아항, 그러시군요. 다행입니다.
해외에 오래 살면 머리가 급격히 하얗게 변하는 것 같아요.
나이 때문이기도 하겠지만요 ^^ ;;

말씀하신대로 하니 아래 사진처럼 이런 에러를 보여주네요.

[quote:1cbtfyxs]Unknown MySQL server host ‘localhost:/var/lib/mysql/mysql.sock’ (1)[/quote:1cbtfyxs]

그래도 숫자 하나가 줄었어용 ^^
아참, mysqli로 했었구요.

mysql로 선택하니, XE cannot connect to DB. 라고 에러가 뜨네요.

그런데, mysql, mysqli, mysql_innodb 이런 거 … 뭐가 좋은 거죠?

호스팅 업체에
설치하려는 cms 프로그램이 /tmp/sock 파일이 필요로 하니 심볼릭을 만들어 달라 요청하는게 가장 편할듯합니다. :mrgreen: 죄송합니다.
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

감사합니다, 그렇게 연락해 보도록 하겠습니다.

자문자답 일지 모르는데요 …

구글 번역 펴 놓고 해당 사이트를 이 잡듯이 뒤지면서
'안됨 밤 샌다’는 각오로 매달려 이것 저것을 해 보며, 한 단어 한 단어를 씹어 먹듯이 살피다 보니
얼핏 뭔가 보이는 듯 하더군요.
뭔가 제가 직접 해결할 실마리가 느껴지는 순간 … 해결되었습니다.
사실 정확하게 말씀드려서 제가 뭘 했는지, 그동안 뭐가 문제였는지 아직도 모르겠어요.
다시 하라면 못할 것 같아요. 그렇지만 (어쨌든) 다행히 해결이 되었습니다.

어쨋든 잘 되었지요?
컴퓨터 왕 초보가, 독일어 '독’자도 모르는 사람이 이 정도면 대단하지 않나요?

모두들, 축하해 주세요. ^^

도움 주신 모든 분들께도 감사드리구요.