개발환경설정

[리눅스] mysql 설치하기 ( 일반, dokcer, DBeaver )

솔헬레나 2023. 5. 22. 15:41

# Mysql 설치 및 설정하기

 

1. 우분투 서버 업데이트

$ sudo apt-get update

 

2. mysql 설치

$ sudo apt-get install mysql-server

 

3. 외부 접속 기능 설정 ( 포트 3306 오픈)

$ sudo ufw allow mysql

 

4. mysql 실행

$ sudo systemctl start mysql

 

5. 서버 재시작 시 mysql 자동 재시작 설정

$ sudo systemctl enable mysql

 

6. mysql 실행 

# root로 로그인
$ sudo /usr/bin/mysql -u root -p

# userID로 로그인
$ mysql -u {userID} -p

참고 ) 서비스 재시작 - 변경사항의 정상적용 확인 

sudo service mysql start

 

# Mysql 설정하기

7. 사용자 정보 확인

mysql> SELECT User, Host, authentication_string FROM mysql.user;

8. 데이터베이스 생성과 확인

mysql> create database sample_db;
mysql> show databases;

9.  sample_db를 사용할 계정 생성 및 확인

- localhost로 쓰여있으면 설치된 로컬 서버에서만 접근이 가능
- %로 설정 시 어디에서나 접근이 가능.

mysql> create user 'testuser'@'localhost' identified by 'password';
mysql> create user 'testuser'@'%' identified by 'password';
mysql> flush privileges;
mysql> select User, Host, authentication_string from mysql.user;

10. 계정에 권한부여

# testuser 계정이 '데이터베이스이름'에만 접근 가능하도록 설정
mysql> GRANT ALL PRIVILEGES ON 데이터베이스이름.* FOR'testuser'@'localhost';

# testuser가 모든 데이터베이스에 접근가능하도록 설정
mysql> GRANT ALL PRIVILEGES ON *.* FOR'testuser'@'localhost';

# testuser가 '데이터베이스이름'에만 접근가능하도록 설정
mysql> GRANT ALL PRIVILEGES ON 데이터베이스이름.* TO 'testuser'@'localhost';


# 변경사항 적용 , 반드시 해야함
mysql> FLUSH PRIVILEGES;

#testuser 의 권한 확인
mysql> show grants for 'testuser'@'localhost';
mysql> select User, Host, authentication_string from mysql.user;

 

*참고) mysql 버전 확인

mysql> show variables like "%version%";

*참고) mysql 비밀번호 변경

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('바꿀비번');

*참고) mysql 종료 후 shell로 복귀

mysql> exit

# 이외의 기타설정 

*) max Connection , 초기타임존 등 초기설정 추가

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]
#bind-address = 127.0.0.1 

collation-server = utf8mb4_unicode_ci
character-set-server = utf8mb4
group_concat_max_len=1048576
sort_buffer_size=4194304

max_connections = 2000

default-time-zone='utc'

 

*) 기본셋팅 값 추가

sudo vi /etc/mysql/conf.d/mysql.cnf

mysql > default-character-set=utf8mb4

 

*) 타임존 데이터 설정

mysql_tzinfo_to_sql /usr/share/zoneinfo | sudo mysql -uroot -p mysql

*) 프로시저 생성권한 추가 

- 프로시저 생성 권한 추가
show global variables like 'log_bin_trust_function_creators';
 조회결과 OFF일 경우 SET GLOBAL  log_bin_trust_function_creators=ON;

 

*) max connection 설정

sudo vi /etc/security/limits.conf

*            soft    nofile          65536
*            hard    nofile          65536


sudo vi /lib/systemd/system/mysql.service

[Service]
LimitNOFILE=4000

sudo systemctl daemon-reload
sudo systemctl restart mysql

#Docker 으로 설치하기 

1. 도커설치 & docker-compose도 설치

 

2. docker-compose.yml 을 작성한다

$ sudo vi docker-compose-mysql.yml
version: '3.3'
services:
  db :
    image: mysql:latest
    volumes:
      - ./wordpress_data:/var/www/html
      - ./mysql-vol:/var/lib/mysql
    ports:
      - 3306:3106
    container_name: home-mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 'root패스워드'
      MYSQL_DATABASE: '데이터베이스이름'
      MYSQL_USER: '사용자id'
      MYSQL_PASSWORD: '시영지 비밀번호'

3. 실행

docker-compose up -d

4. 윗 문단의 3번부터 실행한다.

 

 


[참고]

https://m.blog.naver.com/jesang1/221993846056

 

우분투에 Mysql 설치하기 (How to install Mysql-server in Ubuntu)

우분투 서버에 Mysql 서버를 설치 하는 방법을 잊지 않기 위해 포스팅 함 1. 우분투 서버 업데이트 및 My...

blog.naver.com

https://deeplify.dev/database/troubleshoot/public-key-retrieval-is-not-allowed

 

[Mysql] Public key retrieval is not allowed 에러 해결

Public key retrieval is not allowed 에러가 발생하는 이유와 해결하는 방법에 대해서 소개해드립니다.

deeplify.dev

 

https://deeplify.dev/database/troubleshoot/public-key-retrieval-is-not-allowed