MariaDB
개요
마리아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과 동일하다.
의도 | 설명 | 방법 |
---|---|---|
접속 | 루트 계정으로 접속한다.
이외 계정은 |
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 |