mysql 5.6 설치
필수 라이브러리 설치
# yum -y install zlib curl gcc g++ gcc-c++ openssl openssl-devel libtermcap-devel ncurses-devel libc-clientdevel bzip2-devel bison make cmake
(mysql 5.5이상 부터는 cmake를 이용하여 설치를 한다. 아래와 같이 cmake 소스 설치도 가능하다.)
# cd /usr/local/src
# wget https://cmake.org/files/v3.9/cmake-3.9.6.tar.gz
# tar zxvf cmake-3.9.6.tar.gz
# cd cmake-3.9.6
# ./bootstrap
# make && make install
myslq 계정 생성
# groupadd -g 400 mysql → mysql 그룹 생성
# useradd -u400 -g400 -d /usr/local/mysql -s /bin/false mysql → mysql 유저 생성
mysql 설치
# tar zxvf mysql-5.6.20.tar.gz
# cd mysql-5.6.20
# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ → 기본 설치 디렉터리 설정
-DMYSQL_DATADIR=/usr/local/mysql/data \ → 데이터 디렉터리 위치 설정
-DDEFAULT_CHARSET=utf8 \ → 언어 설정
-DDEFAULT_COLLATION=utf8_general_ci \ → 서버 데이터 정렬, show collation 문을 사용하여 각 문자 집합에 사용할
수 있는 데이터 정렬
-DWITH_EXTRA_CHARSETS=all \ → 포함할 추가 문자 세트
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ → 스토리지 엔진 “innobase”를 서버에 정적으로 컴파일
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ → 서버가 소켓을 연결하는 unix 소켓파일 경로. 절대경로여야함.
-DSYSCONFDIR=/etc \ → my.cnf 파일 디렉터리
-DMYSQL_TCP_PORT=3306 → 서버가 tcp/ip 연결을 청취하는 포트 번호
(euckr로 설치를 원할 경우, -DDEFAULT_CHARSET=euckr
-DDEFAULT_COLLATION=euckr_korean_ci로 변경해준다.)
# make
# make install
mysql 기본 설정
# cd /usr/local/src/mysql-5.6.20/support-files
# cp -arp my-default.cnf /etc/my.cnf → 설정파일 이동
# cp -arp mysql.server /etc/init.d/mysqld
# rm -rf /usr/local/mysql/data → 설치 후 필요없는 파일들이 들어가있음, 삭제
# /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
--basedir=/usr/local/mysql → mysql의 데이터베이스를 생성하며, mysql디렉터리를 설정
# chown -R mysql.mysql /usr/local/mysql → mysql은 권한이 mysql이 아니면 구동이 되지 않기 때문에 소유자 변경
# chmod 700 /etc/init.d/mysqld
# chmod 711 /usr/local/mysql
# chmod 700 /usr/local/mysql/data
# chmod 751 /usr/local/mysql/bin
# chmod 750 /usr/local/mysql/bin/*
# chmod 755 /usr/local/mysql/bin/mysql
# chmod 755 /usr/local/mysql/bin/mysqldump
# echo "/usr/local/mysql/lib" > /etc/ld.so.conf.d/mysql.conf
자동실행 설정
# cd /usr/local/mysql
# ln -s lib lib64
# chkconfig --add mysqld
# chkconfig mysqld
mysql> update user set password = password('패스워드') where user='root';
mysql> flush privileges;
error 및 특이사항 발생 시
명령어 인식 안될때 /usr/local/mysqll/bin/에서 실행하거나 /etc/profile 파일에서 export PATH="$PATH:/usr/local/mysql/bin" 구문 추가 후 source /etc/profile 로 적용한다.
support-files 없을 시 my-samll.cnf or my-large.cnf 중 선택하여 my.cnf로 복사한다.
5.7.10 버전 루트패스워드 변경 후 SET PASSWORD = PASSWORD('your_new_password');
sentos 7.4 에 mysql 5.4 설치 때 cmake 오류 (컴파일 러가 지원하지 않음)----
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error: your C compiler: "CMAKE_C_COMPILER-NOTFOUND" was not found. Please set CMAKE_C_COMPILER to a valid compiler path or name.
CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found. Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
=> #> yum install gcc gcc-c++
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)
: 요고이 링크가 안걸려서 생기는 에러다.
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock 를 해보고 이미 링크가 존재한다고 하면
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock 요렇게 반대로 해보자
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (13)
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13)
: 마지막 13번 에러...
이건 /usr/local/mysql 디렉토리에 권한이 잘못되서 그런 것이다.
777로 해주면 된다.
chmod 777 /usr/local/mysql
apache 2.4 + php 5.2 설치시 phplib5.so 에러 해결
httpd-2.4.3 버전과 php-5.2.14 버전을 설치하였다.
php 5.2 설치 후에 apache를 start 하게 되면 다음과 같은 메시지가 나오면서 apache가 정상적으로 작동을 하지 않았다.
httpd: Syntax error on line 146 of /usr/local/apache/conf/httpd.conf: Cannot load modules/libphp5.so into server: /usr/local/apache/modules/libphp5.so: undefined symbol: unixd_config
아파치의 버전업으로 인해서 해당 심볼의 명칭이 바뀌었다. unixd_config -> ap_unixd_config로 변경
src/php-5.2.14/sapi/apache2handler/php_functions.c
안에서 unixd_config -> ap_unixd_config 로 변경하면 된다. 총 2군데 4번 변경하면 된다.
그리고 나서 다시 컴파일을 하게 되면 문제 없이 실행이 된다.
mysql 접속 시 패스워드 없이 또는 패스워드를 틀려도 로그인이 되는 경우 인증 방식이 소켓으로 되어 있기 때문에 인증 플러그인을 변경 해야 한다.=> UPDATE user SET plugin='mysql_native_password' WHERE user='root'; 후 재시작