MySQL

MySQL 8.0.26 설치

techapi 2025. 3. 11. 22:34
반응형

1. 참고 사이트

https://blog.tookbra.com/2017/08/11/mysql-install/

 

: mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz

https://dbwriter.io/installation-mysql80/

 

2. 설치 순서

 2.1. 사용자 등록

groupadd -r mysql && useradd -r -g mysql -s /bin/false -M mysql

 

폴더 등록

mkdir -p /var/data/mysql

mkdir -p /var/log/mariadb

mkdir -p /var/run/mariadb

mkdir -p /var/log/mysql

mkdir -p /var/lib/mysql

 

touch /var/log/mariadb/mariadb.log

touch /var/run/mariadb/mariadb.pid

 

chown -R mysql:mysql /var/data/mysql /var/log/mariadb /var/run/mariadb /var/log/mysql /var/lib/mysql

 

2.2. mysql  다운로드

wget -c https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz

mv mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz /usr/local

cd /usr/local

tar xvfz mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz

 

cp -Rf ./mysql-5.7.36-linux-glibc2.12-x86_64 ../mysql

 

cd mysql

chown -R mysql:mysql .

 

 

yum install libaio.*

 

## /data/mysql 폴더 생성 ##

mkdir -p /data/mysql

chown mysql.mysql /data/mysql

 

./bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --initialize

 

à /var/log/mysql/error.log 임시 암호 있음

 

 

## /etc/init.d 등록 ##

cp support-files/mysql.server /etc/init.d/mysqld

 

## /etc/init.d/mysqld 하단에 data_dir / base_dir 입력

basedir=/usr/local/mysql

datadir=/data/mysql

 

## default mysql DB 생성 ##

mysql_secure_installation

  

2.3. my.cnf 등록

[client]

#no-beep

socket =/var/lib/mysql/mysql.sock

port=3306

 

[mysql]

default-character-set=utf8mb4

 

[mysqld]

bind-address=0.0.0.0

basedir=/usr/local/mysql

datadir=/data/mysql

socket=/var/lib/mysql/mysql.sock

port=3306

open_files_limit=65535

symbolic-links=0

character-set-server=utf8mb4

default-storage-engine=INNODB

server-id=1

max_connections=2000

#query_cache_size=0

table_open_cache=2000

tmp_table_size=246M

thread_cache_size=300

innodb_log_file_size = 1024M

#innodb_strict_mode=0

innodb_strict_mode=on

log_bin_trust_function_creators=1

 

slow_query_log = 1

slow_query_log_file = /var/log/mysql/slow.log

log-error = /var/log/mysql/error.log

 

explicit_defaults_for_timestamp = TRUE

 

#sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

 

[mysqld_safe]

log-error=/var/log/mariadb/mariadb.log

pid-file=/var/run/mariadb/mariadb.pid

 

3. 환경 추가

/etc/profile 추가

PATH=$PATH:/usr/local/mysql/bin

 

4. Mysql 시작

## 시작 ##

service mysqld start

/usr/local/mysql/bin/mysql –u root –p

 

## 방화벽 3306 포트 추가 ##

 

 

5. 암호 변경 / 권한 추가

 ## mysql.7.x 사용자 권한 부여;

 

사용자 암호 변경 포함;

update user set password=password('1') where user='root';

 

grant all privileges on *.* to root@'%' identified by '123456';

grant all privileges on *.* to root@'localhost' identified by '123456';

 

flush privileges;

 

## mysql 8.x 사용자 권한 부여

 

ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '#!tobe1235';

 

CREATE USER 'root'@'%' IDENTIFIED BY '#!tobe1235';

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

 

flush privileges;

 

  

## mysql ssl 사용 참고 사이트 ##

 

https://susoterran.github.io/mysql/mysql_ssl/

 

 

6. Mysql 권한 수정 안될 경우

UPDATE mysql.user SET Grant_priv='Y', Super_Priv='Y' WHERE user='root' AND host='%';

 

FLUSH PRIVILEGES;

 

반응형

'MySQL' 카테고리의 다른 글

Mysql 서비스 감시 체크 예시  (0) 2025.03.12
Maria DB 10.1.22 설치  (0) 2025.03.11
MySQL 5.5 소스 설치  (0) 2025.03.11