* Ver 5.7 에서는 /etc/mysql/my.cnf 대신 /etc/mysql/mysql.conf.d/mysqld.cnf 를 사용한다.
bind-address 등의 설정도 물론 이곳으로 변경되었다.
- Database 생성
mysql> CREATE DATABASE DB1;
- Database 삭제
mysql> DROP DATABASE DB1;
- 사용자 추가
mysql> INSERT INTO mysql.user (Host, User, Password) VALUES('%', 'DB_User', PASSWORD('Password'));
% -> 모든 호스트, 특정 호스트에서만 접근을 허용하려면 해당 ip를 입력한다.
로컬에서만 로그인이 가능하도록 하려면 localhost or 127.0.0.1 을 입력.
유저 권한과 함께 입력하려면
mysql> INSERT INTO mysql.user VALUES
-> ('localhost','user1','userpasswd','N','N','N','N','N','N','N','N','N','N'
-> ,'N','N','N','N','N','N','N','N','N','N' ,'N','','','','','0','0','0');
Query OK, 1 row affected (0.00 sec)
- 사용자 삭제
mysql> DELETE FROM mysql.user WHERE user = 'user1';
- DB에 사용자의 권한을 지정
mysql> INSERT INTO mysql.db VALUES
-> ('localhost','yourDB','user1','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
- DB에 사용자의 권한을 삭제 (DB에 지정된 사용자를 삭제)
mysql> DELETE FROM mysql.db WHERE user = 'user1';
- 사용자 추가/삭제/변경 후 반영
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql>
- update
UPDATE 테이블명 SET 필드명 = "value" WHERE 필드명 > "조건 값"
조건 값보다 큰 필드의 레코드 값을 수정
UPDATE 테이블명 SET 필드명 = "value" WHERE 필드명 <> "조건 값"
조건 값을 제외한 모든 레코드 값을 수정
UPDATE 테이블명 SET 필드명 = "value", 필드명2 = "value" WHERE 조건들
조건에 맞는 두개의 필드를 바꿈
UPDATE 테이블명 SET 필드명 = REPLACE(필드명, 'alpha', 'bravo')
필드의 값에 'alpha'라는 단어가 포함 되어 있다면 모두 'bravo'로 수정
UPDATE 테이블명 SET 필드명 = CONCAT(필드명,'bravo') WHERE 조건들
조건에 맞는 필드명의 값에 'bravo'단어를 덧붙임
- delete
mysql> delete from tableA where code LIKE '%VALUE%';
mysql> delete from tableA where code NOT LIKE '%VALUE%';
- select
select * from table명;
모든 table 에서 쿼리하려면
select * from information_schema.tables;
쿼리 결과를 파일로 추출하려면
select * from tables
into outfile '/tmp/export.csv'
(아래는 상황에 따라)
CHARACTER SET euckr FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\' LINES TERMINATED BY '\n';
- Backup, Restore
# mysqldump -u root -p --all-databases > dump.sql
# mysqldump -u root -p DB > dump.sql
# mysql -u root -p DB < dump.sql
여러 개의 .sql 파일을 한번에 복원하려면 먼저 .sql 파일을 하나의 파일로 합친다.
현재 폴더에 .sql 만 남겨놓고 하위에 merge 폴더를 만든다. 그리고,
cat * > merge.sql 로 만들어 여려 개의 .sql 파일을 하나의 .sql 파일로 합친다.
그리고 merge.sql 파일을 이용해 한번에 복원한다 ( 더 좋은 방법은? )
- repair
table 이 깨진 경우 복구하려면
REPAIR TABLE table명;
- .sql 수행
mysql> use DB1; (.sql 수행을 적용할 DB 선정)
mysql> source /tmp/abc.sql 수행
'Engineering > __01. Mysql' 카테고리의 다른 글
[TIP] (0) | 2022.08.22 |
---|---|
CSV 파일 import (0) | 2020.07.29 |
errorcode[1292]\n errormsg:Incorrect datetime value: \'0000-00-00 00:00:00\' for column \ (0) | 2018.07.30 |
기본 명령어 (0) | 2015.02.13 |