블로그를 뒤져 APM을 설치 했는데 PHP 버전이 5.1이다. yum으로 설치 가능한 패키지 버전 중에 5.3이 있어서 업그레이드를 마음 먹었다. 구글링으로 찾아낸 어느 외국인의 블로그에서 간단하게 정리 된 포스팅을 보고 어렵지 않게 업그레이드가 가능했다. php하나를 구동하는데 여러 개의 프로그램들이 설치 됐다.
다음은 MySQL을 업그레이드 시작했다. 5.5버전을 RPM으로 설치 할 수 있었다. 데몬 실행도 문제 없고 mysql 실행도 잘 되고 있었다. 가벼운 마음으로 phpMyAdmin을 설치했는데 로그인이 되지 않는다. MySQL을 전혀 인식하지 못하는데 오류 번호를 검색하니 MySQL을 재설치 하라는 안내만 나온다. 하지만 MySQL을 몇 번을 재설치하고 다운그레이드까지 했는데도 phpinfo()에는 여전히 mysql 정보를 볼 수 없었다.
한참을 고생하다 문득 내가 사용했던 명령 라인 하나가 생각났다.
# yum remove mysql* mysql-*
"mysql"로 시작하는 yum 패키지를 제거하는 명령이다. 당연히 mysql만 제거 될거라 생각했다. 혹시나 하는 마음에 yum으로 설치 된 php와 mysql 프로그램들을 검색하게 됐다.
# yum list installed | grep -i mysql
yum으로 설치 된 패키지 중에서 이름에 mysql이 포함 된 프로그램들 목록이 뜬다. 나는 php5.3으로 업그레이드 하면서 분명히 php53-mysql을 설치한 기억이 있는데 목록에 없다. 아마도 mysql을 제거하는 중에 실수로 php-mysql까지 제거하게 된 듯 했다. 나는 다시 php53-mysql을 설치했다.
# yum install php53-myql
# service httpd restart
phpinfo()를 확인하니 MySQL이 제대로 연동 된다.
※ 원인이 php-mysql, php53-mysql 때문인지는 확실하지는 않다. php와 mysql이 연동되지 않아 고민하던 차에 우연하게 발견하게 된 방법으로 경우에 따라서는 다른 원인이 있을 수 있다. 다만 여러 개의 해결책 중 참고 정도 하면 될 거 같다.
■ MySQL 5.x에서 16바이트로 암호화가 된다면?
MySQL5.x을 설치 했는데 DB에 저장 된 비밀번호가 16Byte로 된 4.x 이전의 암호화 되고 있었다. 이럴 때는 my.cnf를 열어 설정을 바꿔주자.
//-- cafe24 가상서버호스팅일 때
# vi /etc/my.cnf
[mysqld]
old_password = 0
# service mysqld restart
mysql>select password('123');
mysql>select old_password('123');
두 개의 명령어를 실행해 보면 차이를 알 수 있다. 첫번째 줄에서 암호화 된 문장이 41Byte로 출력 된다면 정상으로 설정이 된 상태다.
■ MySQL 데몬이 실행되지 않을 때
카페24에서 가상서버호스팅을 받았을 때 여느 독립서버와 차이가 있어서 조금 헤매게 된다. MySQL을 설치 했는데 데몬이 실행 되지 않는다면 my.cnf에서 socket 파일을 경로를 수정해보자.
# vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/tmp/mysql.sock
[client]
port=3306
socket=/tmp/mysql.sock
default-character-set = utf8
# service mysqld start
'프로그래밍 > Web server & Linux' 카테고리의 다른 글
리눅스 서버, FTP 접속 했을 때 상위 경로(다른 계정) 디렉토리가 보이지 않게 하기 (0) | 2019.09.04 |
---|---|
리눅스 웹서버 CentOS, PHP5.3에 Zend Guard Loader 설치하기 (0) | 2019.09.04 |
리눅스 서버 CentOS에 (APM) Apache+PHP5.3+MySQL 설치하기 (0) | 2019.09.04 |