M2(Mac)용 VMWare로 가상화 만들기 - (4) MySQL 설치

2023. 12. 26. 00:27MySQL/Class

반응형

1. MySQL 8.0.33 다운로드

https://downloads.mysql.com/archives/community/

 

MySQL :: Download MySQL Community Server (Archived Versions)

Please note that these are old versions. New releases will have recent bug fixes and features! To download the latest release of MySQL Community Server, please visit MySQL Downloads. MySQL open source software is provided under the GPL License.

downloads.mysql.com

다운로드

 - 앞서 공유폴더를 만들었기 때문에 가상화 서버내에서 다운로드 할 필요는 없습니다.

 - 구버전(~5.7)을 설치하여 8.0 버전과의 차이점을 알아보고 싶었지만, M2용에서는 마땅한 구버전을 찾을수가 없었습니다.

    어쩔 수 없이 8.0 만 설치를 진행하게 되었습니다.

 

2. 설치

(1) mysql 사용자 생성

$ useradd mysql

 

(2) 폴더 생성

$ mkdir -p /mysql/local /data/mysql_data /log

 

(3) 설치 파일 압축 풀기 및 폴더명 변경

$ cd /mnt/hgfs
$ tar -xvf mysql-8.0.33-linux-glibc2.28-aarch64.tar -C /mysql/local

# 추후 다른 버전을 설치하여 혼용되지 않기 위해 폴더명을 달리하여 구분지으려고 합니다.
$ mv /mysql/local/mysql-8.0.33-linux-glibc2.28-aarch64 /mysql/local/mysql_8033

 

(4) 권한 변경

$ chown -R mysql:mysql /mysql /data /log

 

(5) my.cnf

$ vi /etc/my_8033.cnf      # 추후 다른 버전을 설치하여 혼용되지 않기 위해 my.cnf 파일을 이름을 달리하여 구분지으려고 합니다.

[client]
port    = 3306
socket  = /tmp/mysql_8033.sock

[mysqld]
read-only    # replication 시 replica(=slave) 에만 필요한 값입니다.
server-id = 300    # replication 시 동일한 server-id가 연결되지 않기 위해 고유값을 입력해야합니다.
port    = 3306
basedir = /mysql/local/mysql_8033
datadir = /data/mysql_data
socket  = /tmp/mysql_8033.sock

innodb_file_per_table    # 생성하는 모든 테이블을 각 파일로 관리를 하고자 하는 설정 값입니다.
innodb_buffer_pool_size=500M

log-error= /data/mysql_data/mysqld.err
log_error_verbosity=1    # 로그에 찍히는 에러 범위(notice, warning, error) 를 설정해주는 값입니다.

relay-log=relay    # replication 시 relay 로그의 파일 명 설정값입니다.

# my.cnf 파일 내용은 굉장히 많이 있으나, 설치 및 replication 연결까지 문제되지 않는 선에서만 셋팅을 하였습니다.

# my.cnf 파일에 기입되지 않은 나머지 파라미터들은 default 값으로 초기 설정이 될 것입니다.

# 필요하다면 하나씩 추가하여 사용할 것이며, 해당 내용도 어떤 기능을 하고 어떤때에 필요한지 정리해 볼 예정입니다.(위 내용도 포함)

(6) mysql.server

$ cp /mysql/local/mysql_8033/support_files/mysql.server /bin/

 

$ vi /bin/mysql.server

.
.
basedir=/mysql/local/mysql_8033
datadir=/data/mysql_data
.
.
mysqld_pid_file_path=/data/mysql_data/mysqld_8033.pid
.
.
$bindir/mysqld_safe --defaults-extra-file=/etc/my_8033.cnf --datadir="$datadir" --pid-file="$mysqld_pid_file_path" ....
.
.

 

(7) 초기화 설치 및 실행

$ /mysql/loca/mysql_8033/bin/mysqld --defaults-extra-file=/etc/my_8033.cnf --initialize --user=mysql
$ /bin/mysql.server start

 

 

(8) 보안 스크립트 실행

# 실행하면 초기 루트 암호를 물어보는데, 암호는 mysql 로그파일에 기입되어 있습니다.

temporary password

$ /mysql/local/mysql_8033/bin/mysql_secure_installation defaults-extra-file=/etc/my_8033.cnf -S /tmp/mysql_8033.sock

 

mysql_secure_installation 실행 화면

 

# 스크립트 내용을 요약하자면 아래와 같을 듯 합니다.

1. 패스워드가 만료되어서 변경해야돼! 현재 패스워드가 뭐고, 새로운 패스워드를 기입해.
2. 유효한 비밀번호 구성요소를 확인하고 보안을 강화할 수 있는 VALIDATE PASSWORD 구성 요소를 설정할래? No
3. 기존에 암호가 있는데 루트 비번 변경할거야? No
 - 이건 바로 앞전에 새로운 패스워드를 변경해줬기 때문에 변경해줄 필요가 없습니다.
4. 익명의 사용자를 제거 할래? Yes
5. 원격에서 루트 계정으로 로그인 허용 안할거지? Yes
6. test 데이터베이스 삭제할래? Yes
7. 지금까지 설정한 권한들을 reload 할래? Yes

 

3. 접속

(1) alias

$ vi /etc/profile
.
.
alias mys_8033='/mysql/local/mysql_8033/bin/mysql -u root -p -S/tmp/mysql_8033.sock'

$ source /etc/profile # profile 적용

 

alias 확인

(2) MySQL 접속

MySQL 접속 화면

 

 

이제 기본적인 설치는 끝났습니다.

다음에는 가상화 서버를 복제하여 여러 서버를 만드는 방법을 알아보도록 하겠습니다.

반응형