MariaDB: 두 판 사이의 차이
(→10061) |
편집 요약 없음 |
||
(같은 사용자의 중간 판 4개는 보이지 않습니다) | |||
4번째 줄: | 4번째 줄: | ||
기본적으로 MySQL과 동일하게 쓰인다. | 기본적으로 MySQL과 동일하게 쓰인다. | ||
자잘한 조작법은 [[MySQL]]을 참고하자. | 자잘한 조작법은 [[Mysql|MySQL]]을 참고하자. | ||
===설치=== | ===설치=== | ||
39번째 줄: | 39번째 줄: | ||
|} | |} | ||
==기본 사용 | ===mysql 포트 확인=== | ||
mysql에 접속한 후 <code>mysql> show global variables like 'port';</code> 명령어로 사용하고 있는 포트번호를 알 수 있다.(일반적으로 3306) | |||
===자동실행=== | |||
보통 서버가 실행되면 자동 실행되지만, 그렇지 않은 경우 <code>sudo systemctl enable mysql</code>을 해보자. | |||
=기본 사용= | |||
기본적으로 mysql과 동일하다. | 기본적으로 mysql과 동일하다. | ||
{| class="wikitable" | {| class="wikitable" | ||
50번째 줄: | 56번째 줄: | ||
이외 계정은 <code>mysql -u 계정 -p</code> | 이외 계정은 <code>mysql -u 계정 -p</code> | ||
|sudo mysql -u root -p | |sudo mysql -u root -p | ||
|- | |- | ||
|접속종료 | |접속종료 | ||
72번째 줄: | 62번째 줄: | ||
|} | |} | ||
== | === SQL는 다음을 참고해 사용하자. === | ||
{{SQL}} | |||
==외부에서 접속(원격접속)== | |||
기본적으로 접속은 localhost에서만 가능하다. 외부접속을 위해선 2가지 과정이 필요하다. | |||
{| class="wikitable" | {| 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 | |||
|}<br /> | |||
==백업과 복원== | |||
===DB백업=== | |||
sql 파일로 백업한다. | |||
mysqldump -u 사용자계정 -p 백업할DB명 > 저장할파일명.sql | |||
'액세스가 거부되었습니다.'라는 문구가 나온다면 일반적으로 해당 경로에 저장이 불가하다는 의미. C:\Users\유저명\Downloads\파일명.sql 따위의 경로를 지정하자. | |||
정상적으로 명령이 기입되면 패스워드를 입력하는 란이 나오고 백업이 진행된다.(용량이 큰 경우 멈춘 것처럼 보인다. 프롬프트 커서는 깜빡이고 있다.) | |||
{| class="wikitable" | |||
!상황 | |||
!방법 | |||
! | |||
|- | |- | ||
| | |전체 DB를 한번에 저장하고자 할 때 | ||
|DB이름을 넣는 대신 -A옵션을 준다. | |||
| | | | ||
| | |}--extended-insert | ||
===DB복구=== | |||
복구할 때 복구할 DB가 미리 만들어져 있어야 한다. | |||
mysql -u 사용자계정 -p 복구할DB명 < 저장한파일명.sql | |||
정상적으로 명령이 기입되면 백업 때와 동일하게 진행된다. 기존 데이터는 삭제된다. | |||
==팁== | |||
===최적화=== | |||
데이터베이스 최적화를 하면 데이터가 찾기 쉽게 정리된다. | |||
{| class="wikitable" | |||
!의도 | |||
!설명 | |||
!방법 | |||
|- | |- | ||
| | |DB최적화 | ||
| | |다음의 명령을 수행한다. | ||
|mysqlcheck -u DB계정 -p --optimize DB이름 | |||
| | |||
|- | |- | ||
| | |전체 최적화 | ||
| | | | ||
|mysqlcheck -u DB계정 -p --optimize --all-databases | |||
|} | |||
===엑셀로 보기=== | |||
=에러= | =에러= | ||
125번째 줄: | 177번째 줄: | ||
|} | |} | ||
=== ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2) === | ===ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (2)=== | ||
여러 이유로 mysqld.sock 위치를 잃어버린 경우. | 여러 이유로 mysqld.sock 위치를 잃어버린 경우. | ||
{| class="wikitable" | {| class="wikitable" | ||
140번째 줄: | 192번째 줄: | ||
|sudo ln -s /var/run/mysqld/mysqld.sock /run/mysqld/mysqld.sock | |sudo ln -s /var/run/mysqld/mysqld.sock /run/mysqld/mysqld.sock | ||
|} | |} | ||
[[분류:Database]] |
2022년 10월 23일 (일) 10:59 기준 최신판
개요[편집 | 원본 편집]
마리아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에 접속한 후 mysql> show global variables like 'port';
명령어로 사용하고 있는 포트번호를 알 수 있다.(일반적으로 3306)
자동실행[편집 | 원본 편집]
보통 서버가 실행되면 자동 실행되지만, 그렇지 않은 경우 sudo systemctl enable mysql
을 해보자.
기본 사용[편집 | 원본 편집]
기본적으로 mysql과 동일하다.
의도 | 설명 | 방법 |
---|---|---|
접속 | 루트 계정으로 접속한다.
이외 계정은 |
sudo mysql -u root -p |
접속종료 | quit; |
SQL는 다음을 참고해 사용하자.[편집 | 원본 편집]
SQL에 대한 자료를 모아놓기 위한 틀 틀:SQL
외부에서 접속(원격접속)[편집 | 원본 편집]
기본적으로 접속은 localhost에서만 가능하다. 외부접속을 위해선 2가지 과정이 필요하다.
과정 | 설명 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
외부에서 접속 가능한 계정 만들기 | mysql -u root -p 로 mysql을 실행한 후 SELECT User, Host, plugin FROM mysql.user; 를 쳐보면, Host가 localhost로 되어있을 것이다.
새로운 ip에 맞게 유저를 만들어주어야 한다.(같은 유저라도 호스트에 따라 다른 계정이 된다.)
| ||||||||||||||||||||
바인드주소 지우기 | cd /etc/mysql/mysql.conf.d 에서 mysqld.cnf 파일을 편집한다.(버전, 운영체제 버전에 따라 다를 수 있다.)
바인드 어드레스를 다음과 같이 주석처리한 후 저장. #bind-address = 127.0.0.1 이후 sudo service mysql restart |
백업과 복원[편집 | 원본 편집]
DB백업[편집 | 원본 편집]
sql 파일로 백업한다.
mysqldump -u 사용자계정 -p 백업할DB명 > 저장할파일명.sql
'액세스가 거부되었습니다.'라는 문구가 나온다면 일반적으로 해당 경로에 저장이 불가하다는 의미. C:\Users\유저명\Downloads\파일명.sql 따위의 경로를 지정하자.
정상적으로 명령이 기입되면 패스워드를 입력하는 란이 나오고 백업이 진행된다.(용량이 큰 경우 멈춘 것처럼 보인다. 프롬프트 커서는 깜빡이고 있다.)
상황 | 방법 | |
---|---|---|
전체 DB를 한번에 저장하고자 할 때 | DB이름을 넣는 대신 -A옵션을 준다. |
--extended-insert
DB복구[편집 | 원본 편집]
복구할 때 복구할 DB가 미리 만들어져 있어야 한다.
mysql -u 사용자계정 -p 복구할DB명 < 저장한파일명.sql
정상적으로 명령이 기입되면 백업 때와 동일하게 진행된다. 기존 데이터는 삭제된다.
팁[편집 | 원본 편집]
최적화[편집 | 원본 편집]
데이터베이스 최적화를 하면 데이터가 찾기 쉽게 정리된다.
의도 | 설명 | 방법 |
---|---|---|
DB최적화 | 다음의 명령을 수행한다. | mysqlcheck -u DB계정 -p --optimize DB이름 |
전체 최적화 | mysqlcheck -u DB계정 -p --optimize --all-databases |
엑셀로 보기[편집 | 원본 편집]
에러[편집 | 원본 편집]
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 |