1.  데이터베이스 접속

msyql    -u   사용자명   -p   dbname

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

msyql    -u   사용자명   dbname


2. 비밀번호  변경
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이나 msyqladmin 명령을 실행할때 -p 욥션을 붙여주고  비밀번호를 입력해야 접속이 가능하다.

3. 데이터베이스  생성/보기

* 데이터베이스를 생성하고,
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  PRIMARY  KEY  AUTO_INCREMENT,
             column_name2  VARCHAR(15)  NOT  NULL,
             column3  INT
          )  ENGINE=INNODB;

테이블 구조를 살펴본다.

mysql> EXPLAIN    tablesname;
또는
mysql> DESCRIBE  tablesname;

테이블이름  변경.

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

테이블  삭제.

mysql> DROP TABLE [IF EXISTS] tablename;


4. 사용자 추가/삭제

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

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

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

위와 같이  한번 더 실행한다.  '%'에서 따옴표를 주의한다.
 (* MYSQL 에서 '%'는 localhost를 제외한 모든 호스트를 뜻한다. 즉 localhost에 대해서는 명시적으로 따로 권한을 지정해야 한다.)
 
특정 권한만 주려면, ALL 대신  아래와 같은 형태로 권한을 줄수 있다.

GRANT   INSERT,UPDATE,SELECT   ON   dbname.*   TO   'username'@'%'    IDENTIFIED   BY   'password';

불필요한 사용자  삭제는

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


5. 활용 ( INSERT,  SELECT,  UPDATE,  DELETE,  errors/warnings/processlist, 기타  )

현재 상태 보기

MariaDB [mysql]> STATUS 
-------------- 
mysql  Ver 15.1 Distrib 10.1.22-MariaDB, for Linux (x86_64) using readline 5.1 

Connection id: 96 
Current database: mysql 
Current user: root@localhost 
SSL: Not in use 
Current pager: stdout 
Using outfile: '' 
Using delimiter: ; 
Server: MariaDB 
Server version: 10.1.22-MariaDB MariaDB Server 
Protocol version: 10 
Connection: Localhost via UNIX socket 
Server characterset: latin1 
Db     characterset: latin1 
Client characterset: utf8 
Conn.  characterset: utf8 
UNIX socket: /var/lib/mysql/mysql.sock 
Uptime: 4 hours 28 min 44 sec 

Threads: 2  Questions: 1392  Slow queries: 0  Opens: 40  Flush tables: 1  Open tables: 34  Queries per second avg: 0.086 
--------------

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   tablename;

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

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

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

mysql>  SELECT   *   FROM   tablename  LIMIT  100, 10;

결과중  100번째부터   10개만  가져오기,

UPDATE

mysql> UPDATE    tablename  SET   col1=새값    WHERE 조건;

DELETE

mysql>  DELETE   FROM  tablename    where  조건;

오류나 경고  다시 보기

mysql>  SHOW  errors;
mysql>  SHOW  warnings;

MySQL  버전 알아보기

MariaDB [mysql]> show variables  like  '%version%'; 
+-------------------------+---------------------------------+ 
| Variable_name           | Value                           | 
+-------------------------+---------------------------------+ 
| innodb_version          | 5.6.35-80.0                     | 
| protocol_version        | 10                              | 
| slave_type_conversions  |                                 | 
| version                 | 10.1.22-MariaDB                 | 
| version_comment         | MariaDB Server                  | 
| version_compile_machine | x86_64                          | 
| version_compile_os      | Linux                           | 
| version_malloc_library  | system                          | 
| version_ssl_library     | OpenSSL 1.0.1e-fips 11 Feb 2013 | 
| wsrep_patch_version     | wsrep_25.16                     | 
+-------------------------+---------------------------------+ 
10 rows in set (0.00 sec)

테이블/컬럼   정보보기

-- 전체 테이블 정보를 주석까지 포함해 보여준다. 
SHOW TABLE STATUS;

SHOW TABLE STATUS like 'member%'; -- 테이블 이름 매칭 조건 

-- 테이블의 컬럼 정보를 주석까지 포함해 보여준다. 
SHOW FULL COLUMNS FROM [테이블이름];


MySQL & MariaDB 기본 명령어

2017. 5. 11. 15:48
URL 복사통계

1.  데이터베이스 접속

msyql    -u   사용자명   -p   dbname

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

msyql    -u   사용자명   dbname


2. 비밀번호  변경
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이나 msyqladmin 명령을 실행할때 -p 욥션을 붙여주고  비밀번호를 입력해야 접속이 가능하다.

3. 데이터베이스  생성/보기

* 데이터베이스를 생성하고,
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  PRIMARY  KEY  AUTO_INCREMENT,
             column_name2  VARCHAR(15)  NOT  NULL,
             column3  INT
          )  ENGINE=INNODB;

테이블 구조를 살펴본다.

mysql> EXPLAIN    tablesname;
또는
mysql> DESCRIBE  tablesname;

테이블이름  변경.

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

테이블  삭제.

mysql> DROP TABLE [IF EXISTS] tablename;


4. 사용자 추가/삭제

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

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

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

위와 같이  한번 더 실행한다.  '%'에서 따옴표를 주의한다.
 (* MYSQL 에서 '%'는 localhost를 제외한 모든 호스트를 뜻한다. 즉 localhost에 대해서는 명시적으로 따로 권한을 지정해야 한다.)
 
특정 권한만 주려면, ALL 대신  아래와 같은 형태로 권한을 줄수 있다.

GRANT   INSERT,UPDATE,SELECT   ON   dbname.*   TO   'username'@'%'    IDENTIFIED   BY   'password';

불필요한 사용자  삭제는

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


5. 활용 ( INSERT,  SELECT,  UPDATE,  DELETE,
              errors/warnings/processlist, 기타  )


현재 상태 보기

MariaDB [mysql]> STATUS 
-------------- 
mysql  Ver 15.1 Distrib 10.1.22-MariaDB, for Linux (x86_64) using readline 5.1 

Connection id: 96 
Current database: mysql 
Current user: root@localhost 
SSL: Not in use 
Current pager: stdout 
Using outfile: '' 
Using delimiter: ; 
Server: MariaDB 
Server version: 10.1.22-MariaDB MariaDB Server 
Protocol version: 10 
Connection: Localhost via UNIX socket 
Server characterset: latin1 
Db     characterset: latin1 
Client characterset: utf8 
Conn.  characterset: utf8 
UNIX socket: /var/lib/mysql/mysql.sock 
Uptime: 4 hours 28 min 44 sec 

Threads: 2  Questions: 1392  Slow queries: 0  Opens: 40  Flush tables: 1  Open tables: 34  Queries per second avg: 0.086 
--------------

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   tablename;

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

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

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

mysql>  SELECT   *   FROM   tablename  LIMIT  100, 10;

결과중  100번째부터   10개만  가져오기,

UPDATE

mysql> UPDATE    tablename  SET   col1=새값    WHERE 조건;

DELETE

mysql>  DELETE   FROM  tablename    where  조건;

오류나 경고  다시 보기

mysql>  SHOW  errors;
mysql>  SHOW  warnings;

MySQL  버전 알아보기

MariaDB [mysql]> show variables  like  '%version%'; 
+-------------------------+---------------------------------+ 
| Variable_name           | Value                           | 
+-------------------------+---------------------------------+ 
| innodb_version          | 5.6.35-80.0                     | 
| protocol_version        | 10                              | 
| slave_type_conversions  |                                 | 
| version                 | 10.1.22-MariaDB                 | 
| version_comment         | MariaDB Server                  | 
| version_compile_machine | x86_64                          | 
| version_compile_os      | Linux                           | 
| version_malloc_library  | system                          | 
| version_ssl_library     | OpenSSL 1.0.1e-fips 11 Feb 2013 | 
| wsrep_patch_version     | wsrep_25.16                     | 
+-------------------------+---------------------------------+ 
10 rows in set (0.00 sec)

테이블/컬럼   정보보기

-- 전체 테이블 정보를 주석까지 포함해 보여준다. 
SHOW TABLE STATUS;

SHOW TABLE STATUS like 'member%'; -- 테이블 이름 매칭 조건 

-- 테이블의 컬럼 정보를 주석까지 포함해 보여준다. 
SHOW FULL COLUMNS FROM [테이블이름];

MySQL 사용자 계정 암호변경 방법을 정리.
 (여기서는 root 암호를 변경하고 있는데 다른 계정도 동일하다.)










DB 사용자 비번 변경하기

mysql> update   user   set   password=password('asdf1234')    where   user='user001';



'배워서 남주자 > Data Base' 카테고리의 다른 글

[oracle] Listener 관련  (0) 2018.03.28
[Postgresql] 접속 제어  (0) 2018.03.23
[Postgresql] 백업 / 복구  (0) 2018.03.23
[postgresql] 초간단 명령어 설명.  (0) 2018.03.23
[PostgreSQL] 소유권 및 패스워드 변경  (0) 2018.03.23

+ Recent posts