MariaDB
편집하기
Sam
(
토론
|
기여
)
님의 2022년 10월 21일 (금) 10:32 판
(
→설치 후 작업
)
(
차이
)
← 이전 판
|
최신판
(
차이
) |
다음 판 →
(
차이
)
둘러보기로 이동
검색으로 이동
경고: 이 문서의 오래된 판을 편집하고 있습니다.
이것을 게시하면, 이 판 이후로 바뀐 모든 편집이 사라집니다.
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
==개요== 마리아DB. MySQL을 개발했던 개발자가 이를 썬 마이크로시스템에 팔았는데, 이 회사가 오라클에 인수된 이후 폐쇄적인 정책으로 MySQL이 발전하지 못하는 모습을 본 후 퇴사하여 MariaDB를 개발하여 GPL라이센스로 배포했다. 기본적으로 MySQL과 동일하게 쓰인다. 자잘한 조작법은 [[MySQL]]을 참고하자. ===설치=== ====우분투에서==== {| class="wikitable" !과정 !설명 !방법 |- |설치 |서버와 클라이언트. 필요에 따라. |apt-get install mariadb-server apt-get install mariadb-client |- |서버 실행 |다음과 같은 명령어로 서버 실행 |sudo service mariadb start |- |heidisql |마리아DB를 설치하면 이와 함께 GUI기반인 heidisql(헤이디에스큐엘)이 설치된다. |해당 포트와 root 비밀번호를 제대로 기입하면 GUI로 DB를 볼 수 있다. |} ===설치 후 작업=== {| class="wikitable" !과정 !설명 !방법 |- |부팅 시 자동실행 |부팅이 되면 자동 실행되게끔. |sudo systemctl enable mariadb |} ==기본 사용== 기본적으로 mysql과 동일하다. {| class="wikitable" !의도 !설명 !방법 |- |접속 |루트 계정으로 접속한다. 이외 계정은 <code>mysql -u 계정 -p</code> |sudo mysql -u root -p |- | | | |- |데이터베이스 생성 | |CREATE DATABASE mysite; |- |데이터베이스 접속 | |use mysite; |- | | | |- |접속종료 | |quit; |} === 설정 === ===mysql 포트 확인=== mysql에 접속한 후 <code>mysql> show global variables like 'port';</code> 명령어로 사용하고 있는 포트번호를 알 수 있다.(일반적으로 3306) ===자동실행=== 보통 서버가 실행되면 자동 실행되지만, 그렇지 않은 경우 <code>sudo systemctl enable mysql</code>을 해보자. == 계정 관련 == {| class="wikitable" !의도 !설명 !방법 |- |유저 생성 |접속 후에 진행한다. localhost 대신 해당 ip에서만 접속할 수 있게끔 제한할 수 있다. 따옴표 안에 있는 값을 바꾸어 사용하자. |CREATE USER 'user'@'localhost' IDENTIFIED BY '1234'; |- |유저 제거 |IF EXISTS는 필요에 따라 넣자. 여러 계정을 동시에 삭제하고 싶다면 <code>USER1, USER2, ...</code>형태로 기입하면 된다. |DROP USER IF EXISTS USER_ACCOUNT |- |유저 정보 보기 |유저의 호스트, 유저명, 인증방법을 볼 수 있다. |select Host,User,plugin FROM mysql.user; |- |유저에게 권한 부여 |DB 접속 후에 진행. |GRANT ALL ON mysite.* TO 'user'@'localhost'; |} ==외부에서 접속(원격접속)== 기본적으로 접속은 localhost에서만 가능하다. 외부접속을 위해선 2가지 과정이 필요하다. {| class="wikitable" !과정 !설명 |- |외부에서 접속 가능한 계정 만들기 |mysql -u root -p 로 mysql을 실행한 후 <code>SELECT User, Host, plugin FROM mysql.user;</code>를 쳐보면, Host가 localhost로 되어있을 것이다. 새로운 ip에 맞게 유저를 만들어주어야 한다.(같은 유저라도 호스트에 따라 다른 계정이 된다.) {| class="wikitable" !과정 !설명 ! |- |계정 만들기 |CREATE USER '계정명'@'%' IDENTIFIED BY '비밀번호'; 계정명 뒤의 옵션에 따라 허용해주는 ip가 달라진다. {| class="wikitable" !옵션 !설명 |- |% |모든 아이피 허용 |- |111.222.% |111.222로 시작하는 아이피 모두 허용 |- |111.222.11.22 |111.222.11.22만 허용 |} | |- |권한부여 |*.* 은 모든 DB의 모든 table을 의미한다. |GRANT ALL PRIVILEGES ON *.* TO '계정'@'%'; |- |인증비밀번호설정 |비밀번호까지 다시 설정해주어야 제대로 된다. |alter user '계정'@'%' identified with mysql_native_password by '비밀번호'; |} |- |바인드주소 지우기 |cd /etc/mysql/mysql.conf.d 에서 mysqld.cnf 파일을 편집한다.(버전, 운영체제 버전에 따라 다를 수 있다.) 바인드 어드레스를 다음과 같이 주석처리한 후 저장. ''#bind-address = 127.0.0.1'' 이후 sudo service mysql restart |} ==query== {| class="wikitable" |+ !의도 !설명 !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 서버가 열리지 않았을 때의 이유로 생긴다. 로컬에선 되는데, 외부에서 접속이 안되는 경우, 다음의 조치를 취해보자.(외부접속 계정은 이미 만들었다고 가정한다.) {| class="wikitable" !과정 !설명 !방법 |- |설정파일 변경 |다음의 경로에서 <code>bind-address</code> 옵션을 찾아 주석처리하자. |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 위치를 잃어버린 경우. {| class="wikitable" !과정 !설명 !방법 |- |mysqld.sock위치찾기 | |mysql_config --socket |- |심볼릭 링크 지정 |위에서 찾은 경로의 파일을 에러로 뜬 곳에 링크해준다. |sudo ln -s /var/run/mysqld/mysqld.sock /run/mysqld/mysqld.sock |}
요약:
학교의 모든 지식. SMwiki에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
학교의 모든 지식. SMwiki:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
이 문서에서 사용한 틀:
틀:SQL
(
편집
)
둘러보기 메뉴
개인 도구
로그인하지 않음
토론
기여
로그인
이름공간
문서
토론
한국어
보기
읽기
편집
원본 편집
역사 보기
더 보기
검색
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
특수 문서 목록
문서 정보