일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Tibero
- String Functions and Date Operators
- SVN
- 티베로
- String Function and Operators
- MySQL
- HTTP
- Oracle
- Date and Time Function
- 전자정부 표준프레임워크
- 윈도우
- Date and Time Functions
- Data and Time Functions
- 오라클
- 방화벽
- Sring Functions and Operators
- String Functions and Operators
- 전자정부표준프레임워크
- Today
- Total
웹이야기
5. MySQL 설치(리눅스) - 소스 컴파일 본문
MySQL 8.0.18 설치
MySQL 5.7.28 도 동일하게 설치를 진행해도 잘 되었다.
요약본
#yum -y install cmake
#yum -y install git
#yum -y install openssl
#yum -y install openssl-devel
#yum -y install libtirpc
#yum -y install libtirpc-devel
#yum -y --enablerepo=PowerTools install rpcgen
#yum -y install ncurses-devel
#groupadd mysql
#useradd -M -g mysql -s /bin/false mysql
#cat /etc/group
#cat /etc/passwd
#cd /usr/local/src
#wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.18.tar.gz
#tar xvzf mysql-8.0.18.tar.gz
#cd mysql-8.0.18/
#mkdir build_20200108
#cd build_20200108
#cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DMYSQL_DATADIR=/usr/local/mysql_data -DENABLED_LOCAL_INFILE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DMYSQL_DATADIR=/usr/local/mysql_data -DENABLED_LOCAL_INFILE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_DEBUG=0 -DMYSQL_MAINTAINER_MODE=0 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1
#make
#make install
#cd /usr/local/
#mkdir mysql_data
#chown -R mysql.mysql mysql_data/
#chmod 750 mysql_data/
#mkdir /var/lib/mysql
#chown -R mysql.mysql /var/lib/mysql
#chmod 750 /var/lib/mysql
#/usr/local/mysql/bin/mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/usr/local/mysql_data --user=mysql
#/usr/local/mysql/bin/mysql_ssl_rsa_setup
#cd /usr/local/mysql/bin
#./mysqld_safe --user=mysql &
상세
1. 이미 설치된 것이 있는지 없는지 확인
#ps -ef | grep mysql
#rpm -qa | grep mysql
2.
다운로드(소스 버전을 다운로드 받는다)
* 또는
# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.18.tar.gz
을 통해 받을 수도 있다.
3.
다운로드 받은 것을 적당한 위치로 옮겨 놓는다.
ex) /usr/local/src
4.
사용자 생성
- 보안상의 이유로 root 계정이 아닌 mysql 계정을 생성
#groupadd mysql
#useradd -M -g mysql -s /bin/false mysql
#cat /etc/group
#cat /etc/passwd
로 잘 추가되었는지 확인.
사용자 추가에 대한 자세한 내용은 아래 URL 참조
https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_%EA%B3%84%EC%A0%95_%EC%83%9D%EC%84%B1_useradd
5. MySQL 설치
#tar xvzf mysql-8.0.18.tar.gz
#cd mysql-8.0.18/
#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
라고 했더니 아래와 같은 에러도 나온다. (cmake 최종옵션은 아래에 있다.)
(*cmake 는 "\"를 사용하지 않는 것이 좋은 것 같다. )
* cmake 하는 도중 아래와 같은 에러가 나온다.
-- Source directory /usr/local/src/mysql-8.0.18
-- Binary directory /usr/local/src/mysql-8.0.18
CMake Error at CMakeLists.txt:341 (MESSAGE):
Please do not build in-source. Out-of source builds are highly
recommended: you can have multiple builds for the same source, and there is
an easy way to do cleanup, simply remove the build directory (note that
'make clean' or 'make distclean' does *not* work)
mysql-5.7.28 에서는 나오지 않으나 mysql-8.0.18 에서는 나온다.
소스 디렉토리에서 build 하지 말라는 내용으로 보인다.
따라서
#mkdir build_20200108
#cd build_20200108
#cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
(cmake 최종옵션은 아래에 있다.)
와 같이 build 를 진행하니 잘 된다.
다시 본론으로 돌아가서 cmake 를 해보니
bash: cmake: command not found... 라고 나온다.
1) cmake 패키지 설치
#yum -y install cmake
Running cmake version 3.11.4
-- Could NOT find Git (missing: GIT_EXECUTABLE)
라고 나와서
2) git 패키지 설치
#yum -y install git
CMake Error at cmake/boost.cmake:104 (MESSAGE):
You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST=
라고 나와서
3) build 옵션에 추가
-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost
Cannot find appropriate system libraries for WITH_SSL=system.
Make sure you have specified a supported SSL version.
Valid options are :
system (use the OS openssl library),
yes (synonym for system),
</path/to/custom/openssl/installation>
CMake Error at cmake/ssl.cmake:66 (MESSAGE):
Please install the appropriate openssl developer package.
Call Stack (most recent call first):
cmake/ssl.cmake:260 (FATAL_SSL_NOT_FOUND_ERROR)
CMakeLists.txt:573 (MYSQL_CHECK_SSL)
라고 나온다.
4) open ssl 설치
#yum -y install openssl
이미 설치되어 있다.
#yum -y install openssl-devel
다시 실행
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.4.2")
-- Checking for module 'libtirpc'
-- Package 'libtirpc', required by 'virtual:world', not found
CMake Error at cmake/rpc.cmake:65 (MESSAGE):
Could not find rpc/rpc.h in /usr/include or /usr/include/tirpc
Call Stack (most recent call first):
plugin/group_replication/libmysqlgcs/configure.cmake:57 (MYSQL_CHECK_RPC)
plugin/group_replication/libmysqlgcs/CMakeLists.txt:28 (INCLUDE)
라고 나온다.
5) libtirpc 패키지 설치
#yum -y install libtirpc
이미 있다고 나온다.
#yum -y install libtirpc-devel
다시 실행
-- Performing Test X_PUTLONG_NOT_USE_CONST - Failed
CMake Error at plugin/group_replication/libmysqlgcs/rpcgen.cmake:100 (MESSAGE):
Could not find rpcgen
Call Stack (most recent call first):
plugin/group_replication/libmysqlgcs/CMakeLists.txt:38 (INCLUDE)
라고 나온다.
6)rpcgen 패키지 설치
#yum -y --enablerepo=PowerTools install rpcgen
7) ncurses-devel 패키지 설치
아래와 같은 오류가 발생하는 경우에 설치한다.
-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH) CMake Error at cmake/readline.cmake:71 (MESSAGE): Curses library not found. Please install appropriate package, remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel. Call Stack (most recent call first): cmake/readline.cmake:100 (FIND_CURSES) cmake/readline.cmake:194 (MYSQL_USE_BUNDLED_EDITLINE) CMakeLists.txt:1185 (MYSQL_CHECK_EDITLINE)
#yum -y install ncurses-devel
최종 빌드한 옵션은 아래와 같다.
#cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DMYSQL_DATADIR=/usr/local/mysql_data -DENABLED_LOCAL_INFILE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DMYSQL_DATADIR=/usr/local/mysql_data -DENABLED_LOCAL_INFILE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_DEBUG=0 -DMYSQL_MAINTAINER_MODE=0 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1
* DMYSQL_DATADIR의 위치가 DCMAKE_INSTALL_PREFIX 의 하위로 들어가니 나중에 에러가 발생한다.
([ERROR] --initialize specified but the data directory exists. Aborting.)
#make
#make install
#cd /usr/local/
#mkdir mysql_data
#chown -R mysql.mysql mysql_data/
#chmod 750 mysql_data/
#cd /usr/local/mysql/bin
#./mysqld --initialize --user=mysql
#./mysql_ssl_rsa_setup
#./mysqld_safe --user=mysql &
오류 발생
Logging to '/usr/local/mysql_data/localhost.localdomain.err'.
2020-01-10T04:45:45.276806Z mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.
다시.
#mkdir /var/lib/mysql
#chown -R mysql.mysql /var/lib/mysql
#chmod 750 /var/lib/mysql
#./mysqld_safe --user=mysql &
오류 발생
2020-01-10T04:46:21.114451Z 1 [ERROR] [MY-011011] [Server] Failed to find valid data directory.
2020-01-10T04:46:21.114719Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
다시.
#/usr/local/mysql/bin/mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/usr/local/mysql_data --user=mysql
2020-01-10T04:47:55.825335Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
2020-01-10T04:47:55.825340Z 0 [ERROR] [MY-013236] [Server] The designated data directory /usr/local/mysql_data/ is unusable. You can remove all files that the server added to it.
#./mysqld_safe --user=mysql &
#mysql -uroot -p
비밀번호 입력시 그냥 Enter
(초기화 할 때 --initialize-insecure 라고 했기 때문에 비밀번호가 없다. )
MySQL root 비밀번호를 변경하는 방법은 아래 URL을 참조한다.
설치 완료!!
'D > MySQL' 카테고리의 다른 글
7. MySQL root 패스워드 변경 (0) | 2020.01.11 |
---|---|
6. MySQL 설치(소스 컴파일, 5.7, 8.x 버전) (0) | 2020.01.09 |
4. MySQL 설치(리눅스) - yum 으로 설치 (0) | 2020.01.08 |
3. MySQL 다운로드 (0) | 2020.01.07 |
2. MySQL 접속 확인/연결 확인 (0) | 2020.01.07 |