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 암호를 변경하고 있는데 다른 계정도 동일하다.)
위 사진은 root 사용자 계정을 변경하는 모습이다.
1. mysql 실행파일이 있는 위치에서 mysql을 실행시킨다.
mysql -u root -p
2. 비밀번호(암호) 변경을 위해 데이터베이스로 mysql을 지정한다.
mysql> use mysql;
3. 현재 비밀번호 확인 (선택사항)
mysql> select host, user, password from user;
4. 계정의 암호를 변경한다.
- 여기서는 root 계정의 암호를 asdf1234로 변경했음
mysql> update user set password=password('asdf1234') where user='root';
mysql> update mail_users set password=encrypt('비번입력') where username='계정';
5. 변경된 비밀번호 확인 (선택사항)
mysql> select host, user, password from user;
6. mysql 종료
mysql> exit
7. MySQL 서버를 재가동(Restart) 시킨다.
'배워서 남주자 > Data Base' 카테고리의 다른 글
[oracle] sqlplus 한글 깨짐 현상 (0) | 2019.03.21 |
---|---|
[Mariadb] table 상세 정보 보기 (0) | 2019.01.18 |
[php-fpm] Oracle 연결 환경 변수 설정. (0) | 2018.03.30 |
[oracle] 오라클 실행 / 중지 (1) | 2018.03.28 |
[oracle] Listener 관련 (0) | 2018.03.28 |