MariaDB의 기본 Character Set은 latin1이다.

이를 보편적으로 사용하는 utf8로 변경하는 방법이다.

 

1. 기본 Character Set 확인하기

MariaDB[none]> show variables like 'c%';

실행 후 아래와 같이 나타난다.

+----------------------------------+----------------------------+
| Variable_name                    | Value                      |
+----------------------------------+----------------------------+
| character_set_client             | utf8                       |
| character_set_connection         | utf8                       |
| character_set_database           | latin1                     |
| character_set_filesystem         | binary                     |
| character_set_results            | utf8                       |
| character_set_server             | latin1                     |
| character_set_system             | utf8                       |
| character_sets_dir               | /usr/share/mysql/charsets/ |
| check_constraint_checks          | ON                         |
| collation_connection             | utf8_general_ci            |
| collation_database               | latin1_swedish_ci          |
| collation_server                 | latin1_swedish_ci          |
| column_compression_threshold     | 100                        |
| column_compression_zlib_level    | 6                          |
| column_compression_zlib_strategy | DEFAULT_STRATEGY           |
| column_compression_zlib_wrap     | OFF                        |
| completion_type                  | NO_CHAIN                   |
| concurrent_insert                | AUTO                       |
| connect_timeout                  | 10                         |
| core_file                        | OFF                        |
+----------------------------------+----------------------------+
20 rows in set (0.000 sec)

 

2. UTF8로 설정하기

아래 3개의 파일에 Character Set 설정을 추가한다.

(client.cnf는 없을 수 있으며, 이 경우 직접 생성하면 된다.)

 

파일 경로는 아래 경로로 진입하면 있다.

/etc/my.cnf.d/

 - /etc/my.cnf.d/client.cnf

[client]
default-character-set=utf8

 - /etc/my.cnf.d/mysql-clients.cnf

[mysql]
default-character-set=utf8

[mysqldump]
default-character-set=utf8

 - /etc/my.cnf.d/server.cnf

[mysqld]
collation-server = utf8_general_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

 

3. MariaDB 재시작하기

systemctl restart mariadb

 

참고로 Character Set 변경 전에 Database가 생성되었다면, 재생성하거나 ALTER 명령어로 변경해주어야 한다.

ALTER DATABASE `데이터베이스명`
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;

 

MariaDB 저장소 변경 등을 수행할 때 오류가 발생하여 MariaDB를 완전히 삭제해야 할 경우 아래와 같은 방법으로 삭제가 가능하다.

 

1. MariaDB 설치 제거

yum remove -y mariadb mariadb-server

삭제 완료 후 "Complete!"가 나타난다.

 

2. MariaDB에 사용되었던 각종 찌꺼기 파일 제거

rm -rf /data/mysql
rm /etc/my.cnf

위의 mysql 폴더 제거 명령은 MariaDB Data 저장소를 변경하지 않았으면 MariaDB의 기본 저장소인 "/var/lib/mysql"가 된다.

 

3. MariaDB가 사용했던 로그 제거

로그 제거는 root 계정으로 진행해야 한다.

sudo su
rm /var/log/mariadb/mariadb.log.rpmsave
rm -rf /usr/lib64/mysql/
rm -rf /usr/share/mysql/

 

4. MariaDB 관련 라이브러리 제거

sudo yum -y remove mariadb-libs

 

5. MariaDB 제거 확인하기

아래 명령어 실행 시 아무것도 뜨지 않으면 완전히 제거된 것이다.

rpm -qa | grep -i mariadb

'Linux > mariaDB' 카테고리의 다른 글

[MariaDB] Character Set UTF8 변경  (0) 2023.06.13
[MariaDB] MariaDB의 Data 저장 위치 변경하기  (0) 2023.06.13
[MariaDB] MariaDB 설치하기  (0) 2023.06.13

CentOS 7에 설치되는 MariaDB는 기본 폴더인 /var/lib/mysql에 저장된다.

대부분의 Server는 OS 설치용 저장소와 별개로 데이터저장을 위한 저장소를 추가하는데

이를 위해 MariaDB의 Data 저장 위치를 변경할 필요가 있다.

 

다양한 정보를 참고하여 변경해보았으나 아래 작성되는 내용이 오류가 없이 잘 동작했다.

 

1. MariabDB의 Data 저장 위치 확인

mysql -u root -p

로 MariaDB 접속 후

MariaDB [(none)]>   select @@datadir;

명령어를 통해 아래와 같이 기존 Data 저장 위치를 확인할 수 있다.

+-------------------+
| @@datadir |
+-------------------+
| /var/lib/mysql/ |
+-------------------+
1 row in set (0.01 sec)

 

2. MariaDB 서비스 정지

sudo systemctl stop mariadb

 

3. 신규 Data 디렉토리 생성 및 MariaDB 데이터 복사

(Data 디렉토리를 /data/mysql로 변경)

sudo mkdir /data/
sudo rsync -av /var/lib/mysql /data/
sudo chown -R mysql:mysql /data/mysql

 

4. my.cnf 파일을 수정하여 MariaDB의 Data 디렉토리 경로 변경

sudo vi /etc/my.cnf

my.cnf 파일에 아래 내용을 추가하고 저장한다.

[mysqld]
datadir=/data/mysql
socket=/data/mysql/mysql.sock

[client]
socket=/data/mysql/mysql.sock

#symbolic-links=0
#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

 

5. SELinux 보안 Context 추가 및 서비스 시작

sudo semanage fcontext -a -t mysqld_db_t "/data/mysql(/.*)?"
sudo restorecon -R /data/mysql
sudo systemctl start mysql

 

6. 변경된 Data 디렉토리 확인하기

mysql -u root -p

로 MariaDB 접속 후

MariaDB [(none)]>   select @@datadir;

명령어를 통해 아래와 같이 기존 Data 저장 위치를 확인할 수 있다.

+-------------------+
| @@datadir |
+-------------------+
| /data/mysql/ |
+-------------------+
1 row in set (0.00 sec)

 

7. 기존 MariaDB Data 디렉토리 삭제하기

sudo rm -R /var/lib/mysql

삭제 후 저장소의 저장용량 확인은 df로 확인할 수 있다.

'Linux > mariaDB' 카테고리의 다른 글

[MariaDB] Character Set UTF8 변경  (0) 2023.06.13
[MariaDB] Linux에서 MariaDB 완전 삭제하기  (0) 2023.06.13
[MariaDB] MariaDB 설치하기  (0) 2023.06.13

MariaDB 설치하기

CentOS 7 기준

 

1. yum update 및 upgrade하기

sudo yum update
sudo yum upgrade

2. MariaDB 설치 (최신버전으로 설치된다)

sudo yum -y install mariadb-server

설치 완료 시 가장 하단에 "Complete!"가 나타남

 

3. 설치 확인

rpm -qa | grep -i mariadb

MariaDB-server, common, client, compat과 같이 총 4개의 설치상태를 확인할 수 있음

 

4. MariaDB 서비스 가동

sudo systemctl start mariadb

 

5. 시작시 자동 실행 등록

sudo systemctl enable mariadb

 

6. MySQL 방화벽 개방

firewall-cmd --permanent --add-service=mysql
firewall-cmd --reload

 


이후 내용은 MariabDB 접속 후 진행


 

7. MariaDB 신규 계정 생성

CREATE USER '계정'@'localhost' IDENTIFIED BY '비밀번호';

 

8. 신규 Database 생성

CREATE DATABASE `데이터베이스명`;

 

9. 신규 DB 접근 권한 설정

GRANT ALL PRIVILEGES ON `데이터베이스명`.* TO "계정"@"localhost";
FLUSH PRIVILEGES;

exit

 

참고사항으로 계정생성 시 'localhost'에 '%'을 넣을 경우 모든 접속 허용

 

+ Recent posts