OS X Server에서 MySQL 과 PHP 연동 관련 해결
컴퓨터 정리를 하다가 실수로 OS X Server를 삭제 하게 되었는데,,,
삽질해가며 세팅하였던 블로그가 순식간에 날아가서 다시 세팅하였다.
- os x server 재설치
- server appliaction 에서 블로그 주소 세팅 및 PHP 웹 응용프로그램 활성화
- DB는 영향 없으니 블로그 접속 시도
그런데,,,
데이터베이스에 연결하는데 오류가 생겼습니다.
일전에 초기 세팅할 때에도 재설치 시 그런 문제가 있어서 MySQL DB와 User를 모두 날린 후 재설치 시 해결하였는데
이번에는 얼마 전에 근 한 달간을 삽질해서 세팅한 페북 플러그인과 설정들을 살려보겠다는 생각에 열심히 구글링을 하였다.
꽤 삽질을 하였다. PHP 소스에 문제가 있나 싶어서
1 2 3 4 5 6 7 8 9 10 | $db_host = "localhost"; $db_user = "test_user"; $db_passwd = "test_passwd"; $db_name = "test_name"; $conn = mysqli_connect($db_host,$db_user,$db_passwd,$db_name); if (mysqli_connect_errno($conn)) { echo "데이터베이스 연결 실패: " . mysqli_connect_error(); } else { echo "성공~!!!"; } |
상위처럼 test도 해봤다. 그런데 안된다,,,
머가 잘못일까 삽질하다 보니 default port라 인식할 거라 생각했는데 3306을 빼먹어서 연결이 안 된 상황,,,
일단 DB 연결이 되는 것을 확인한 후 다른 환경 문제일 거라 생각하고 다시 구글링,,,
그런 중 MySQL과 PHP 연동 관련된 두 가지 해결 방법을 찾았다.
첫 번째 해결방법
문제
MySQL 서버가 동작 중일 때, tmp/mysql.sock 파일이 생성된다.
그런데 PHP 설정이 var/mysql/mysql.sock 으로 되어 있어서 PHP에서 MySQL 접속이 불가능한 경우가 있다.
해결
/etc/php.ini.default 파일에서 var/mysql/mysql.sock 로 되어 있는 부분(세 군데)을 전부 tmp/mysql.sock으로 변경.
그리고 다음과 같이 php.ini 파일을 생성.
1 2 3 4 5 | cd /var sudo mkdir mysql sudo chmod 755 mysql cd mysql ln -s /tmp/mysql.sock mysql.sock |
또는
1 2 | cd /tmp ln -s /var/mysql/mysql.sock mysql.sock |
두가지 방법을 보니 문제점은 MySQL과 PHP 연동 간에 설정 부분이 문제가 있는 것으로 확인된다.
나는 두 번째 방법은 무언가 폴더를 더 생성하고 예외를 두는 것 같아서 첫 번째 php.ini 파일의 mysql.sock 의 경로명을 수정하였다.