레이블이 MariaDB인 게시물을 표시합니다. 모든 게시물 표시
레이블이 MariaDB인 게시물을 표시합니다. 모든 게시물 표시

2019년 5월 29일 수요일

[Linux] MariaDB가 구동되지 않을 경우

서비스 상태를 확인

# systemctl status mariadb.service
● mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor pres                                                                                                                                   et: disabled)
   Active: failed (Result: exit-code) since Mon 2019-05-27 18:04:14 KST; 1 day 2                                                                                                                                   3h ago
  Process: 18205 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=ex                                                                                                                                   ited, status=1/FAILURE)
  Process: 18204 ExecStart=/usr/bin/mysqld_safe --basedir=/usr (code=exited, sta                                                                                                                                   tus=0/SUCCESS)
  Process: 18171 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exite                                                                                                                                   d, status=0/SUCCESS)
 Main PID: 18204 (code=exited, status=0/SUCCESS)

May 27 18:04:12 ns1.qnct.cn systemd[1]: Starting MariaDB database server...
May 27 18:04:12 ns1.qnct.cn mariadb-prepare-db-dir[18171]: Database MariaDB i...
May 27 18:04:12 ns1.qnct.cn mariadb-prepare-db-dir[18171]: If this is not the...
May 27 18:04:12 ns1.qnct.cn mysqld_safe[18204]: 190527 18:04:12 mysqld_safe ....
May 27 18:04:12 ns1.qnct.cn mysqld_safe[18204]: 190527 18:04:12 mysqld_safe ...l
May 27 18:04:14 ns1.qnct.cn systemd[1]: mariadb.service: control process exi...1
May 27 18:04:14 ns1.qnct.cn systemd[1]: Failed to start MariaDB database server.
May 27 18:04:14 ns1.qnct.cn systemd[1]: Unit mariadb.service entered failed ....
May 27 18:04:14 ns1.qnct.cn systemd[1]: mariadb.service failed.
Hint: Some lines were ellipsized, use -l to show in full.

해결책
/var/lib/mysql 폴더의 아래 3개 파일을 삭제 후 서비스 시작한다.
-rw-rw---- 1 mysql mysql 18874368 May 29 17:28 ibdata1
-rw-rw---- 1 mysql mysql  5242880 May 29 17:28 ib_logfile0
-rw-rw---- 1 mysql mysql  5242880 May 29 17:28 ib_logfile1





# systemctl status mariadb.service
● mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2019-05-29 17:28:31 KST; 14s ago
  Process: 22925 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=0/SUCCESS)
  Process: 22891 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS)
 Main PID: 22924 (mysqld_safe)
    Tasks: 21
   CGroup: /system.slice/mariadb.service
           ├─22924 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
           └─23243 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/lib/mysql/ns1.qnct.cn.err --pid-file=ns1.qnct.cn.pid --port=3306

May 29 17:28:27 ns1.qnct.cn systemd[1]: Starting MariaDB database server...
May 29 17:28:27 ns1.qnct.cn mariadb-prepare-db-dir[22891]: Database MariaDB is probably initialized in /var/lib/mysql already, nothing is done.
May 29 17:28:27 ns1.qnct.cn mariadb-prepare-db-dir[22891]: If this is not the case, make sure the /var/lib/mysql is empty before running mariadb-prepare-db-dir.
May 29 17:28:27 ns1.qnct.cn mysqld_safe[22924]: 190529 17:28:27 mysqld_safe Logging to '/var/lib/mysql/ns1.qnct.cn.err'.
May 29 17:28:27 ns1.qnct.cn mysqld_safe[22924]: 190529 17:28:27 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
May 29 17:28:31 ns1.qnct.cn systemd[1]: Started MariaDB database server.

2017년 1월 2일 월요일

MariaDB 명령어


Show Databases;   <-- 데이터베이스 목록 조회
Show Tables;       <-- 테이블 목록 조회(단 사전에 데이터 베이스로 이동을 먼저 해야함.
use db명;          <-- 해당 디비로 이동
show processlist;  <-- 연결된 리스터 리스트 조회
kill "id";            <-- 조회 리스너중 해당 ID를 kill 한다.

explain select * from tab; <-- sql에 해당되는  Plan을 조회
show explain for processid; <-- 수행중인 프로세스에 대한 SQL Plan을 본다.

create database test;  <-- 데이터베이스 생성
create user  'user'@'localhost' identified by 'password';  <- user 계정에 비번이 password인 유저를 생성
- test디비의 모든 권한을 user에세 부여(% 대신 localhost는 외부접근 차단시 사용)
grant all privileges on test.* to 'user'@'%';
revokr all on test.table from 'user'@'%'; <--해당 테이블에 대한 유저의 권한을 전부 삭제
flush privileges; <-- 권한 설적을 새로 반영한다.

1. Index(참조)
 - show index from tablename; <-- 해당 테이블의 인덱스 조회
 - Index의 종류
  ① Primary key : 중복이 발생될 수 없는 필드임.
  ② index : 일반적인 인덱스이고 중복이 가능(와일드카드 입력시 사용 불가)
  ③ Unique : Primary key와 동일하게 중복이 안되는 키임
  ④ fulltext key: 텍스트 필드의 like 검색을 위한 인덱스임(텍스트에 최적화).
  ⑤ foreign key :  데이터의 무결성을 유지시키는 인덱스임(외부 참조키임)