뉴질랜드 다이어리(NZ Diary) 라빠

Mysql 기본 명령어 본문

개발

Mysql 기본 명령어

Donochi 2014. 5. 19. 13:45

출처 : http://kwon37xi.egloos.com/1634694

데이터베이스 접속

mysql -u 사용자명 -p dbname

설치 직후에는 root 사용자에 비밀번호가 없으므로 다음과 같이 접속하여 MySQL을 관리할 수 있다.

mysql -u root mysql

비밀번호 변경

MySQL을 설치한 직후에는 root 계정에 암호가 지정되어 있지 않다. 다음 세가지 방법으로 비밀번호를 변경 할 수 있다.

# mysqladmin 이용mysqladmin -u root password 새비밀번호
# update문 이용mysql -u root mysql----mysql> UPDATE user SET password=password('새비밀번호') WHERE user='root';mysql> FLUSH PRIVILEGES;
# Set Password 이용mysql> SET PASSWORD FOR root=password('새비밀번호');

일단 root 비밀번호가 설정된 상태에서는 mysql이나 mysqladmin 명령을 실행할 때 -p 옵션을 붙여주고 기존 비밀번호를 입력해야만 한다.

사용자 추가/삭제

mysql> GRANT ALL PRIVILEGES ON dbname.* TO username@localhost IDENTIFIED BY 'password';

username 이라는 사용자를 password라는 비밀번호를 갖도록 하여 추가한다. username은 dbname이라는 데이타베이스에 대해 모든 권한을 가지고 있다. username 사용자는 로칼 호스트에서만 접속할 수 있다. 다른 호스트에서 접속하려면

mysql> GRANT ALL PRIVILEGES ON dbname.* TO username@'%' IDENTIFIED BY 'password';

위를 또한 번 실행한다. '%'에서 홑따옴표를 주의한다.

MySQL error 1045(28000): Access denied for user ...에 따르면 '%'란 localhost 를 제외한 모든 호스트를 뜻한다고 한다. 즉, localhost에 대해서는 명시적으로 따로 권한을 지정해야 한다.

불필요한 사용자 삭제는

mysql> DLETE FROM USER WHERE USER='username';mysql> FLUSH PRIVILEGES;

데이터베이스 생성/보기

# 데이터베이스를 생성하고,mysql> CREATE DATABASE dbname; # 현재 존재하는 데이터베이스 목록을 보여준다.mysql> SHOW DATABASES; # 특정 데이타베이스를 사용하겠다고 선언한다.mysql> USE dbname; # 쓸모 없으면 과감히 삭제한다.mysql> DROP DATABASE [IF EXISTS] dbname;

IF EXISTS 옵션은 비록 데이타베이스가 없더라도 오류를 발생시키지 말라는 의미이다.

테이블 생성/보기

테이블을 생성하고,

mysql> CREATE TABLE tablename (  column_name1 INT,  column_name2 VARCHAR(15),  column_name3 INT );

현재 데이타베이스의 테이블 목록을 보고

mysql> SHOW TABLES;

테이블 구조를 살펴본다.

mysql> EXPLAIN tablesname;혹은mysql> DESCRIBE tablename;

이름을 잘못 지정했으면 이름을 변경할 수도 있다.

mysql> RENAME TABLE tablename1 TO tablename2[, tablename3 TO tablename4];

필요 없으면 삭제한다.

mysql> DROP TABLE [IF EXISTS] tablename;

현재 상태 보기

mysql> STATUS --------------mysql Ver 11.18 Distrib 3.23.58, FOR pc-linux (i686) Connection id: 26CURRENT DATABASE: studyCURRENT USER: study@localhostCURRENT pager: stdoutUSING OUTFILE: ''Server version: 3.23.58Protocol version: 10Connection: Localhost via UNIX socketClient characterset: latin1Server characterset: euc_krUNIX socket: /var/lib/mysql/mysql.sockUptime: 2 hours 9 MIN 59 sec Threads: 1 Questions: 160 Slow queries: 0 Opens: 28 FLUSH TABLES: 1OPEN TABLES: 1 Queries per SECOND avg: 0.021--------------

INSERT

mysql> INSERT INTO tablename VALUES(1,2, ...);혹은mysql> INSERT INTO tablename (col1, col2, ...) VALUES(1,2, ...);

SELECT

mysql> SELECT col1, col2, ... FROM tablename;

컬럼명을 *로 하면 모든 컬럼 의미.

mysql> SELECT col1 AS '성명', col2 AS '국어점수' FROM grade;

컬럼의 이름을 바꿔서 출력.

mysql> SELECT * FROM tablename ORDER BY col1 DESC;mysql> SELECT col1, korean + math english AS '총점' FROM tablename ORDER BY '총점' ASC;

DESC는 내림차순 ASC는 오름차순.

mysql> SELECT * FROM grade WHERE korean < 90;

결과중 처음부터 10개만 가져오기

mysql> SELECT * FROM grade LIMIT 10;

결과중 100번째부터 10개만 가져오기. 첫번째 레코드는 0번 부터 시작한다.

mysql> SELECT * FROM grade LIMIT 100, 10;

UPDATE

mysql> UPDATE tablename SET col1=새값 WEHER 조건

DELETE

mysql> DELETE FROM tablename WEHRE 조건

mysql에서 쿼리 결과 세로로 보기

-E 옵션을 줘서 실행한다.

mysql -E -u root -p mysql

mysql에서 발생한 오류나 경고 다시 보기

mysql> SHOW errors;mysql> SHOW warnings;

show processlist

SHOW FULL processlist;SHOW FULL processlist\G;

MySQL 버전 알아보기

SHOW VARIABLES LIKE "%version%";


'개발' 카테고리의 다른 글

Action Bar 사용방법  (0) 2014.05.19
RGB 색상표  (0) 2014.05.19
Android™ 1.5 android.R.drawable Icon Resources  (0) 2014.05.19
Proguard(프로가드) 설정법  (0) 2014.05.19
정규표현식(Regular Expression) 기본  (0) 2014.05.19