Linux/mysql

[Linux] - Rocky(CentOS) MySQL 초기 기본 설정, DataBases 생성, 접속 IP 권한 설정

aieo 2024. 5. 23. 14:37
반응형
CREATE USER 'mysqlTestID'@'localhost' IDENTIFIED BY 'mysqlTestIDPasswd1!';

-- 추가로 DATABASES도 생성해 보겠음
CREATE DATABASE test_database;

-- 마지막에 ;는 mysql 쿼리 스크립트를 마치겠다는 의미!

이전에 Linux에서 MySQL 수동 설치를 진행 하고 나서 초기 설정을 이어서 해보겠습니다.

 

이전 Linux MySQL 수동 설치가 궁금하신 분은 아래 링크 참고~

Linux MySQL 수동 설치 방법

 

[Linux ] - Rocky(CentOS) MySQL 5.x 수동 설치

Linux가 이제 CentOS로 안나오고 Rocky로 나온다고 함그래서 최근에 설치한 Linux가 Rocky로 진행 해봄~CentOS랑 같은거 같은데 아무튼 Linux는 나중에 자세히 보고 오늘은 MySQL 5.x 버전 수동 설치를 진행

aieo-jay.tistory.com

 

 

자 이제 설치를 다 했으면 Linux 콘솔에서 mysql 로 접속 해보겠습니다.

 

아이디 입력 해주고 암호 입력 하라고 나옴 =>암호 입력할때 안보이기 때문에 그냥 비밀번호 입력 하면 됨

mysql -u root -p
enter password :

 

 

이전에 Linux 설치 하고 mysql 접속이 되는지 까지만 확인 하고 추가 설정을 안해서 mysql에서 아무것도 안될 거임

 

root 계정을 생성하고 임시 비밀번호 받은거를 변경을 해줘야 함

 

ALTER USER 'root'@'localhost' IDENTIFIED BY 'testpasswd1!';
-- 이렇게 입력 하면 root 계정의 암호를 변경 함
FLUSH PRIVILEGES;
-- 저장

 

이제 암호도 변경을 해줬으므로 MYSQL이 동작 할거임

 

추가 계정 ID를 생성해 보겠습니다.

CREATE USER 'testId'@'localhost' IDENTIFIED BY 'testPaswd1!';

-- 추가로 databases 까지 생성 해보겠음
CREATE DATABASE testDatabase;

-- 아이디 / 데이터베이스 까지 생성 완료 
-- ; 의미는 sql 쿼리 스크립트를 마치겠다 의미

 

추가 계정과 database 까지 생성 했으므로 table 등 생성 가능 함

그전에 새로 생성한 계정에 권한까지 넘겨 주겠음

 

GRANT ALL PRIVILEGES ON testId.* TO 'testDatabase'@'%' IDENTIFIED BY 'testPaswd1!';
-- 입력 방식
-- GRANT ALL PRIVILEGES ON 데이터베이스.* TO '설정할아이디'@'연결할 IP' IDENTIFIED BY '비밀번호'
- 이거는 권한 설정 해주면서 해당 아이디랑 데이터베이스를 다른 ip에서도 접속 가능하도록 설정쿼리

-- 'root'@'%'여기서 %로 ip를 설정하면 모든 IP허용임
FLUSH PRIVILEGES;
-- 저장

 

Linux에서 설정한 디비를 다른 DBMS로 접속 가능하게 추가 설정도 진행

 

mysql은 exit로 탈출 해주고 Linux 콘솔로 돌아오기

 

my.cnf 파일 찾아서 추가 설정

# my.cnf 파일 찾기
find / -name my.cnf

# 파일 찾았으면 파일로 들어가기
vi /etc/my.cnf

# 들어가서 확인해 보니 다른 폴더가 include 되어 있음 해당 폴더로 이동 해서 service 파일 생성함

cd /etc/my.cnf.d/
# 여기서 추가 service 파일 생성함

vi service.cnf
# 아래 내용 추가 해줌
[mysqld]
# mysql 서버가 모든 네트워크 인터페이스에 연결 수락 설정
#bind-address = 0.0.0.0 

# 테이블 이름의 대소문자 구분을 제어 설정
lower_case_table_names=1

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

# STRICT_TRANS_TABLES: 엄격한 SQL 모드로, 잘못된 데이터가 트랜잭션 테이블에 입력되면 에러를 반환
# NO_ZERO_IN_DATE: 날짜에서 월이나 일로 0을 허용하지 않습니다.
# NO_ZERO_DATE: '0000-00-00'과 같은 날짜를 허용하지 않습니다.
# ERROR_FOR_DIVISION_BY_ZERO: 0으로 나누는 연산에서 에러를 반환
# NO_AUTO_CREATE_USER: GRANT 명령어로 사용자를 생성할 때 비밀번호 없이 사용자를 자동으로 생성하지 않습니다.
# NO_ENGINE_SUBSTITUTION: 요청된 스토리지 엔진을 사용할 수 없을 경우, 기본 엔진을 대체하지 않습니다.

character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init-connect='SET NAMES utf8mb4'
character-set-client-handshake = FALSE

# 서버의 기본 문자 집합을 utf8mb4로 설정합니다. 이 문자 집합은 이모지를 포함한 전체 유니코드 문자를 지원합니다.


# 여기까지만 입력 하고 저장 하고 나옴
# :wq

 

 

mysql 재시작

sudo systemctl restart mysql

 

설정 끝!

 

 

반응형