MySQL 5.7 소스 설치하기
필수 구성 요소
# yum -y install wget gcc* ncurses-devel
1. cmake 설치
# cd /usr/local/src
# wget http://github.com/Kitware/CMake/releases/download/v3.18.4/cmake-3.18.4.tar.gz
# tar xvzf cmake-3.18.4.tar.gz
# cd cmake-3.18.4
# ./bootstrap
# make
# make install
MySQL 5.7.x 설치시 boost 라이브러리를 참조하기 때문에 이부분을 컴파일 과정에서 추가해줘야 됩니다.
# cd ..
# wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
# tar xvfz boost_1_59_0.tar.gz
# mv boost_1_59_0 /usr/local/
MySQL ./configure 설행시 아래 옵션 잊지말고 추가합니다.
-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost_1_59_0
2. 계정 생성
# groupadd -g 400 mysql
# useradd -u400 -g400 -d /usr/local/mysql -s /bin/false mysql
3. MySQL 설치
# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.26.tar.gz
# tar xvzf mysql-5.7.26.tar.gz
# cd mysql-5.7.26
# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DSYSCONFDIR=/etc -DMYSQL_TCP_PORT=3306 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost_1_59_0
# make
# make install
[참고]
euckr 로 설치를 원할 경우 옵션을 변경해줍니다.
-DDEFAULT_CHARSET=euckr -DDEFAULT_COLLATION=euckr_korean_ci
4. DB생성 및 기본 보안 설정
실행 파일을 생성하고 부팅시 자동 구동 되도록 합니다.
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# chmod 700 /etc/init.d/mysqld
# chown root.root /etc/init.d/mysqld
# chkconfig --add mysqld
기본 DB 를 생성하기 전에 환경 설정 파일을 먼저 만들어 줍니다.
# vi /etc/my.cnf
[client] default-character-set = utf8 [mysqld] server-id = 1 skip-name-resolve max_connections = 10240 thread_cache_size = 50 wait_timeout = 28800 sort_buffer_size = 512K collation-server = utf8_general_ci character-set-server = utf8 skip-character-set-client-handshake default-storage-engine = InnoDB innodb_file_per_table = 1 innodb_data_home_dir = /usr/local/mysql/data innodb_data_file_path = ibdata1:1024M:autoextend innodb_autoextend_increment = 100 innodb_log_group_home_dir = /usr/local/mysql/data innodb_buffer_pool_size = 5G innodb_log_buffer_size = 16M innodb_log_file_size = 512M innodb_flush_log_at_trx_commit = 1 innodb_thread_concurrency = 0 innodb_lock_wait_timeout = 20 innodb_force_recovery = 0 innodb_flush_method = O_DSYNC innodb_doublewrite = 0 innodb_sync_spin_loops = 20 innodb_table_locks = 1 innodb_thread_sleep_delay = 1000 innodb_max_purge_lag = 0 innodb_commit_concurrency = 0 innodb_concurrency_tickets = 500 log-bin = binlog max_binlog_size = 1G general_log = 1 general_log_file = /usr/local/mysql/data/general_query.log slow-query-log = 1 long_query_time = 10 slow_query_log_file = /usr/local/mysql/data/slow_query.log [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8 |
이제 기본 DB 를 생성합니다.
MySQL 5.7 의 경우 아래와 같이 초기화할 경우 root 패스워드 없이 생성됩니다.
# /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
초기화시 패스워드가 랜덤으로 생성되게 하려면 위 파란색 옵션을 아래 옵션으로 대체하면 됩니다.
(설치 화면 마지막줄에 출력)
--initialize
mysql 을 가동하고 root 패스워드를 새로 설정합니다.
MySQL 5.7 버전부터 mysql.user 테이블의 password 필드는 사라졌고, 변경 방법이 아래와 같이 바뀌었습니다.
# /etc/init.d/mysqld start
# /usr/local/mysql/bin/mysql -p
Enter password: (설치시 패스워드)
mysql> alter user root@localhost identified with mysql_native_password by '새패스워드';
mysql> flush privileges;
'리눅스 > MySQL' 카테고리의 다른 글
mysqldump 사용시 조건을 주어 백업하기 (0) | 2019.06.18 |
---|---|
MySQL general 로그를 logrotate 로 관리하기 (0) | 2019.06.04 |
MariaDB Galera Cluster 구성 (MySQL, MariaDB 지원) (0) | 2018.12.05 |
CentOS7 에서 MySQL 8.0 소스 설치 (0) | 2018.11.14 |
mysqldump: Couldn't execute 'SET OPTION SQL_QUOTE_SHOW_CREATE=1': Unknown system variable 'OPTION' (1193) (0) | 2018.05.18 |