MariaDB

학교의 모든 지식. SMwiki
Sam (토론 | 기여)님의 2022년 10월 19일 (수) 13:38 판 (→‎10061)
둘러보기로 이동 검색으로 이동

개요

마리아DB. MySQL을 개발했던 개발자가 이를 썬 마이크로시스템에 팔았는데, 이 회사가 오라클에 인수된 이후 폐쇄적인 정책으로 MySQL이 발전하지 못하는 모습을 본 후 퇴사하여 MariaDB를 개발하여 GPL라이센스로 배포했다.

기본적으로 MySQL과 동일하게 쓰인다.

자잘한 조작법은 MySQL을 참고하자.

설치

우분투에서

과정 설명 방법
설치 서버와 클라이언트. 필요에 따라. apt-get install mariadb-server

apt-get install mariadb-client

서버 실행 다음과 같은 명령어로 서버 실행 sudo service mariadb start
heidisql 마리아DB를 설치하면 이와 함께 GUI기반인 heidisql(헤이디에스큐엘)이 설치된다. 해당 포트와 root 비밀번호를 제대로 기입하면 GUI로 DB를 볼 수 있다.

설치 후 작업

과정 설명 방법
부팅 시 자동실행 부팅이 되면 자동 실행되게끔. sudo systemctl enable mariadb

기본 사용

기본적으로 mysql과 동일하다.

의도 설명 방법
접속 루트 계정으로 접속한다.

이외 계정은 mysql -u 계정 -p

sudo mysql -u root -p
유저생성 접속 후에 진행한다. CREATE USER 'user'@'localhost' IDENTIFIED BY '1234';
데이터베이스 생성 CREATE DATABASE mysite;
데이터베이스 접속 use mysite;
유저에게 권한 부여 DB 접속 후에 진행. GRANT ALL ON mysite.* TO 'user'@'localhost';
접속종료 quit;

query

의도 설명 SQL
테이블 목록 SHOW TABLES;
테이블 생성 데이터유형을 지정해주어야 생성된다.

테이블 이름은 ASCII: [0-9,a-z,A-Z$_] 에 한정되니, 특수문자

create table 테이블명(컬럼명 데이터유형, ...)

create table if not exists 테이블명 (칼럼명 데이터형식 PRIMARY KEY, Open INT, ...)

테이블 삭제 DROP TABLE 테이블명;
데이터 삽입 마리아DB에선 각각의 요소에 굳이 따옴표로 구분한다.

테이블명을 감싸는 따옴표는.. 다름에 유의;;(ㅅㅂ 프라임이다.)

INSERT INTO `테이블명` VALUES ('2021-01-22', '112', '124', '2', '2', '1');
데이터 대체 INSERT를 했을 때 문제가 생기면 기존 데이터를 대체한다.

(이상이 없으면 그냥 중복 삽입된다. PRIMARY KEY나 UNIQUE 옵션이 있을 때 작동.)

REPLACE INTO `테이블명` VALUES ('2021-01-22', '112', '124', '2', '2', '1');

에러

10061

로컬에서 에러가 난 경우는 계정정보가 잘못되었거나 sql 서버가 열리지 않았을 때의 이유로 생긴다.

로컬에선 되는데, 외부에서 접속이 안되는 경우, 다음의 조치를 취해보자.(외부접속 계정은 이미 만들었다고 가정한다.)

과정 설명 방법
설정파일 변경 다음의 경로에서 bind-address 옵션을 찾아 주석처리하자. sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
재시작 설정을 반영한다. service mysql restart

ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2)

여러 이유로 mysqld.sock 위치를 잃어버린 경우.

과정 설명 방법
mysqld.sock위치찾기 mysql_config --socket
심볼릭 링크 지정 위에서 찾은 경로의 파일을 에러로 뜬 곳에 링크해준다. sudo ln -s /var/run/mysqld/mysqld.sock /run/mysqld/mysqld.sock