반응형
#구성환경
VMWARE | VIRTUALBOX 6.1 |
OS | CENTOS 7.9 |
MYSQL | 5.7.27 |
#다운로드 파일
설치 파일명 | 비고 |
mysql-boost-5.7.27.tar.gz | mysql(boost포함) 설치파일 압축해제 |
boost_1_59_0.tar.gz |
RPM 패키지 |
boost_1_59_0 cmake-2.8.12 automake-1.13.4-3.el7.noarch cmake-2.8.12.2-2.el7.x86_64 make-3.82-24.el7.x86_64 openssl-libs-1.0.2k-19.el7.x86_64 openssl-1.0.2k-19.el7.x86_64 openssl-devel-1.0.2k-19.el7.x86_64 pcre-devel-8.32-17.el7.x86_64.rpm openssl-devel-1.0.2k-19.el7.x86_64.rpm openssl098e-0.9.8e-29.el7.centos.3.x86_64 ncurses-libs-5.9-14.20130511.el7_4.x86_64 ncurses-base-5.9-14.20130511.el7_4.noarch ncurses-devel-5.9-14.20130511.el7_4.x86_64 ncurses-5.9-14.20130511.el7_4.x86_64 autoconf-2.69-11.el7.noarch automake-1.13.4-3.el7.noarch binutils-2.27-44.base.el7.x86_64 bison-3.0.4-2.el7.x86_64 flex-2.5.37-6.el7.x86_64 gcc-gfortran-4.8.5-44.el7.x86_64 gcc-c++-4.8.5-44.el7.x86_64 libgcc-4.8.5-44.el7.x86_64 gcc-4.8.5-44.el7.x86_64 gettext-libs-0.19.8.1-3.el7.x86_64 gettext-0.19.8.1-3.el7.x86_64 gettext-common-devel-0.19.8.1-3.el7.noarch gettext-devel-0.19.8.1-3.el7.x86_64 libtool-2.4.2-22.el7_3.x86_64 libtool-ltdl-2.4.2-22.el7_3.x86_64 patch-2.7.1-12.el7_7.x86_64 speech-dispatcher-python-0.7.1-15.el7.x86_64 speech-dispatcher-0.7.1-15.el7.x86_64 patchutils-0.3.3-4.el7.x86_64 kpatch-0.6.1-6.el7.noarch pkgconfig-0.27.1-4.el7.x86_64 redhat-rpm-config-9.1.0-88.el7.centos.noarch rpm-build-4.11.3-45.el7.x86_64 rpm-build-libs-4.11.3-45.el7.x86_64 rpm-sign-4.11.3-45.el7.x86_64 perl-parent-0.225-244.el7.noarch perl-Pod-Escapes-1.04-294.el7_6.noarch perl-libs-5.16.3-294.el7_6.x86_64 perl-threads-1.87-4.el7.x86_64 perl-constant-1.27-2.el7.noarch perl-File-Temp-0.23.01-3.el7.noarch perl-Pod-Simple-3.28-4.el7.noarch |
*MySQL DB 사용 OS 유저는 mysql
유저 및 디렉토리 설정 |
# groupadd mysql # useradd -g mysql mysql # passwd mysql |
# mkdir -p /usr/local/mysql # mkdir -p /usr/local/mysql_data |
다운로드 경로 이동 압축해제 |
# cd /files # ls -alrt |
# tar xvzf mysql-boost-5.7.27.tar.gz # tar xvzf boost_1_59_0.tar.gz |
# cd mysql-boost-5.7.27 # pwd /media/mysql-5.7.27 |
#CMAKE 수행
CMAKE 실행 |
cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/usr/local/mysql_data \ -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ -DWITH_EXTRA_CHARSETS=all \ -DENABLED_LOCAL_INFILE=1 \ -DDOWNLOAD_BOOST=1 \ -DWITH_BOOST=/media/boost_1_59_0 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DWITH_FEDERATED_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DENABLED_LOCAL_INFILE=1 \ -DSYSCONFDIR=/etc \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS=all \ -DMYSQL_TCP_PORT=3306 |
참고 : |
수행로그 [root@mysqlnode1 mysql-5.7.27]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql_data -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DWITH_EXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/media/boost_1_59_0 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DMYSQL_TCP_PORT=3306 -- Running cmake version 2.8.12.2 -- Found Git: /usr/bin/git (found version "1.8.3.1") -- Configuring with MAX_INDEXES = 64U -- CMAKE_GENERATOR: Unix Makefiles -- SIZEOF_VOIDP 8 -- MySQL 5.7.27 -- Packaging as: mysql-5.7.27-Linux-x86_64 -- Local boost dir /media/boost_1_59_0 -- Found /media/boost_1_59_0/boost/version.hpp -- BOOST_VERSION_NUMBER is #define BOOST_VERSION 105900 -- BOOST_INCLUDE_DIR /media/boost_1_59_0 -- NUMA library missing or required version not available -- Found Git: /usr/bin/git -- LIBEVENT_INCLUDE_DIRS /media/mysql-5.7.27/extra/libevent/include;/media/mysql-5.7.27/extra/libevent/include -- LIBEVENT_LIBRARIES event -- Cannot find system sasl libraries. -- WITH_PROTOBUF=bundled -- protobuf version is 2.6 -- You need to set WITH_CURL. This variable needs to point to curl library. -- Creating LDAP authentication SASL client library. -- Currently LDAP SASL client authentication plug-in is build with only system installed cyrus SASL library. -- Required SASL library is missing. Skipping the LDAP SASL client authentication plugin. -- Library mysqlclient depends on OSLIBS -lpthread;m;rt;dl -- MERGE_CONVENIENCE_LIBRARIES TARGET mysqlclient -- MERGE_CONVENIENCE_LIBRARIES LIBS clientlib;dbug;strings;vio;mysys;mysys_ssl;zlib;yassl;taocrypt;dl -- MERGE_CONVENIENCE_LIBRARIES MYLIBS clientlib;dbug;strings;vio;mysys;mysys_ssl;zlib;yassl;taocrypt -- checking for module 'libtirpc' -- package 'libtirpc' not found -- checking for module 'libtirpc' -- package 'libtirpc' not found -- RPC_INCLUDE_DIRS /usr/include -- Using Boost headers from /media/boost_1_59_0 -- MYSQLX - Text log of protobuf messages enabled -- Googletest was not found. gtest-based unit tests will be disabled. You can run cmake . -DENABLE_DOWNLOADS=1 to automatically download and build required components from source. -- If you are inside a firewall, you may need to use an https proxy: export https_proxy=http://example.com:80 -- executable target mysqld debug_target /media/debug/sql/mysqld -- Library mysqlserver depends on OSLIBS -lpthread;m;rt;crypt;dl -- MERGE_CONVENIENCE_LIBRARIES TARGET mysqlserver -- MERGE_CONVENIENCE_LIBRARIES LIBS dbug;strings;regex;mysys;mysys_ssl;vio;zlib;yassl;taocrypt;crypt;dl;archive_embedded;blackhole_embedded;csv_embedded;federated_embedded;heap_embedded;innobase_embedded;lz4_lib;myisam_embedded;myisammrg_embedded;partition_embedded;ngram_parser_embedded;sql_embedded -- MERGE_CONVENIENCE_LIBRARIES MYLIBS dbug;strings;regex;mysys;mysys_ssl;vio;zlib;yassl;taocrypt;archive_embedded;blackhole_embedded;csv_embedded;federated_embedded;heap_embedded;innobase_embedded;lz4_lib;myisam_embedded;myisammrg_embedded;partition_embedded;ngram_parser_embedded;sql_embedded -- library target mysqlserver debug_target /media/debug/archive_output_directory/libmysqld.a -- INSTALL mysqlclient.pc lib/pkgconfig -- Skipping deb packaging on unsupported platform . -- CMAKE_BUILD_TYPE: RelWithDebInfo -- COMPILE_DEFINITIONS: _GNU_SOURCE;_FILE_OFFSET_BITS=64;HAVE_CONFIG_H;HAVE_LIBEVENT2 -- CMAKE_C_FLAGS: -Wall -Wextra -Wformat-security -Wvla -Wwrite-strings -Wdeclaration-after-statement -- CMAKE_CXX_FLAGS: -Wall -Wextra -Wformat-security -Wvla -Woverloaded-virtual -Wno-unused-parameter -- CMAKE_C_LINK_FLAGS: -- CMAKE_CXX_LINK_FLAGS: -- CMAKE_C_FLAGS_RELWITHDEBINFO: -O3 -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DDBUG_OFF -- CMAKE_CXX_FLAGS_RELWITHDEBINFO: -O3 -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DDBUG_OFF -- Configuring done -- Generating done -- Build files have been written to: /media/mysql-5.7.27 |
# make |
# make test |
# make install |
#디렉토리 권한 수정
디렉토리 권한 수정 |
# chmod -R 755 /usr/local/mysql |
# chown -R mysql:mysql /usr/local/mysql |
# chmod -R 755 /usr/local/mysql_data |
# chown -R mysql:mysql /usr/local/mysql_data |
#초기 MySQL 환경설정
# vi /etc/my.cnf |
#기본 파라미터 설정 [mysqld] datadir=/usr/local/mysql_data socket=/usr/local/mysql/mysql.sock # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.err pid-file=/usr/local/mysql_data/mysqld.pid |
# cd /usr/local/mysql/bin |
./mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql |
[root@mysqlnode1 bin]# ./mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql mysqld: [ERROR] Found option without preceding group in config file /etc/my.cnf at line 1! mysqld: [ERROR] Fatal error in defaults handling. Program aborted! [root@mysqlnode1 bin]# ./mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql 2022-01-18T04:17:51.316333Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2022-01-18T04:17:51.951932Z 0 [Warning] InnoDB: New log files created, LSN=45790 2022-01-18T04:17:52.088338Z 0 [Warning] InnoDB: Creating foreign key constraint system tables. 2022-01-18T04:17:52.173717Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 9a671942-7815-11ec-a6c2-08002789c151. 2022-01-18T04:17:52.182335Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened. 2022-01-18T04:17:52.184692Z 1 [Note] A temporary password is generated for root@localhost: ypqeR,wev6k> |
# MySQL 데이터파일 확인 |
[root@mysql bin]# cd /usr/local/mysql_data/ [root@mysql mysql_data]# ls auto.cnf ib_buffer_pool ibdata1 ib_logfile0 ib_logfile1 mysql performance_schema sys |
# SSL 환경구성 |
[root@mysqlnode1 bin]# ./mysql_ssl_rsa_setup Generating a 2048 bit RSA private key ............+++ ...................................................+++ writing new private key to 'ca-key.pem' ----- Generating a 2048 bit RSA private key ............................................................................+++ .........+++ writing new private key to 'server-key.pem' ----- Generating a 2048 bit RSA private key ....................+++ .....................+++ |
# MySQL 백그라운드 실행 |
[root@mysqlnode1 bin]# ./mysqld_safe --defaults-file=/etc/my.cnf --user=mysql & [1] 17881 [root@mysqlnode1 bin]# 2022-01-18T04:21:14.200945Z mysqld_safe Logging to '/var/log/mysqld.err'. 2022-01-18T04:21:14.264918Z mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql_data |
#프로세스 확인 [root@mysqlnode1 mysql]# ps -ef | grep mysqld root 17881 2704 0 13:21 pts/0 00:00:00 /bin/sh ./mysqld_safe --defaults-file=/etc/my.cnf --user=mysql mysql 18018 17881 1 13:21 pts/0 00:00:00 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql_data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/var/log/mysqld.err --pid-file=/usr/local/mysql_data/mysqld.pid --socket=/usr/local/mysql/mysql.sock root 18058 3482 0 13:21 pts/1 00:00:00 grep --color=auto mysqld |
# MySQL 접속 |
[root@mysql bin]# ./mysql -u root -p mysql -S /usr/local/mysql/mysql.sock Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.7.27 Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. |
# 패스워드 설정 |
ALTER USER 'root'@'localhost' IDENTIFIED BY 'oracle!'; flush privileges; |
mysql> show databases -> ; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec) |
# MySQL 종료 |
[root@mysqlnode1 bin]# ./mysqladmin -u root -p shutdown Enter password: 2022-01-18T04:51:27.751021Z mysqld_safe mysqld from pid file /usr/local/mysql_data/mysqld.pid ended [1]+ Done ./mysqld_safe --defaults-file=/etc/my.cnf --user=mysql |
# MySQL 유저 등록 |
# cd /usr/local/mysql/support-files |
# ls -alert magic mysqld_multi.server mysql-log-rotate mysql.server |
# cp mysql.server /etc/init.d/mysqld |
# chmod 775 /etc/init.d/mysqld |
$ su - mysql |
$ vi /etc/init.d/mysqld |
basedir=/usr/local/mysql datadir=/usr/local/mysql_data |
심볼릭 생성 $ ln -s /usr/local/mysql/mysql.sock /usr/local/mysql_data/mysql.sock |
# 환경변수 셋팅 |
$ vi . bash_profile |
# Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/.local/bin:$HOME/bin export MYSQL_HOME=/usr/local/mysql export PATH=$PATH:$MYSQL_HOME/bin: |
$ . .bash_profile |
# MySQL 실행 |
$ service mysqld start Starting MySQL.. SUCCESS! |
[mysql@mysqlnode1 ~]$ ps -ef | grep mysqld mysql 18578 1 0 13:55 pts/1 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql_data --pid-file=/usr/local/mysql_data/mysqlnode1.pid mysql 18733 18578 61 13:55 pts/1 00:00:10 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql_data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/var/log/mysqld.err --pid-file=/usr/local/mysql_data/mysqlnode1.pid --socket=/usr/local/mysql/mysql.sock mysql 18764 18402 0 13:55 pts/1 00:00:00 grep --color=auto mysqld |
# MySQL DB 구성 확인 |
[mysql@mysqlnode1 ~]$ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.7.27 Source distribution Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec) mysql> status -------------- mysql Ver 14.14 Distrib 5.7.27, for Linux (x86_64) using EditLine wrapper Connection id: 2 Current database: Current user: root@localhost SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 5.7.27 Source distribution Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8 UNIX socket: /usr/local/mysql/mysql.sock Uptime: 5 min 6 sec Threads: 1 Questions: 6 Slow queries: 0 Opens: 107 Flush tables: 1 Open tables: 26 Queries per second avg: 0.019 mysql> show variables like 'c%'; +--------------------------+----------------------------------+ | Variable_name | Value | +--------------------------+----------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/local/mysql/share/charsets/ | | check_proxy_users | OFF | | collation_connection | utf8_general_ci | | collation_database | utf8_general_ci | | collation_server | utf8_general_ci | | completion_type | NO_CHAIN | | concurrent_insert | AUTO | | connect_timeout | 10 | | core_file | OFF | +--------------------------+----------------------------------+ |
# 패스워드 변경 |
mysql> mysqladmin -u root password 'password 설정' |
# DB 생성 |
[mysql@mysqlnode1 ~]$ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.7.27 Source distribution Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> create database test1; Query OK, 1 row affected (0.00 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | test1 | +--------------------+ 5 rows in set (0.00 sec) mysql> show processlist -> ; +----+------+-----------+-------+---------+------+----------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+------+-----------+-------+---------+------+----------+------------------+ | 2 | root | localhost | NULL | Query | 0 | starting | show processlist | | 3 | root | localhost | test1 | Sleep | 202 | | NULL | +----+------+-----------+-------+---------+------+----------+------------------+ 2 rows in set (0.00 sec) |
#패스워드 변경 |
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'oracle!'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) 로그인 후 반드시 root 암호를 변경해 줍니다. 처음에 제공된 암호는 만료가 되는 암호이므로 반드시 변경하셔야 합니다. |
#접속 정책 생성
# 방화벽 해제 |
firewall-cmd --permanent --zone=dmz --add-service=mysql firewall-cmd --permanent --zone=public --add-port=3306/tcp firewall-cmd --reload firewall-cmd --list-ports |
mysql> grant all privileges on test1.* to 'USERNAME'@'%' identified by 'PASSWORD'; mysql> flush privileges; |
root 권한에 대해 외부에서 접속하게 하고자 할 때 mysql> grant all privileges on *.* to 'root'@'%' identified by 'oracle!'; |
반응형
'MySQL > MySQL Installation' 카테고리의 다른 글
Docker MySQL Replication 구성(이중화) (1) | 2024.12.09 |
---|---|
Docker MySQL8.0 설치 (0) | 2024.07.04 |
댓글