DB설치전에 검토사항들이 많이있다.
어떤 버전으로 설치할것인지
내가 사용하는 리눅스 버전에 맞게, 설치하려는 버전에 맞게 Repo를 설정하고 설치해야한다.
필자의 서버는 Centos 7.8이며, MariaDB v.10.4.17를 설치 예정이다.
1. 리눅스 버전확인
rpm --query centos-release
cat /etc/centos-release
cat /etc/system-release
가장먼저 위 3가지중 1개방법으로 버전을 확인합니다
2. 해당 리눅스 버전에 맞는 Maria repoURL 찾기
https://downloads.mariadb.org/mariadb/repositories
나의 서버 버전에 맞게, 원하는 설치 버전을 선택하면 아래에
Repo에 등록해야하는 내용과
어떤 명령어를 때려야 설치되는지 알려준다. (So Kind!)
10.4.17은 안보이니 직접 URL로 들어가 찾아보자.
yum.mariadb.org/10.4.17/centos7-amd64/
중간에 10.4말고 10.4.17 디렉토리가 있었다.
3. Repo 등록
이제 /etc/yum.repos.d/ 밑에 MariaDB.repo 이름으로 url을 등록해보자.
sudo vi /etc/yum.repos.d/mariadb.repo
# MariaDB 10.4 CentOS repository list - created 2021-01-27 09:52 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4.17/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
4. MariaDB-server, Client 설치
sudo yum install MariaDB-server MariaDB-client
설치후 버전 확인
5. 실행 전, MariaDB 설정 Setting
MariaDB는 MySQL과 달리 Server와 Client 설정파일이 따로 존재한다.
이곳에서 인코딩과, 대소문자 구분등을 설정하고 실행하자!
(설정없이 db,스키마,계정 등을 만들면 초기화가 필요해진다)
5-1. Servewr.cnf 수정
1. 여기서 대소문자 구분하지않기 위해 lower_case_table_names=1 설정
2. 서버 인코딩설정을 위한 character-set-server=utf8mb4 , collation-server=utf8mb4_bin 줄 추가
3. 커밋된 데이터만 읽기위해 autocommit=0 설정을 해줍니다.
4. sql_mode에 ANSI_QUOTES (더블 코텐션) 사용을 위해, 값 추가.
STRICT_TRANS_TABLES을 제거하고 최대한 비엄격모드로 사용하도록 값들을 넣어준다.
sql_mode="ANSI_QUOTES,ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
vi /etc/my.cnf.d/server.cnf
2. mysql-clients.cnf
Client 설정파일에서는 client, dump 인코딩에 대해서만 설정해줍니다.
vi /etc/my.cnf.d/mysql-clients.cnf
# "utf8", "utf8mb4" 차이
문자 집합은 "utf8", "utf8mb4"두 가지가 주로 많이 쓰이며
"utf8"은 최초 mysql 설계시 utf8 규격에 4byte에 할당 된 문자가 없어 3byte로 설계 되었으나
최근 4byte에 할당 된 문자 (이모티콘 문자)가 면서 4 바이트 확장을 위해 utf8mb4를 추가했습니다.
utf8 규격과 거리 "utf8mb4"로 접근 할 것을 권장하고있다.
6. Maria 실행
-- 실행 시작
sudo systemctl start mariadb
-- 실행 상태 확인
sudo systemctl status mariadb
-- root 비번 초기화 (최초 1회 가능)
sudo mysql_secure_installation
처음은 root 패스워드 설정하겠느냐 Y를 누르면 설정하실 수 있습니다.
그 다음 질문은 anonymous users 를 삭제하겠느냐는 질문입니다.
그 다음은 원격지에서 root로그인을 허용하겠느냐는 질문입니다.
기본으로 누구든지 access할수 있는 Test db 를 삭제하겠냐는 질문입니다.
마지막 질문은 설정한 권한 모두 리로드해서 적용하겠냐는 질문입니다
-- 서버 재기동시 자동시작
sudo systemctl enable mariadb
+ 설정한 값이 제대로 반영되었는지 확인해보자
인코딩 조회
-- maria 접속
mysql -uroot -p비밀번호
-- 인코딩 확인
status
SQL_MODE 값 조회
-- sql_mode값 확인
SELECT @@global.sql_mode;
lower_case_table_names 변수 값 조회
-- lower_case_table_names 값 확인
show variables like 'lower%';
+++ 추가적으로 궁금한것들이 잘 정리된 사이트 입니다.
mysql server 설정시 다양한 내용을 확인가능 louky0714.tistory.com/entry/DATABASE-MariaDB-103xx-Install-binary
인코딩 설정에 대한 내용 slobell.com/blogs/38
제일 깔끔하게 잘 정리된 사이트 - 원문 작성에 많이 참고된 사이트 puttico.tistory.com/150
다음번엔, DB생성, 계정생성, 접속 권한부여 등에 대해서 작성하겠습니다.
'Work > DataBase' 카테고리의 다른 글
[MariaDB] 포트변경 (0) | 2021.01.28 |
---|---|
[MariaDB] 데이터 경로 Datadir 변경 하기 (0) | 2021.01.27 |
[DB] DBMS별 대용량의 Test Table 만드는법 (0) | 2021.01.27 |
[MySQL] Windows 설치된 MySQL 8 드라이브 변경(C에서 D로 변경) , 재시작 Error해결 (0) | 2020.12.18 |
[DB] MySQL 8.0 인코딩 설정 (utf-8, euc-kr) (0) | 2020.12.17 |