줄기세포

[mysql] mysql 설치 - Centos 7.6 본문

DB/mysql

[mysql] mysql 설치 - Centos 7.6

줄기세포(Stem_Cell) 2022. 1. 17. 18:01

최근에는 DB도 오픈소스가 대세이다.

여러 DB를 배워보기 위해서 차근차근 공부하고 테스트하여 내용을 정리하여 포스팅을 진행하려 한다.

부정확한 내용이나 모호한 내용이 포함되 있을 수 있음.

 

가장 먼저 설치해본 DB는 MySQL이다.

 

1. jdk 및 MySQL 다운

jdk는 1.7 버전을 다운받고, MySQL도 GPL버전을 다운 받는다.

GPL이 무료버전인데, 소프트웨어의 라이선스와 관련된 내용은 복잡하기도 하고 자세히 모르니 생략

 

2. 서버에 업로드 한다. (sftp 등)

서버에 ftp를 이용하여, jdk와 MySQL.tar 파일을 업로드한다.

 

3. jdk설치

# 압축해제
$ tar -xzvf jdk-7u80-linux-x64.tar.gz
$ mv jdk1.7.0_80/ java

# /usr/local/bin/ 에 jdk 이동
$ mv java/ /usr/local/bin/

# alternatives 를 이용하여 java를 /bin에 등록
$ alternatives --set java /usr/local/bin/java/bin/java
$ alternatives --set javac /usr/local/bin/java/bin/javac
$ alternatives --set jar /usr/local/bin/java/bin/jar

# java 버전 확인
$ java -version

 

4. 유저생성

# 그룹생성 및 유저생성
$ groupadd dba -g 1024
$ useradd mssql -g dba -u 1020


# 확인방법
$ cat /etc/passwd
..
mysql:x:1020:1024::/home/mysql:/bin/bash

 

5. MySQL.tar파일 mysql로 이동

# 압축해제 및 파일 이동
$ tar -xvf mysql-5.7.36-el7-x86_64.tar
mysql-test-5.7.36-el7-x86_64.tar.gz
mysql-5.7.36-el7-x86_64.tar.gz

$ ll
...
-rw-r--r-- 1 mysql dba 767144448 Jan  6 20:50 mysql-5.7.36-el7-x86_64.tar
-rw-r--r-- 1 mysql dba 732667171 Sep  7 16:56 mysql-5.7.36-el7-x86_64.tar.gz
-rw-r--r-- 1 mysql dba  34474531 Sep  7 16:54 mysql-test-5.7.36-el7-x86_64.tar.gz

$ tar -xzvf mysql-5.7.36-el7-x86_64.tar.gz
...


$ mv mysql-5.7.36-el7-x86_64 /var/lib/mysql
$ exit
$ chown -R mysql:dba /var/lib/mysql	# root계정

 

6. bash_profile에 mysql path설정

$ su - mysql
$ vi ~/.bash_profile
export MYSQL_HOME=/var/lib/mysql

export PATH=$PATH:$MYSQL_HOME/bin
export LD_LIBRARY_PATH=$LDLIBRARY_PATH:$MYSQL_HOME/lib

:wq

$ source ~/.bash_profile

 

7. my.cnf 생성

mysql의 config파일을 만든다.

일반적으로 운영기라면 데이터파일별로 disk를 생성하여 사용할텐데 

실습에서는 하나의 disk를 데이터파일 경로에 마운트 했습니다.

 

아래와 같은 과정으로 설정하면 됩니다.

fdisk /dev/xvdb
mkfx.xfs /dev/xvdb
mount <source> <directory>
/etc/fstab 등록
$ vi ~/my.cnf

[client]
default-character-set=utf8
port=3306
socket=/var/lib/mysql/mysql.sock


[mysqld]
socket=/var/lib/mysql/mysql.sock
basedir=/var/lib/mysql
datadir=/datafile		# 데이터 파일 경로 따로설정
user=mysql
key_buffer_size=64M
max_allowed_packet=32M
query_cache_size=32M
max_connections=2625
max_connect_errors=2000000
wait_timeout=60

explicit_defaults_for_timestamp = 1
pid-file=/var/lib/mysql/mysqld.pid
log-error=/var/lib/mysql/logs/mysqld.log
character-set-server=utf8
collation-server=utf8_general_ci

bulk_insert_buffer_size=0

:wq

 

 

8. mysql 초기화 및 시작

config파일에 설정값대로 database등을 만듭니다.

 

# mysql 초기설정
$ mysqld --defaults-file=/home/mysql/my.cnf --initialize

시작 명령어를 .sh로 담아서 사용하려 합니다.

$ vi ~/mysql-start.sh

/var/lib/mysql/bin/mysqld --defaults-file=/home/mysql/my.cnf &

:wq

# 쉘파일에 실행권한
$ chmod +x ~/mysql-start.sh
#시작
$ ./mysql-start.sh

 

9. 비밀번호 확인 / 접속 / 변경

비밀번호 확인>

inititalize를 하면 system log에서 임시비밀번호를 확인할 수 있다.

vi $MYSQL_HOME/logs/mysqld.log


2022-01-07T07:02:01.987978Z 0 [Warning] CA certificate ca.pem is self signed.
2022-01-07T07:02:02.395859Z 1 [Note] A temporary password is generated for root@localhost: ygOKdfJj_1gK

:wq

passwd: ygOKdfJj_1gK

 

 

로그인 방법>

기본 소켓경로는 /etc/mysql.sock 이지만, my.cnf로 socket의 경로를 따로 주었기 때문에, 로그인 변수로 입력해준다.

mysql> mysql -u root -p -S <socket경로/ my.cnf참조>

mysql> mysql -u root -p -S /var/lib/mysql/mysql.sock

[mysql@HS-TEST mysql]$ mysql -u root -p -S /var/lib/mysql/mysql.sock
Enter password: ygOKdfJj_1gK
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.36 MySQL Community Server (GPL)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

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>

 

 

비밀번호 변경>

 

mysql> show databases;

mysql> use mysql;

mysql> alter user 'root'@'localhost' identified with mysql_native_password by 'mysql';

mysql> flush privileges;
mysql> exit

 

 

shutdown 방법>

mysql -u root -p shutdown -S <socket경로/ my.cnf참조>

$ mysqladmin -u root -p shutdown -S /var/lib/mysql/mysql.sock

 

 

Comments