사용자 도구

사이트 도구


database:mysql:basic

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
database:mysql:basic [2021/01/06 17:00]
kwon37xi [데이터베이스 접속]
database:mysql:basic [2023/10/31 09:49] (현재)
kwon37xi [테이블/컬럼 정보보기]
줄 1: 줄 1:
 ====== MySQL 기본 명령어 정리 ====== ====== MySQL 기본 명령어 정리 ======
 +  * [[database:mysql:datatype|MySQL Data Type]]
 MySQL의 기본 명령어와 SQL문 정리. 내가 RDBMS에 완전 문외한이기 때문에 기본 SQL쿼리까지... MySQL의 기본 명령어와 SQL문 정리. 내가 RDBMS에 완전 문외한이기 때문에 기본 SQL쿼리까지...
  
줄 28: 줄 28:
 ===== SSL mode 오류 ===== ===== SSL mode 오류 =====
   * ''ERROR 2026 (HY000): SSL connection error: error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol'' 오류 발생.   * ''ERROR 2026 (HY000): SSL connection error: error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol'' 오류 발생.
-  * SSL 접속이 기본값으로 바뀌면서 SSL 설정이 안 된 서버 접속시 오류 발생 ''--ssl-mode=disabled'' 옵션 주면 일반 접속으로 됨.+  * SSL 접속이 기본값으로 바뀌면서 SSL 설정이 안 된 서버 접속시 오류 발생 ''%%--%%ssl-mode=disabled'' 옵션 주면 일반 접속으로 됨.
   * [[https://serverfault.com/jobs?so_medium=StackOverflow&so_source=SiteNav|ssl - Cannot conect MySQL (error 2026) after upgrade to Ubuntu 20.04 - Server Fault]]   * [[https://serverfault.com/jobs?so_medium=StackOverflow&so_source=SiteNav|ssl - Cannot conect MySQL (error 2026) after upgrade to Ubuntu 20.04 - Server Fault]]
  
-혹은 다음 설정을 한다.+혹은 ''my.cnf'' 에 다음 설정을 한다.
 <code> <code>
 [client]  [client] 
줄 68: 줄 68:
  
 -- 권한 확인 'username'@'hostname' -- 권한 확인 'username'@'hostname'
-SHOW GRANTS FOR 'username'@'%' +SHOW GRANTS FOR user_name; 
 +SHOW GRANTS FOR 'username'@'%';
 </code> </code>
  
줄 81: 줄 82:
  
 -- 생성과 전체 권한 일괄 부여 -- 생성과 전체 권한 일괄 부여
-GRANT ALL PRIVILEGES ON dbname.* TO username@localhost IDENTIFIED BY 'password';+GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'localhostIDENTIFIED BY 'password';
 </code> </code>
  
줄 89: 줄 90:
  
 <code sql> <code sql>
-GRANT ALL PRIVILEGES ON dbname.* TO username@'%' IDENTIFIED BY 'password';+GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'%' IDENTIFIED BY 'password';
 </code> </code>
 위를 또한 번 실행한다. '%'에서 홑따옴표를 주의한다. 위를 또한 번 실행한다. '%'에서 홑따옴표를 주의한다.
줄 95: 줄 96:
 특정 권한만 주려면, 아래와 같은 형태로 권한을 나열한다. 특정 권한만 주려면, 아래와 같은 형태로 권한을 나열한다.
 <code sql> <code sql>
-GRANT INSERT, UPDATE, SELECT, DELETE,SHOW DATABASES, SHOW VIEW ON dbname.* TO username@'localhost' IDENTIFIED BY 'pwd';+GRANT INSERT, UPDATE, SELECT, DELETE,SHOW DATABASES, SHOW VIEW ON dbname.* TO 'username'@'localhost' IDENTIFIED BY 'pwd';
 </code> </code>
  
줄 127: 줄 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;
줄 323: 줄 327:
 SHOW TABLE STATUS like 'member%'; -- 테이블 이름 매칭 조건 SHOW TABLE STATUS like 'member%'; -- 테이블 이름 매칭 조건
  
--- 테이블의 컬럼 정보를 주석까지 포함해 보여준다.+-- 테이블의 컬럼 정보를 collation 등 아주 상세하게, 주석까지 포함해 보여준다. 
 SHOW FULL COLUMNS FROM [테이블이름]; SHOW FULL COLUMNS FROM [테이블이름];
 </code> </code>
줄 356: 줄 360:
   * ''GROUP BY''를 하면서, ''COUNT(DISTINCT colName)'' 을 하면, 동일 그룹에 속하는 ''colName'' 이 중복은 제거 상태로 카운팅 된다.   * ''GROUP BY''를 하면서, ''COUNT(DISTINCT colName)'' 을 하면, 동일 그룹에 속하는 ''colName'' 이 중복은 제거 상태로 카운팅 된다.
   * [[https://dev.mysql.com/doc/refman/8.0/en/group-by-functions.html#function_count-distinct|GROUP BY functions - COUNT(DISTINCT)]]   * [[https://dev.mysql.com/doc/refman/8.0/en/group-by-functions.html#function_count-distinct|GROUP BY functions - COUNT(DISTINCT)]]
 +
 +===== 전체 테이블의 행수 =====
 +  * 특정 데이터베이스 스키마에 있는 테이블들의 행수를 조회한다.
 +<code sql>
 +select TABLE_NAME, TABLE_ROWS
 +from information_schema.TABLES
 +where TABLE_SCHEMA='<schema_name>'
 +order by TABLE_ROWS desc;
 +</code>
 +
database/mysql/basic.1609920033.txt.gz · 마지막으로 수정됨: 2021/01/06 17:00 저자 kwon37xi