주 메뉴 열기

wwiki β

Mysql

Jhkim (토론 | 기여)님의 2019년 11월 30일 (토) 23:50 판 (서비스 상태 확인)

설치

클라이언트

데비안 계열
$ sudo apt install mariadb-client

서비스 상태 확인

systemctl status mysql

MySQL monitor

# mysql -u root

> show databases;

외부아이피 접속 설정

# nano /etc/mysql/mariadb.conf.d/50-server.cnf

bind-address            = 0.0.0.0

사용자

보기

> use mysql;

> select host, user, password from user;

추가

> insert into user(host, user, password) values ('localhost', '[user]','password([password])');

> insert into user(host, user, password) values ('192.168.0.%', '[user]','password([password])');

데이터베이스 사용권한

권한부여

> grant all privileges on [database].* to [user]@'192.168.0.%' identified by '[password]';

변경된 권한 적용

> flush privileges;

권한 확인

> show grants ;

권한 삭제

> revoke all on [database].[table] from [user]@host;

[table]은 생략가능

Barracuda format변경

에러내용

Index column size too large. The maximum column size is 767 bytes.

위 에러가 나는 경우에 변경해 주어야 한다.

현재 포맷 확인

> use mysql;

> show variables like 'innodb_file_format';

+--------------------+----------+

| Variable_name | Value |

+--------------------+----------+

| innodb_file_format | Antelope |

+--------------------+----------+

설정 수정

> set global innodb_large_prefix = ON;

> set global innodb_file_format = BARRACUDA;

Create Table 옵션추가

> CREATE TABLE [table_name] (

`Id` varchar(767) NOT NULL,

`Name` varchar(256) NULL,

`NormalizedName` varchar(256) NULL,

`ConcurrencyStamp` text NULL,

PRIMARY KEY (`Id`)

)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;

목차

GUI Tool

# arm base

docker run --name myadmin -d -e PMA_HOST=dbhost -p 8080:80 ebspace/armhf-phpmyadmin

http://your_host_ip:8080/phpmyadmin

https://www.mysql.com/products/workbench/

로그 설정

$ mysql -su root

로그 설정보기

mysql> show variables like 'general_log%';

mysql> set global general_log=on;

$ sudo nano /etc/my.cnf

[mysqld]

general_log_file  = /var/log/general.log

general_log  = 1

백업 및 복구

백업

$ mysqldump -u[userId] -p[password] --all-databases > dump.sql  

$ mysqldump -u[userId] -p[password] --databases [DB명] > dump.sql

복구

$ mysql -u [userId] -p [password] [DB명] < dump.sql

타임존

SET @@session.time_zone='+09:00';