차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판이전 판다음 판 | 이전 판 | ||
tech:my_sql [2014/03/18 14:28] – V_L | tech:my_sql [2021/09/03 09:11] (현재) – [비밀번호 변경] 162.158.5.247 | ||
---|---|---|---|
줄 1: | 줄 1: | ||
+ | {{tag> | ||
+ | ======My Sql====== | ||
+ | |||
+ | |||
+ | |||
+ | =====기본명령어===== | ||
+ | 데이터베이스 접속 | ||
+ | $ 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(' | ||
+ | mysql> FLUSH PRIVILEGES; | ||
+ | |||
+ | |||
+ | Set Password 이용 | ||
+ | SET PASSWORD FOR root=password(' | ||
+ | |||
+ | |||
+ | 일단 root 비밀번호가 설정된 상태에서는 mysql이나 mysqladmin 명령을 실행할 때 -p 옵션을 붙여주고 기존 비밀번호를 입력해야만 한다. | ||
+ | |||
+ | mysql> FLUSH PRIVILEGES; | ||
+ | 뭔가 사용자 관련 내용을 바꿨으면 권한재설정 해줌. | ||
+ | ====사용자 추가/ | ||
+ | mysql> GRANT ALL PRIVILEGES ON dbname.* TO username@localhost IDENTIFIED BY ' | ||
+ | |||
+ | username 이라는 사용자를 password라는 비밀번호를 갖도록 하여 추가한다. username은 dbname이라는 | ||
+ | 데이타베이스에 대해 모든 권한을 가지고 있다. | ||
+ | username 사용자는 로칼 호스트에서만 접속할 수 있다. 다른 호스트에서 접속하려면 | ||
+ | GRANT ALL PRIVILEGES ON dbname.* TO username@' | ||
+ | |||
+ | 위를 또한 번 실행한다. ' | ||
+ | 추가 : ' | ||
+ | 아래 댓글에서 rukikuki님이 알려주셨습니다. | ||
+ | GRANT ALL PRIVILEGES ON testdb.* TO ' | ||
+ | 처럼 ' | ||
+ | |||
+ | 불필요한 사용자 삭제는 | ||
+ | mysql> DeLETE FROM user WHERE user=' | ||
+ | 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[, | ||
+ | |||
+ | 필요 없으면 삭제한다. | ||
+ | mysql> DROP TABLE [IF EXISTS] tablename; | ||
+ | |||
+ | <code mysql> | ||
+ | | ||
+ | id varchar(20) DEFAULT ' | ||
+ | name varchar(20), | ||
+ | karma int, | ||
+ | exp int, | ||
+ | | ||
+ | email varchar(35), | ||
+ | ip varchar(17), | ||
+ | | ||
+ | | ||
+ | | ||
+ | ); | ||
+ | </ | ||
+ | |||
+ | |||
+ | ====현재 상태 보기==== | ||
+ | |||
+ | mysql> status | ||
+ | < | ||
+ | mysql Ver 15.1 Distrib 10.3.31-MariaDB, | ||
+ | |||
+ | Connection id: 71 | ||
+ | Current database: | ||
+ | Current user: | ||
+ | SSL: Not in use | ||
+ | Current pager: | ||
+ | Using outfile: | ||
+ | Using delimiter: | ||
+ | Server: | ||
+ | Server version: | ||
+ | Protocol version: | ||
+ | Connection: | ||
+ | Server characterset: | ||
+ | Db | ||
+ | Client characterset: | ||
+ | Conn. characterset: | ||
+ | UNIX socket: | ||
+ | Uptime: | ||
+ | |||
+ | Threads: 6 Questions: 545 Slow queries: 0 Opens: 175 Flush tables: 1 Open tables: 31 Queries per second avg: 0.026 | ||
+ | --------------</ | ||
+ | |||
+ | |||
+ | INSERT | ||
+ | mysql> INSERT INTO tablename VALUES(값1, | ||
+ | |||
+ | 혹은 | ||
+ | |||
+ | mysql> INSERT INTO tablename (col1, col2, ...) VALUES(값1, | ||
+ | |||
+ | |||
+ | SELECT | ||
+ | mysql> SELECT col1, col2, ... FROM tablename; | ||
+ | |||
+ | 컬럼명을 *로 하면 모든 컬럼 의미. | ||
+ | |||
+ | mysql> SELECT col1 AS ' | ||
+ | |||
+ | 컬럼의 이름을 바꿔서 출력. | ||
+ | |||
+ | mysql> SELECT * FROM tablename ORDER BY col1 DESC; | ||
+ | mysql> SELECT col1, korean + math english AS ' | ||
+ | |||
+ | DESC는 내림차순 ASC는 오름차순. | ||
+ | |||
+ | mysql> SELECT * FROM grade WHERE korean < 90; | ||
+ | |||
+ | 조건줘서 SELECT. | ||
+ | |||
+ | mysql> SELECT * FROM grade LIMIT 10; | ||
+ | |||
+ | 결과중 처음부터 10개만 가져오기 | ||
+ | |||
+ | mysql> SELECT * FROM grade LIMIT 100, 10; | ||
+ | |||
+ | 결과중 100번째부터 10개만 가져오기. 첫번째 레코드는 0번 부터 시작한다. | ||
+ | |||
+ | 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; | ||
+ | |||
+ | |||
+ | * 출처: [[http:// | ||