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 ] - 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
설정 끝!
반응형