MariaDB / 데이터 저장 위치 변경하는 방법

Ubuntu 24.04 Server

현재 저장 위치 확인

  • MariaDB에 접속한 후 다음과 같이 명령하면...
select @@datadir;
  • 데이터 저장 경로를 확인할 수 있다.
MariaDB [(none)]> select @@datadir;
+-----------------+
| @@datadir       |
+-----------------+
| /var/lib/mysql/ |
+-----------------+

데이터 저장 위치 변경

예를 들어 데이터 저장 위치를 /var/lib/mysql/에서 /data/mariadb/로 변경한다고 하면...

  • MariaDB 서비스를 중지한다.
# systemctl stop mariadb
  • /data/mariadb 디렉토리의 소유자를 mysql로 변경한다.
# chown -R mysql:mysql /data/mariadb
  • ll 명령어로 소유자를 확인할 수 있다.
# ll /data
total 12
drwxr-xr-x  3 root  root  4096 Jun 10 10:11 ./
drwxr-xr-x 24 root  root  4096 Jun 10 10:11 ../
drwxr-xr-x  2 mysql mysql 4096 Jun 10 10:11 mariadb/
  • /var/lib/mysql/ 안에 있는 데이터를 /data/mariadb/로 복사한다. cp로 하면 소유자가 바뀔 수 있으므로, rsync를 이용한다.
# rsync -av /var/lib/mysql/ /data/mariadb
  • /etc/mysql/mariadb.conf.d/50-server.cnf 파일에서 다음의 코드를...
#datadir = /var/lib/mysql
  • 다음처럼 변경한다.
datadir = /data/mariadb
  • MariaDB 서비스를 시작한다.
# systemctl start mariadb

테스트

create database testdb;
  • /data/mariadb에 testdb 디렉토리가 생성되었는지 확인한다.

Windows

현재 저장 위치 확인

  • my.ini 파일을 연다.

  • datadir의 값이 데이터 저장 위치이다.

데이터 저장 위치 변경

예를 들어 데이터 저장 위치를 C:/Program Files/MariaDB 11.4/data에서 C:/MariaDB로 변경한다고 하면...

  • 실행 창에서 services.msc를 실행하여 서비스를 연다.
  • MariaDB 서비스를 선택하고 마우스 우클릭 후 [중지]를 클릭한다.

  • C:\MariaDB를 선택하고 마우스 우클릭 후 [속성]을 클릭한다.

  • [보안] 탭의 [편집]을 클릭한다.

  • [추가]를 클릭한다.

  • NT SERVICE\MariaDB를 입력하고 [이름 확인]을 클릭한다.

NT SERVICE\MariaDB는 서비스에서 볼 수 있는 MariaDB 서비스 계정이다.

  • [확인]을 클릭한다.

  • MariaDB 계정에 모든 권한을 부여하고 [확인]을 클릭한다.

  • C:\Program Files\MariaDB 11.4\data에서 my.ini 파일을 제외한 모든 파일을 C:\MariaDB로 복사한다.

  • MariaDB 서비스를 시작한다.

테스트

create database testdb;

  • C:\MariaDB에 testdb 디렉토리가 생성되었는지 확인한다.

같은 카테고리의 다른 글
MariaDB / Query / LEFT JOIN, RIGHT JOIN, INNER JOIN

MariaDB / Query / LEFT JOIN, RIGHT JOIN, INNER JOIN

JOIN SQL의 JOIN은 여러 테이블을 한 번에 나타낼 때 사용합니다. 대표적인 JOIN 방식은 LEFT JOIN, RIGHT JOIN, INNER JOIN이 있습니다. 다음은 세 가지 JOIN의 차이를 알아보기 위한 간단한 예제 테이블입니다. A 테이블에는 나라, B 테이블에는 도시가 있습니다. 도시가 어떤 나라의 도시인지는 a_no로 확인합니다. 나라는 있는데 도시가 없는 것도 있고, 나라는 없는데 도시는 있는 것도 있습니다. A ...

MariaDB / TABLE / 열 추가하기, 열 삭제하기, 열 순서 변경하기, 열 데이터 타입 변경하기

MariaDB / TABLE / 열 추가하기, 열 삭제하기, 열 순서 변경하기, 열 데이터 타입 변경하기

데이터베이스 만들기 열(Column) 추가, 삭제 등을 해볼 테스트용 데이터베이스 jbTest를 만듭니다. CREATE DATABASE jbTest; 데이터베이스로 들어갑니다. USE jbTest; jbColumn1, jbColumn2, jbColumn3 세 개의 열을 가진 테이블 jbTable1을 만듭니다. CREATE TABLE jbTable1 ( jbColumn1 INT, jbColumn2 INT, jbColumn3 INT ) ; 다음은 현재 테이블 구조입니다. MariaDB > DESC jbTable1; +-----------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | ...

MariaDB / DATABASE / 백업하기, 복원하기

MariaDB / DATABASE / 백업하기, 복원하기

모든 데이터베이스 백업과 복원 백업 모든 데이터베이스를 backup-all.sql로 백업 user는 권한 있는 사용자명으로 변경 mysqldump -u user -p --all-databases > backup-all.sql 복원 backup-all.sql을 복원 user는 권한 있는 사용자명으로 변경 mysql -u user -p < backup-all.sql 특정 데이터베이스 백업과 복원 백업 abc 데이터베이스를 abc.sql로 백업 user는 권한 있는 사용자명으로 변경 mysqldump -u user -p abc > abc.sql 복원 abc.sql을 데이터베이스 abc로 복원 user는 권한 있는 사용자명으로 변경 mysql ...

MariaDB / DATA / 데이터 추가(INSERT), 수정(UPDATE), 삭제(DELETE)

MariaDB / DATA / 데이터 추가(INSERT), 수정(UPDATE), 삭제(DELETE)

데이터베이스와 테이블 만들기 test 데이터베이스를 만듭니다. MariaDB > create database test; Query OK, 1 row affected (0.00 sec) test 데이터베이스를 사용합니다. MariaDB > use test; Database changed table_1 테이블을 만듭니다. MariaDB > CREATE TABLE table_1 ( -> column_1 varchar(100), -> column_2 varchar(100), -> column_3 varchar(100) -> ...

MariaDB / 함수 / ELT / 특정 위치의 문자열 출력하는 함수

MariaDB / 함수 / ELT / 특정 위치의 문자열 출력하는 함수

ELT는 특정 위치의 문자열을 출력하는 함수입니다. ELT( N, string1, string2, string3, ... ) A, B, C, D에서 2번째의 문자열인 B를 출력합니다. SELECT ELT( 2, 'A', 'B', 'C', 'D' ); +------------------------------+ | ELT( 2, 'A', 'B', 'C', 'D' ) | +------------------------------+ | B ...

MariaDB / Query / UNION, UNION ALL

MariaDB / Query / UNION, UNION ALL

UNION 또는 UNION ALL을 이용하면 여러 테이블의 데이터를 합하여 출력할 수 있습니다. 예를 들어 다음과 같은 테이블과... SELECT * FROM test_1; +-------+-------+-------+ | col_1 | col_2 | col_3 | +-------+-------+-------+ | 1 | A | 1 | | 2 | ...

MariaDB / 함수 / SUBSTRING, SUBSTRING_INDEX / 문자열 추출하는 함수

MariaDB / 함수 / SUBSTRING, SUBSTRING_INDEX / 문자열 추출하는 함수

SUBSTRING 12345678의 5번째부터 끝까지 문자열을 추출합니다. SELECT SUBSTRING( '12345678', 5 ); +----------------------------+ | SUBSTRING( '12345678', 5 ) | +----------------------------+ | 5678 | +----------------------------+ SELECT SUBSTRING( '12345678' FROM 5 ); +--------------------------------+ | SUBSTRING( '12345678' FROM 5 ) | +--------------------------------+ | 5678 ...

MariaDB / DATABASE / 만들기, 삭제하기, 이름 변경하기

MariaDB / DATABASE / 만들기, 삭제하기, 이름 변경하기

데이터베이스 조회 데이터베이스 목록을 조회한다. SHOW DATABASES; 데이터베이스 만들기 test라는 이름의 데이터베이스를 만든다. CREATE DATABASE test; 이미 존재하는 데이터베이스와 같은 이름의 데이터베이스를 만들려고 하면 에러가 난다. 같은 이름의 데이터베이스가 존재하지 않을 때만 만들고 싶다면 IF NOT EXISTS를 추가한다. CREATE DATABASE IF NOT EXISTS test; 마침표 등 특별한 문자를 포함하는 경우에 에러가 난다. 억음 부호로 이름을 감싸면 에러가 나지 않는다. CREATE DATABASE ...

MariaDB / 함수 / CONCAT, CONCAT_WS / 문자열 합치는 함수

MariaDB / 함수 / CONCAT, CONCAT_WS / 문자열 합치는 함수

예제로 사용한 데이터베이스는 employees입니다. CONCAT CONCAT은 문자열을 이어주는 함수입니다. 예를 들어 CONCAT( first_name, last_name )는 first_name의 값과 last_name의 값을 이어서 출력합니다. MariaDB > SELECT first_name, last_name, CONCAT( first_name, last_name ) FROM employees LIMIT 5; +------------+-----------+---------------------------------+ | first_name | last_name | CONCAT( first_name, last_name ) | +------------+-----------+---------------------------------+ | Georgi | Facello | GeorgiFacello ...

MariaDB / Query / WHERE

MariaDB / Query / WHERE

예제로 사용한 데이터베이스는 employees이다. WHERE를 이용하면 조건에 맞는 데이터만 추출할 수 있다. 예를 들어 다음과 같이 쿼리하면 gener가 M인 경우 1을 반환하는데... SELECT first_name, gender, gender = 'M' FROM employees LIMIT 10 ; +------------+--------+--------------+ | first_name | gender | gender = 'M' | +------------+--------+--------------+ | Georgi | M ...