문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 다음 판 양쪽 다음 판 | ||
database:mysql:basic [2018/07/31 14:30] kwon37xi [데이터베이스 생성/보기] |
database:mysql:basic [2023/05/23 15:08] kwon37xi [사용자 확인] |
||
---|---|---|---|
줄 19: | 줄 19: | ||
외부 서버에서 접속이 불가하면 [[database: | 외부 서버에서 접속이 불가하면 [[database: | ||
+ | |||
+ | 원격 서버 접속 | ||
+ | <code sh> | ||
+ | # hostname: | ||
+ | mysql --protocol=tcp -h ' | ||
+ | </ | ||
+ | |||
+ | ===== SSL mode 오류 ===== | ||
+ | * '' | ||
+ | * SSL 접속이 기본값으로 바뀌면서 SSL 설정이 안 된 서버 접속시 오류 발생 '' | ||
+ | * [[https:// | ||
+ | |||
+ | 혹은 '' | ||
+ | < | ||
+ | [client] | ||
+ | ssl-mode=DISABLED | ||
+ | </ | ||
+ | |||
===== 비밀번호 변경 ===== | ===== 비밀번호 변경 ===== | ||
MySQL을 설치한 직후에는 root 계정에 암호가 지정되어 있지 않다. | MySQL을 설치한 직후에는 root 계정에 암호가 지정되어 있지 않다. | ||
줄 50: | 줄 68: | ||
-- 권한 확인 ' | -- 권한 확인 ' | ||
- | SHOW GRANTS FOR ' | + | SHOW GRANTS FOR user_name; |
+ | SHOW GRANTS FOR ' | ||
</ | </ | ||
줄 63: | 줄 82: | ||
-- 생성과 전체 권한 일괄 부여 | -- 생성과 전체 권한 일괄 부여 | ||
- | GRANT ALL PRIVILEGES ON dbname.* TO username@localhost IDENTIFIED BY ' | + | GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'localhost' |
</ | </ | ||
줄 71: | 줄 90: | ||
<code sql> | <code sql> | ||
- | GRANT ALL PRIVILEGES ON dbname.* TO username@' | + | GRANT ALL PRIVILEGES ON dbname.* TO 'username'@' |
</ | </ | ||
위를 또한 번 실행한다. ' | 위를 또한 번 실행한다. ' | ||
줄 77: | 줄 96: | ||
특정 권한만 주려면, 아래와 같은 형태로 권한을 나열한다. | 특정 권한만 주려면, 아래와 같은 형태로 권한을 나열한다. | ||
<code sql> | <code sql> | ||
- | GRANT INSERT, UPDATE, SELECT, DELETE,SHOW DATABASES, SHOW VIEW ON dbname.* TO username@' | + | GRANT INSERT, UPDATE, SELECT, DELETE,SHOW DATABASES, SHOW VIEW ON dbname.* TO 'username'@' |
</ | </ | ||
줄 109: | 줄 128: | ||
# 데이터베이스를 생성하고, | # 데이터베이스를 생성하고, | ||
mysql> CREATE DATABASE dbname; | mysql> CREATE DATABASE dbname; | ||
+ | |||
+ | # 없으면 생성한다. | ||
+ | mysql> CREATE DATABASE IF NOT EXISTS dbname; | ||
mysql> CREATE DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; | mysql> CREATE DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; | ||
줄 178: | 줄 200: | ||
Open tables: 1 Queries per second avg: 0.021 | Open tables: 1 Queries per second avg: 0.021 | ||
-------------- | -------------- | ||
+ | </ | ||
+ | |||
+ | ===== 호스트별 커넥션 갯수 ===== | ||
+ | <code sql> | ||
+ | select SUBSTRING_INDEX(HOST,':', | ||
+ | from information_schema.processlist | ||
+ | group by SUBSTRING_INDEX(HOST,':', | ||
</ | </ | ||
줄 244: | 줄 273: | ||
WHERE T2.key IS NULL; | WHERE T2.key IS NULL; | ||
</ | </ | ||
+ | |||
+ | ===== STRAIGHT_JOIN ===== | ||
+ | * MySQL 이 join 순서 최적화를 잘 못할경우 **무조건 왼쪽 테이블 먼저 조회하게** 강제하는 옵션 | ||
+ | * 인덱스 힌트와 비슷한 역할을 하므로, 가급적 사용하지 않는게 좋다. | ||
+ | <code sql> | ||
+ | -- C, A, B 순서로 데이터를 읽어서 조인한다. | ||
+ | SELECT STRAIGHT_JOIN * FROM C | ||
+ | LEFT JOIN A | ||
+ | ON C.A_ID = A.A_ID | ||
+ | LEFT JOIN B | ||
+ | ON C.B_ID = B.B_ID | ||
+ | ORDER BY < | ||
+ | </ | ||
+ | * [[https:// | ||
===== mysql에서 쿼리 결과 세로로 보기 ===== | ===== mysql에서 쿼리 결과 세로로 보기 ===== | ||
줄 304: | 줄 347: | ||
inner join `COLUMNS` c on t.TABLE_NAME = c.TABLE_NAME | inner join `COLUMNS` c on t.TABLE_NAME = c.TABLE_NAME | ||
order by t.TABLE_SCHEMA, | order by t.TABLE_SCHEMA, | ||
+ | </ | ||
+ | |||
+ | ===== Group By 의 비 Grouping 컬럼 정보 concat ===== | ||
+ | * [[https:// | ||
+ | <code sql> | ||
+ | SELECT keyword, GROUP_CONCAT( syn SEPARATOR | ||
+ | FROM syn_common | ||
+ | GROUP BY keyword | ||
+ | </ | ||
+ | |||
+ | ===== GROPU BY, DISTINCT ===== | ||
+ | * '' | ||
+ | * [[https:// | ||
+ | |||
+ | ===== 전체 테이블의 행수 ===== | ||
+ | * 특정 데이터베이스 스키마에 있는 테이블들의 행수를 조회한다. | ||
+ | <code sql> | ||
+ | select TABLE_NAME, TABLE_ROWS | ||
+ | from information_schema.TABLES | ||
+ | where TABLE_SCHEMA='< | ||
+ | order by TABLE_ROWS desc; | ||
</ | </ | ||