[MySQL][Install] - 5.7+CentOS 7-Source 설치
- Databases/MySQL
- 2019. 12. 14.
MySQL에서 제공하는 Source를 이용해서 Compile 후 설치하는 방법입니다.
리눅스 명령어가 익숙하고, 다른 Open Source 프로그램을 Compile방법을 이용해 설치를 해 본 경험이 있다면 편하게 하실 수 있습니다.
이전에는 mysql도 autools를 이용한 configure 명령으로 빌드 환경을 구성하고 컴파일을 진행했는데 이제는 cmake라는 것이 autotools를 대체했습니다. 하지만 다른 opensource project는 여전히 autotools를 많이 이용하고 있습니다. 그러나 조금씩 cmake로 넘어오는 추세입니다.
먼저 Source Code로 설치를 하기 위해선 OS에 몇가지 필요 Package(프로그램)을 설치해야 합니다.
이게 설치가 되어 있어야 Source Code가 Compile이 됩니다. 필요 Package는 다음과 같습니다.
■ 필수 설치 패키지 리스트 및 설치 확인
그냥 모르고 설치하는것보다는 필수 패키지가 어떤 역활을
하는지 알면 더 좋을것 같아 같이 설명드립니다. 그리고 패키지 설치후 잘 설치가 되었는지 확인하는 방법도 같이 설명드리겠습니다.
참고로 모든 설치는 root로 진행됩니다.
shell > su - root
+ cmake
패키지설명
make의 소스관리 문제점을 개선시켜 새롭게 나온 빌드 프레임워크 프로그램입니다. 기존 make보다 좀더 편리하게 관리하고 빌드되도록 만든 프로그램입니다.
centos 7.x 이상은 지원이 되며 6.x이하는 수동으로 설치해 주어야 합니다.
참고 URL : http://www.cmake.org.
설치방법 및 확인방법
OS설치시 개발자 옵션을 선택하셨다면 설치가 되어 있습니다.
shell > rpm -qa | grep -i cmake
cmake-2.8.12.2-2.el7.x86_64
위와 비슷한 결과가 나오지 않으면 설치를 합니다.
shell > yum install cmake
+ make
* 패키지 설명
직접 소스를 빌드하는 프로그램입니다. 소스를 빌드하여 기계어로 만들어주는 핵심적인 역활을 하는 프로그램입니다. 반드시 설치하셔야 합니다. GNU make 3.75 이상 버전을 강력히 권고합니다.
설치방법 및 확인방법
OS설치시 개발자 옵션을 선택하셨다면 설치가 되어 있습니다.
shell> rpm -qa | grep -i make
make-3.82-24.el7.x86_64
위와 비슷한 결과가 나오지 않으면 설치를 합니다.
shell > yum install make
+ Ansi c++컴파일러
* 패키지설명
ANSI C++ compiler가 필요합니다. 4.2.1 이상이 필요합니다. Mysql이 소스로 제공되므로 컴파일 과정이 반드시 필요한데 이 패키지가 그 역활을 해줍니다.
그런데 centos에서 얘기하는 C 혹은 C++ 라이브러리는 다음과 같은 것들을 얘기한다고 합니다.
1 .autoconf
2. automake
3. binutils
4. bison
5. flex
6. gcc (c compiler)
7. gcc-c++ (c++ compiler)
8. gettext
9. libtool
10. make
11. patch
12. pkgconfig
13. redhat-rpm-config
14. rpm-build
15. rpm-sign
그래서 한꺼번에 설치하는 방법을 사용합니다.
설치방법
shell > yum group install "Development Tools”
이렇게 하면 개발관련된 모든 패키지들을 자동으로 설치하게 됩니다.
물론 C, C++ Ansi 라이브러리도 설치가 됩니다
혹시 OS설치시 개발자 옵션을 선택하셨다면 설치가 되어 있습니다.
+ Openssl
* 패키지설명
OpenSSL은 네트워크를 통한 데이터 통신에 쓰이는 프로토콜인 TLS와 SSL의 오픈 소스 구현판입니다. C 언어로 작성되어 있는 중심 라이브러리 안에는, 기본적인 암호화 기능 및 여러 유틸리티 함수들이 구현되어 있스니다. WITH_SSL 옵션을 이용하여 설정합니다.
* 설치방법
shell > rpm -qa | grep -i openssl
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
없다면 설치 진행합니다.
shell > yum install openssl openssl-devel
+ ncurses library
* 패키지설명
프로그래머가 텍스트 사용자 인터페이스를 터미널 독립 방식으로 기록할 수 있도록 API를 제공하는 프로그래밍 라이브러리입니다. GUI같은 응용 소프트웨어를 개발하는 툴킷이라고 합니다.
설치방법
OS설치시 개발자 옵션을 선택하셨다면 설치가 되어 있습니다.
shell > rpm -qa | grep -i ncurses
ncurses
ncurses-base
ncurses-libs
ncurses-devel
없다면 설치 진행합니다.
shell > yum install ncurses ncurses-base ncurses-libs ncurses-devel
위의 설치 화면이 나오는지 확인합니다.
+ perl 관련
* 패키지설명
스크립트 언어입니다. 터미널에서 작성해서 바로 수행이 가능하며 python과 비슷한 특징을 가진 언어입니다. perl 관련 스크립트를 작성하려면 설치가 필요합니다.
* 설치방법
OS설치시 개발자 옵션을 선택하셨다면 설치가 되어 있습니다. 위의 그룹 설치인 yum group install "Development Tools”로 설치를 하셨다면 이미 설치가 되었을 겁니다.
shell > rpm -qa | grep -i perl
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
이외 많은 것들이 출력됩니다.
따로 설치를 원할 시 아래와 같이 입력하고 설치합니다.
shell > yum install perl
+ gnu tar
mysql source는 gnu tar라는 압축툴로 압축되어 있습니다. 압축을 풀려면 설치가 필요하나 기본적으로 설치가 되어 있습니다.
+ git
* 패키지설명
mysql 관련해서 소스를 배포해보고 싶으시다거나 엔지니어로써 참여를 원하시면 git 설치를 하셔야 합니다.
* 설치방법
OS설치시 개발자 옵션을 선택하셨다면 설치가 되어 있습니다.
shell > rpm -qa | grep -i git
git-1.8.3.1-20.el7.x86_64
없다면 설치 진행합니다.
shell > yum install git
+ bison
* 패키지설명
GNU 파서 생성기로 yacc를 개선하고 대체하기 위해 만들어졌습니다. 이 프로그램 도구는 LALR 방식으로 작성된 문법을 처리하고 해석하여 C코드로 만들어 줍니다. 흔히 사칙 계산기부터 고도의 프로그래밍 언어까지 다양한 범위의 언어를 만드는데 사용할 수 있습니다.
버전은 2.1 이상을 설치하셔야 합니다.
* 설치방법
OS설치시 개발자 옵션을 선택하셨다면 설치가 되어 있습니다.
shell > rpm -qa | grep -i bison
bison-3.0.4-2.el7.x86_64
없다면 설치 진행합니다.
yum > install bison
+ m4
Solaris Express에 설치하신다면 m4가 반드시 설치되야 합니다. bison과 더불어 꼭 설치되어야 합니다. 우린 centos에 설치되므로 넘어가셔도 됩니다.
+ boost
* 패키지설명
각종 데이터 구조와 알고리즘을 모아둔 C++라이브러리 입니다. 거의 표준 패키지로 봐도 무관할만큼 우수한 라이브러리 모임이라고 합니다. 여러 개발자들이 개발에 참여했으며 게임서버나 기타 연산 성능이 필요한 곳에 많이 쓰인다고 합니다. 이건 mysql에서 몇가지 옵션으로 자동으로 다운로드 및 설치가 됩니다. 그러나 인터넷이 안되는 환경을 위해 boost library가 포함된 mysql을 제공하고 있습니다.
■ MySQL 옵션 설정 및 빌드와 설치
먼저 mysql 소스를 받아야 합니다.
https://dev.mysql.com/download
이곳으로 가면 맨 아래 download archive라는곳이 있습니다. 이곳에서 5.7버전을 다운로드 받을 수 있습니다. 현재 mysql 최신 버전은 8.x라 5.7 이하 버전을 받을시에는 이곳으로 가셔서 다운로드 받으셔야 합니다.
직접적으로 이 url로 가셔도 됩니다.
https://downloads.mysql.com/archives/community/
이 페이지에 가서 아래 product version을 5.7 최신 버전으로 선택합니다. 이 글 기준으로는 5.7.27이 되겠습니다. 그리고 Operating System을 Source로 선택합니다.
아래 2가지 버전이 있는데 첫번째는 boost library가 없는 압축 파일입니다.
Generic Linux (Architecture Independent), Compressed TAR Archive
아래는 boost library가 포함된 파일입니다.
Generic Linux (Architecture Independent), Compressed TAR Archive
Includes Boost Headers
먼저 mysql에서 사용할 계정을 만들어 줍니다. mysql은 내부적으로 mysql이라는 계정을 이용해서 엔진을 컨트롤합니다.
shell> groupadd mysql
shell> useradd -r -g mysql -s /bin/false mysql
mysql 소스를 받은 디렉토리로 이동합니다.
디렉토리로 이동해 소스를 풀어주고 압축을 푼 디렉토리로 이동합니다.
shell> tar zxvf mysql-VERSION.tar.gz
shell> cd mysql-VERSION
압축을 풀고 난 후 본격적으로 빌드환경에 필요한 cmake를 실행합니다. 이때 어떤 옵션들을 설정할지 또는 활성화시키고 중지시킬지 결정해야 합니다. 이 cmake에 대한 옵션들의 자세한 설명은 mysql 홈페이지의 기술문서에 나와 있습니다. 또한 터미널에서도 명령을 통해 확인이 가능합니다. 어떤 옵션들이 있는지 확인해 보고 싶으시면 다음과 같은 명령어를 입력하시면 확인해 보실 수 있습니다.
shell> cmake .. -L # 옵션에 대해 간략히 보기
shell> cmake .. -LH # 옵션에 대한 도움말
shell> cmake .. -LAH # 모든 파라미터에 대한 설명 및 도움말
shell> cmake .. # interactive display
참고) MySQL 공식 홈페이지의 옵션 상세 설명 페이지.
https://dev.mysql.com/doc/mysql-sourcebuild-excerpt/5.7/en/source-configuration-options.html
일단 어느정도 다양한 기능이 지원되는 빌드 환경으로 만들어 보겠습니다.
여기에서 빌드되어 생성된 기능들은 따로 차차 설명드리겠습니다.
아래 내용은 제가 주로 사용하는 cmake 빌드 환경 구성시 사용하는 옵션입니다. 제 생각에는 이정도면 필요한 왠만한 기능들은 지원되지 않을까 생각합니다. 이외 더 필요하신 옵션이 있다면 사용하시면 됩니다.
<컴파일 옵션 설명 예제>
-DCMAKE_INSTALL_PREFIX : 설치 디렉토리
-DWITH_BOOST=directory : 다운로드한 boost 를 위치시킬 디렉토리 위치
-DDOWNLOAD_BOOST=1 : boost library가 없을시 자동으로 다운로드
-DSYSCONFDIR : my.cnf 파일 기본 위치
-DWITH_ARCHIVE_STORAGE_ENGINE=1 : archive storage engine 사용
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 : 블랙홀 엔진 사용여부
-DWITH_EXAMPLE_STORAGE_ENGINE=1 : 예제 생성 엔진 사용여부
-DWITH_FEDERATED_STORAGE_ENGINE=1 : 이기종 DB 연결 엔진
-DWITH_PARTITION_STORAGE_ENGINE=1 : 파티션(파티셔닝) 엔진 사용여부
-DENABLED_PROFILING : 프로파일링 기능 사용 여부
-DWITH_CURL=system or curl directory : CURL을 외부 CURL사용할지 System CURL사용할지 여부
-DOPTIMIZER_TRACE=1 : 옵티미아저 트레이스 사용 여부
-DWITH_UNIXODBC=1 : ODBC 사용여부
-DWITH_INNODB_MEMCACHED=1 : 멤캐쉬 스토리지 사용여부
-DWITH_NUMA=on : Linux Numa 시스템 사용여부
-DWITH_SSL=system or directory : ssl 사용여부
-DWITH_ZLIB : 압축기능을 사용하는 위치. 시스템 혹은 번들
-DMYSQL_TCP_PORT : 3306번 이외에 다른 포트를 지정하고 싶을때 사용
-DMYSQL_UNIX_ADDR : Unix Socket File의 위치를 지정하고 싶을때 사용. 기본은 /tmp/mysql.sock
-DWITH_LIBWRAP=1 : 시스템 관리자의 요청으로 Tcp Wrapper를 사용해야 할시 사용합니다(호스트서버의 hosts.allow hosts.deny 파일을 이용해서 클라이언트 접속 허용 여부를 설정함.).
-DWITH_SYSTEMD=1 : centos 7이상부터 지원됩니다. systemd라는 시스템 관리툴을 이용해서 MySQL 제어합니다. systemctl 툴을 이용하지 않고 mysqld_safe로 서버를 제어하고 싶다면 이 옵션은 제거합니다. 또한 이 옵션 활성화시 mysqld_safe, mysqld_multi 같은 스크립트가 설치되지 않고 대신 mysqld_pre_systemd가 설치됩니다.
여기서 NUMA 기능과 libwrap기능은 시스템 환경설정이 별도로 필요한 기능들입니다. 이 포스트의 범위를 벗어남으로 별도로 기회가 될 시 설명드리겠습니다.
또한 위의 환경설정은 기본 위치를 정할 뿐, 추후 환경설정파일에서 다시 위치를 지정할 수 있습니다.
<컴파일 옵션 실 예제>
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DWITH_BOOST=/usr/local/src/boost \
-DDOWNLOAD_BOOST=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DENABLED_PROFILING=1 \
-DWITH_CURL=system \
-DOPTIMIZER_TRACE=1 \
-DWITH_INNODB_MEMCACHED=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=bundled
조금 기다리시면 터미널에 맨 아래 메세지가 떨어지는데 특별한 에러가 보이지 않는다면 빌드환경 구성이 성공한겁니다. 만약 에러가 떨어지면 이유를 분석해 필수 필요패키지를 추가로 설치하거나, 해당 패키지에 대한 환경 구성을 다시 해주거나, 옵션 변경을 통해 해결해 주어야 합니다.
이제 컴파일을 해보도록 하겠습니다.
shell> make
꽤 오래 시간이 걸립니다. 40분 이상 될수도 있습니다. 서버 사양에 따라 다릅니다. 컴파일이 진행되다가 멈추는 경우도 가끔 있는데 이때는 원인을 찾아서 해결을 해주어야 합니다.
shell> make test
컴파일된 프로그램을 전체적으로 테스트를 합니다.
shell> make install
위에 install prefix로 지정된 디렉토리에 설치를 진행합니다.
■ 후속작업
설치가 끝났으니 후속작업을 진행해야 합니다.
먼저 mysql data들이 설치될 수 있는 디렉토리를 만들어주어야 합니다. 보통 설치경로 밑에 ‘data’ 란 directory를 만들고 여기다 설치를 합니다.
우리가 설치한 디렉토리는 /usr/local/mysql 입니다. 이곳으로 디렉토리를 옮겨서 data directory를 생성합니다.
그리고 디렉토리의 권한을 바꾸어 줍니다.
shell> cd /usr/local/mysql
shell> mkdir data
shell> chown mysql:mysql data
shell> chmod 750 data
■ 초기 MySQL 환경 설정
mysql install을 완료하게 되면 /etc/my.cnf와 /etc/my.cnf.d 라는 파일들이 생깁니다.
my.cnf에 몇가지 파라미터 설정이 필요한데 다음과 같이 파라미터를 초기화 해줍니다.
vi /etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/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
※ 이제부터 2가지 관리방식으로 나뉘게 됩니다.위의 컴파일 옵션중 -DWITH_SYSTEMD 옵션에 따라 나뉘게 됩니다.
위에서 설명드렸듯이 -DWITH_SYSTEMD옵션을 1로 주었다면 시스템에서 관리되는 방법(systemctl을 이용하는)을 이용하는것이고 이 옵션을 주지 않았다면 직접 관리하는 방법이 됩니다.
■ 직접 관리하는 방법[systemctl을 이용하지 않는 방법. -DWITH_SYSTEMD 옵션을 주지 않음]
암호를 초기화하는 방법은 다음 두가지 방법이 있는데 하나는 일반 초기화입니다. root password를 자동으로 부여해 줍니다. 하나는 추후 root패스워드를 생성하는 방법입니다.
* 초기 root 암호 생성 및 초기화방법
shell > cd /usr/local/mysql
shell > bin/mysqld --initialize --user=mysql
* 초기 root암호 미 생성 및 초기화
shell > cd /usr/local/mysql
shell > bin/mysqld --initialize-insecure --user=mysql
우리는 root암호 생성 및 초기화 방법으로 수행합니다. 그런데 조금더 옵션을 붙여서 수행합니다.
shell> bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql
수행 후 마지막에 보면 root password가 생성이 됩니다. 잘 적어둡니다.
이렇게 하면 data디렉토리에 mysql 관련 파일들이 설치되어 있는걸 확인해 보실 수 있습니다.
shell > cd /usr/local/mysql/data
shell > ls -al
ssl 관련 환경도 구성합니다.
shell > bin/mysql_ssl_rsa_setup
이제 MySQL을 실행해보겠습니다.
shell > bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &
Starting MySQL. SUCCESS!
반드시 맨 뒤에 &를 붙입니다. 백그라운드로 실행하겠다는 옵션입니다.
엔진이 실행되었으니 mysql에 접속해 보겠습니다.
shell> mysql -u root -p
password
암호를 입력합니다.
mysql > show databases;
performance_schema
mysql
tmp
information_schema
mysql>
mysql에 접속 및 테스트가 이상없이 실행되었습니다.
로그인 후 반드시 root 암호를 변경해 줍니다. 처음에 제공된 암호는 만료가 되는 암호이므로 반드시 변경하셔야 합니다.
참고로 강력한 암호(숫자.영문.영문대문자.특수문자등이)가 설정되지 않으면 다음과 같은 에러가 발생합니다.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY ‘admin1234';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> alter user 'root'@'localhost' identified by '!MyNewPass4';
초기 암호 정책에 따라 대소문자,특수문자,숫자가 반드시 석여야 합니다.
이렇게 하면 root 암호가 변경됩니다.
엔진의 종료 방법은 다음과 같습니다.
shell > bin/mysqladmin -uroot -p shutdown
Enter password:
암호를 입력하면 mysql server가 종료됩니다.
■ 시작 및 종료 스크립트 설정
위에 있는 mysql 서버 시작 방법으로 시작하면 명령를 기억하기도 까다롭고 수행하기도 어렵습니다. 그래서 mysql은 서버 시작 스크립트를 제공하고 있습니다.
shell> cp support-files/mysql.server /etc/init.d/mysqld
이렇게 복사를 해주신다음 mysql서버를시작할때는 다음과 같이 해줍니다.
shell > /etc/init.d/mysqld start
Starting MySQL. SUCCESS!
중지할때는 다음과 같이 해줍니다.
shell > /etc/init.d/mysqld stop
Shutting down MySQL.. SUCCESS!
■ 시스템 관리를 통하여[systemctl을 이용하는 방법. -DWITH_SYSTEMD 옵션을 1로 지정]관리하는 방법.
이 옵션을 설정하였다면 위에 설명했던 mysqld_safe라는 시작 스크립트가 없습니다. 대신 별도의 스크립트를 만들어 수행해야 합니다.
다음의 위치에 다음 파일을 만듭니다.
위치 : /usr/lib/systemd/system/mysqld.service
mysqld.service 파일에 다음의 내용을 입력합니다.
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
Type=forking
PIDFile=/var/run/mysqld/mysqld.pid
# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0
# Execute pre and post scripts as root
PermissionsStartOnly=true
# Needed to create system tables
ExecStartPre=/usr/local/mysql/bin/mysqld_pre_systemd
# Start main service
ExecStart=/usr/local/mysql/bin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS
# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql
# Sets open_files_limit
LimitNOFILE = 5000
Restart=on-failure
RestartPreventExitStatus=1
PrivateTmp=false
그리고 터미널에 다음과 같이 입력해 줍니다.
shell > systemctl enable mysqld.service
Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.
위와 같은 결과가 나옵니다.
MySQL서버를 시작합니다.
shell > systemctl start mysqld.service
상태를 확인합니다.
shell > systemctl status mysqld.service
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2019-12-25 21:49:50 KST; 7s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 2269 ExecStart=/usr/local/mysql/bin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
Process: 2199 ExecStartPre=/usr/local/mysql/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 2272 (mysqld)
CGroup: /system.slice/mysqld.service
└─2272 /usr/local/mysql/bin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
Dec 25 21:49:50 mysql57 mysqld[2269]: 2019-12-25T12:49:50.365100Z 0 [Note] InnoDB: Buffer pool(s) load completed at 191225 21:49:50
Dec 25 21:49:50 mysql57 mysqld[2269]: 2019-12-25T12:49:50.370536Z 0 [Note] Skipping generation of SSL certificates as options related to SSL are specified.
Dec 25 21:49:50 mysql57 mysqld[2269]: 2019-12-25T12:49:50.371370Z 0 [Warning] CA certificate /home/certs/ca.pem is self signed.
Dec 25 21:49:50 mysql57 mysqld[2269]: 2019-12-25T12:49:50.371447Z 0 [Note] Skipping generation of RSA key pair as key files are present in data directory.
Dec 25 21:49:50 mysql57 mysqld[2269]: 2019-12-25T12:49:50.372182Z 0 [Note] Server hostname (bind-address): '*'; port: 3306
Dec 25 21:49:50 mysql57 mysqld[2269]: 2019-12-25T12:49:50.372869Z 0 [Note] IPv6 is available.
Dec 25 21:49:50 mysql57 mysqld[2269]: 2019-12-25T12:49:50.372902Z 0 [Note] - '::' resolves to '::';
Dec 25 21:49:50 mysql57 mysqld[2269]: 2019-12-25T12:49:50.372931Z 0 [Note] Server socket created on IP: '::'.
Dec 25 21:49:50 mysql57 mysqld[2269]: 2019-12-25T12:49:50.381889Z 0 [Note] Event Scheduler: Loaded 0 events
Dec 25 21:49:50 mysql57 systemd[1]: Started MySQL Server.
위와 같은 결과가 나옵니다.
mysql 에러로그(정보로그)는 시스템과 통합되어 /var/log/message에 쌓이게 됩니다. 이 파일을 열어보면 초기 root암호가 나옵니다. 아래와 같은 내용과 비슷하게 출력이 됩니다.
[Note] A temporary password is generated for root@localhost: ioPDPo%<8,;H
로그인을 시도합니다.
shell> mysql -u root -p
password
암호를 입력합니다.
mysql > show databases;
performance_schema
mysql
tmp
information_schema
mysql>
로그인 후 반드시 root 암호를 변경해 줍니다. 처음에 제공된 암호는 만료가 되는 암호이므로 반드시 변경하셔야 합니다.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '<신규 root 암호>';
MySQL 서버 중지방법은 다음과 같습니다.
shell > systemctl stop mysqld.service
■ 원격 설정
centos, rhel은 기본적으로 방화벽이 설정되어 있습니다. 그래서 Mysql이 접속할 수 있도록 port를 오픈해 주어야 접속이 가능합니다. 기본 포트는 3306입니다.
다음과 같이 방화벽 포트를 오픈해 줍니다.
centos6
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
centos7
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을 접속할 수 있습니다.
'Databases > MySQL' 카테고리의 다른 글
[MySQL][Admin] - 기본으로 제공되는 프로그램들 (0) | 2020.01.04 |
---|---|
[MySQL][Install] - 8.0+CentOS 7.x - Source (2) | 2019.12.31 |
[MySQL][Install] - 8.0+CentOS 7.x-RPM 설치 (0) | 2019.12.29 |
[MySQL][Install] - 5.7 Upgrade 방법 (0) | 2019.12.21 |
[MySQL][Install] - 5.7 + CentOS 7(CentOS6포함) RPM 설치방법 (0) | 2019.12.09 |