mysql
페이지 정보
본문
Mysql
create : 2000.07.19
lastupdate : 오전 10:29 2000-10-17
version 0.1
email : jooshop@kg21.net
make by Joosub. Shin 신주섭
--------------------------------------------------------------------------------
MYSQL에 관한 전반적인 것을 MYSQL문서들을 보면서 실제 실습하며 정리한 것들입니다.
많은 것이 들어 있지 않고 또 자세하지 않습니다. 짧은 제 생각을 정리하기 위해 만들
어진 문서 입니다. 도움이 되신다면 좋겠습니다. :)
문서에 멋을 더할려고 HTML로 만들었습니다만 이것 마져 배우는 입장에서 사치스럽다는
생각이 드는 군요 :)
--------------------------------------------------------------------------------
INDEX ...................................................................
MYSQL 의 ROOT패스워드 설정과 GRANT테이블 설정
초기 패스워드 변경후 mysql에 접속 할때
새로운 사용자 권한 추가 & 사용자 추가하기
GRANT TABLE로 루트의 권한을 설정하고 나서 접속이 안될때
데이타 베이스에 사용자 권한 주기
MYSQL 의 간단한 테스트
데이터베이스의 생성
테이블의 생성
mysqldump 를 이용 디비와 테이블 스키마 확인하기
--------------------------------------------------------------------------------
MYSQL 의 ROOT패스워드 설정과 GRANT테이블 설정
초기 mysql의 root권한은 패스워드가 없으며 로컬 경로에서만 접근이 가능하다.
shell> mysql -u root mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 57 to server version: 3.23.10-alpha-log
Type 'help' for help.
초기 루트의 패스워드를 변경시키기
mysql> UPDATE user SET Password='새로운패스워드' WHERE user='root';
Query OK, 3 rows affected (0.01 sec)
Rows matched: 3 Changed: 3 Warnings: 0
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.03 sec)
* 쉘에서 mysql패스워드 변경하기
ex) mysqladmin -u root password [새로운 패스워드]
shell> mysqlamdin -u root password 1234123
* root의 패스워드 변경 방법은 첫번째로 하나 아래의 두번째로 하나
결과는 같다.. 하지만 두번째의 방법이 쉽다.
첫번째의 방법은 패스워드 변경 후 FLUSH PRIVILEGES 명령으로 변경
사항을 알려야 한다.
Top Index
초기 패스워드 변경후 mysql에 접속 할때
mysql -u root -p
Enter Passwrod:[패스워드 입력]
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 75 to server version: 3.23.10-alpha-log
Type 'help' for help.
mysql>
* root 패스워드가 설정되어 있다면 서버에 root로 접속할때마다 비밀번호를
명시해 주어야 한다.
Top Index
새로운 사용자 권한 추가 & 사용자 추가하기
shell> mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON *.* TO lnxmaster@localhost
IDENTIFIED BY 'something' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO lnxmaster@"%"
IDENTIFIED MY 'something' WITH GRANT OPTION;
mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost;
* 위와 같이 설정하면 lnxmaster라는 ID로 어느곳에서나(즉 어느 호스트에서나
접속이 가능한다 그리고 비밀 번호는 'something'이란 비밀 번호를 쓰고 있다.
admin이란 아이디는 비밀 번호 없이 localhost에서 접속이 가능하고 RELOAD,
와 PROCESS작업을 할 수 있다.
Top Index
GRANT TABLE로 루트의 권한을 설정하고 나서 접속이 안될때
shell> mysql -u root mysql -p
Access denied for user : '@unknown' to database mysql
위와 같이 나온다면 GRANT테이블을 생성시 업데이트를 안해 주었거나 HOSTS파일
등에서 localhosts가 잘못 잡혀 있을 가능성도 있다. 아래와 같이 해주면 무리
없이 GRANT TABLE을 재수정 할 수 있다.
shell> mysqld --skip-grant-table
* 위 옵션을 통해서 서버를 다시시작하여야 한다. 그리고 /etc/hosts 파일에
자신의 호스트 이름을 추가하여야 한다. ( WINDOWS\HOSTS.SAM 파일에도 사용자 호스
트 목록을 추가해 보라 :)
* 위 작업을 한 후 FLUSH PRIVILEGES 문이나 mysqladmin flush privileges 명령을
사용해서 작업한 테이블을 UPDATE 해야 한다.
Top Index
데이타 베이스에 사용자 권한 주기
ex) GRANT ALL ON [데이타베이스이름] to [사용자이름]
mysql) GRANT ALL ON db_test.* to lnxmaster;
Query OK, 0 rows affected (0.01 sec)
이렇게 되면 db_test란 데이타 베이스는 lnxmaster만이 조작할 수 있다.
Top Index
MYSQL 의 간단한 테스트
명령에 따라 값은 같지만 다른 형태의 출력을 보여준다.
shell> mysql
mysql> SELECT version(), current_date;
+-------------------+--------------+
| version() | current_date |
+-------------------+--------------+
| 3.23.10-alpha-log | 2000-08-18 |
+-------------------+--------------+
1 row in set (0.01 sec)
mysql> select version(); select current_date;
+-------------------+
| version() |
+-------------------+
| 3.23.10-alpha-log |
+-------------------+
1 row in set (0.00 sec)
+----------------+
| current_date |
+----------------+
| 2000-10-17 |
+----------------+
1 row in set (0.00 sec)
현재의 날짜를 본다.
+--------------+
| current_date |
+--------------+
| 2000-08-18 |
+--------------+
1 row in set (0.00 sec)
Top Index
현재의 시간을 본다.
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2000-08-18 15:31:53 |
+---------------------+
1 row in set (0.00 sec)
사용자의 정보를 볼 수 있다.
mysql> select user();
+---------------------+
| user() |
+---------------------+
| lnxmaster@localhost |
+---------------------+
1 row in set (0.00 sec)
사용자의 정보와 현재 날짜, 시간을 표시한다.
mysql> select user(), current_date, now();
+---------------------+--------------+---------------------+
| user() | current_date | now() |
+---------------------+--------------+---------------------+
| lnxmaster@localhost | 2000-08-18 | 2000-08-18 15:35:17 |
+---------------------+--------------+---------------------+
1 row in set (0.00 sec)
현재 데이터 베이스 보기
mysql> show databases;
+-----------+
| Database |
+-----------+
| db_test |
| mysql |
| test |
| user_data |
+-----------+
4 rows in set (0.00 sec)
현재 데이터 베이스의 테이블 보여준다.
mysql> show tables;
+---------------------+
| Tables_in_web_board |
+---------------------+
| bbsadmin |
| tb_web |
| tb_web_log |
| tbweb |
| tbweb_log |
+---------------------+
5 rows in set (0.00 sec)
Top Index
데이터베이스의 생성
mysql> create database test2;
Query OK, 1 row affected (0.00 sec)
생성된 데이터 베이스를 확인한다.
mysql> show databases;
+-----------+
| Database |
+-----------+
| mysql |
| test |
| test2 | <--- 새로 생성된 데이터 베이스
| web_board |
+-----------+
4 rows in set (0.00 sec)
Top Index
테이블의 생성
테이블을 생성하기 위해서는 먼저 데이터 베이스를 오픈해야 한다.
mysql> use test
Database changed
테이블을 생성한다.
mysql> CREATE TABLE tblTest (id INT NOT NULL, fldName CHAR(30),
-> fldAddress CHAR(40), fldPhon CHAR(15), fldEmail CHAR(15),
-> PRIMARY KEY (id));
Query OK, 0 rows affected (0.00 sec)
* 위 명령은 테이블을 생성 시켜 주는 명령이다. tblTest란 이름으로 테이블이 생기며
id, fldName, fldAddress, fldPhon, fldEmail 의 필드가 생긴다.
id는 null값이 존재하지 않으며 INT형으로 선언되어 있다.
fldName 은 CHAR 형으로 선언되어 있으며 사이즈 30으로 선언되어 있다.
fldAddress와 fldPhone, fldEmail 등도 같은 형으로 선언되어 있으며 사이즈는 각각
40, 15, 15 로 설정이 되어 있다.
PRIMARY KEY 는 id란 필드 명으로 선언하였다.
만들어진 테이블을 확인한다.
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| tblTest |
+----------------+
1 row in set (0.01 sec)
만들어진 테이블의 구조(스키마:)를 확인한다.
mysql> desc tblTest;
+------------+----------+------+-----+---------+-------+---------------------------------+
| Field | Type | Null | Key | Default | Extra | Privileges |
+------------+----------+------+-----+---------+-------+---------------------------------+
| id | int(11) | | PRI | 0 | | select,insert,update,references |
| fldName | char(30) | YES | | NULL | | select,insert,update,references |
| fldAddress | char(40) | YES | | NULL | | select,insert,update,references |
| fldPhon | char(15) | YES | | NULL | | select,insert,update,references |
| fldEmail | char(15) | YES | | NULL | | select,insert,update,references |
+------------+----------+------+-----+---------+-------+---------------------------------+
5 rows in set (0.00 sec)
Top Index
mysqldump를 이용 디비와 테이블 스키마 확인하기
형식> mysqldump -u 유저 -h 호스트(혹은서버) -p 디비명 > 생성파일명
형식2> msyqldump -u 유저 -h 호스트(혹은서버) -p 디비명 테이블명 > 생성파일명
디비 스키마 확인
shell> mysqldump -u root -p test > test_dump
위와 같이 하면 test_dump란 파일이 생성된다.
test_dump의 내용
---------------------------------------------------------
# MySQL dump 7.0
#
# Host: localhost Database: test
#--------------------------------------------------------
# Server version 3.23.10-alpha-log
#
# Table structure for table 'tblTest'
#
CREATE TABLE tblTest (
id int(11) DEFAULT '0' NOT NULL,
fldName char(30),
fldAddress char(40),
fldPhon char(15),
fldEmail char(15),
PRIMARY KEY (id)
);
#
# Dumping data for table 'tblTest'
#
---------------------------------------------------------
Top Index
테이블 스키마 확인
create : 2000.07.19
lastupdate : 오전 10:29 2000-10-17
version 0.1
email : jooshop@kg21.net
make by Joosub. Shin 신주섭
--------------------------------------------------------------------------------
MYSQL에 관한 전반적인 것을 MYSQL문서들을 보면서 실제 실습하며 정리한 것들입니다.
많은 것이 들어 있지 않고 또 자세하지 않습니다. 짧은 제 생각을 정리하기 위해 만들
어진 문서 입니다. 도움이 되신다면 좋겠습니다. :)
문서에 멋을 더할려고 HTML로 만들었습니다만 이것 마져 배우는 입장에서 사치스럽다는
생각이 드는 군요 :)
--------------------------------------------------------------------------------
INDEX ...................................................................
MYSQL 의 ROOT패스워드 설정과 GRANT테이블 설정
초기 패스워드 변경후 mysql에 접속 할때
새로운 사용자 권한 추가 & 사용자 추가하기
GRANT TABLE로 루트의 권한을 설정하고 나서 접속이 안될때
데이타 베이스에 사용자 권한 주기
MYSQL 의 간단한 테스트
데이터베이스의 생성
테이블의 생성
mysqldump 를 이용 디비와 테이블 스키마 확인하기
--------------------------------------------------------------------------------
MYSQL 의 ROOT패스워드 설정과 GRANT테이블 설정
초기 mysql의 root권한은 패스워드가 없으며 로컬 경로에서만 접근이 가능하다.
shell> mysql -u root mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 57 to server version: 3.23.10-alpha-log
Type 'help' for help.
초기 루트의 패스워드를 변경시키기
mysql> UPDATE user SET Password='새로운패스워드' WHERE user='root';
Query OK, 3 rows affected (0.01 sec)
Rows matched: 3 Changed: 3 Warnings: 0
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.03 sec)
* 쉘에서 mysql패스워드 변경하기
ex) mysqladmin -u root password [새로운 패스워드]
shell> mysqlamdin -u root password 1234123
* root의 패스워드 변경 방법은 첫번째로 하나 아래의 두번째로 하나
결과는 같다.. 하지만 두번째의 방법이 쉽다.
첫번째의 방법은 패스워드 변경 후 FLUSH PRIVILEGES 명령으로 변경
사항을 알려야 한다.
Top Index
초기 패스워드 변경후 mysql에 접속 할때
mysql -u root -p
Enter Passwrod:[패스워드 입력]
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 75 to server version: 3.23.10-alpha-log
Type 'help' for help.
mysql>
* root 패스워드가 설정되어 있다면 서버에 root로 접속할때마다 비밀번호를
명시해 주어야 한다.
Top Index
새로운 사용자 권한 추가 & 사용자 추가하기
shell> mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON *.* TO lnxmaster@localhost
IDENTIFIED BY 'something' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO lnxmaster@"%"
IDENTIFIED MY 'something' WITH GRANT OPTION;
mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost;
* 위와 같이 설정하면 lnxmaster라는 ID로 어느곳에서나(즉 어느 호스트에서나
접속이 가능한다 그리고 비밀 번호는 'something'이란 비밀 번호를 쓰고 있다.
admin이란 아이디는 비밀 번호 없이 localhost에서 접속이 가능하고 RELOAD,
와 PROCESS작업을 할 수 있다.
Top Index
GRANT TABLE로 루트의 권한을 설정하고 나서 접속이 안될때
shell> mysql -u root mysql -p
Access denied for user : '@unknown' to database mysql
위와 같이 나온다면 GRANT테이블을 생성시 업데이트를 안해 주었거나 HOSTS파일
등에서 localhosts가 잘못 잡혀 있을 가능성도 있다. 아래와 같이 해주면 무리
없이 GRANT TABLE을 재수정 할 수 있다.
shell> mysqld --skip-grant-table
* 위 옵션을 통해서 서버를 다시시작하여야 한다. 그리고 /etc/hosts 파일에
자신의 호스트 이름을 추가하여야 한다. ( WINDOWS\HOSTS.SAM 파일에도 사용자 호스
트 목록을 추가해 보라 :)
* 위 작업을 한 후 FLUSH PRIVILEGES 문이나 mysqladmin flush privileges 명령을
사용해서 작업한 테이블을 UPDATE 해야 한다.
Top Index
데이타 베이스에 사용자 권한 주기
ex) GRANT ALL ON [데이타베이스이름] to [사용자이름]
mysql) GRANT ALL ON db_test.* to lnxmaster;
Query OK, 0 rows affected (0.01 sec)
이렇게 되면 db_test란 데이타 베이스는 lnxmaster만이 조작할 수 있다.
Top Index
MYSQL 의 간단한 테스트
명령에 따라 값은 같지만 다른 형태의 출력을 보여준다.
shell> mysql
mysql> SELECT version(), current_date;
+-------------------+--------------+
| version() | current_date |
+-------------------+--------------+
| 3.23.10-alpha-log | 2000-08-18 |
+-------------------+--------------+
1 row in set (0.01 sec)
mysql> select version(); select current_date;
+-------------------+
| version() |
+-------------------+
| 3.23.10-alpha-log |
+-------------------+
1 row in set (0.00 sec)
+----------------+
| current_date |
+----------------+
| 2000-10-17 |
+----------------+
1 row in set (0.00 sec)
현재의 날짜를 본다.
+--------------+
| current_date |
+--------------+
| 2000-08-18 |
+--------------+
1 row in set (0.00 sec)
Top Index
현재의 시간을 본다.
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2000-08-18 15:31:53 |
+---------------------+
1 row in set (0.00 sec)
사용자의 정보를 볼 수 있다.
mysql> select user();
+---------------------+
| user() |
+---------------------+
| lnxmaster@localhost |
+---------------------+
1 row in set (0.00 sec)
사용자의 정보와 현재 날짜, 시간을 표시한다.
mysql> select user(), current_date, now();
+---------------------+--------------+---------------------+
| user() | current_date | now() |
+---------------------+--------------+---------------------+
| lnxmaster@localhost | 2000-08-18 | 2000-08-18 15:35:17 |
+---------------------+--------------+---------------------+
1 row in set (0.00 sec)
현재 데이터 베이스 보기
mysql> show databases;
+-----------+
| Database |
+-----------+
| db_test |
| mysql |
| test |
| user_data |
+-----------+
4 rows in set (0.00 sec)
현재 데이터 베이스의 테이블 보여준다.
mysql> show tables;
+---------------------+
| Tables_in_web_board |
+---------------------+
| bbsadmin |
| tb_web |
| tb_web_log |
| tbweb |
| tbweb_log |
+---------------------+
5 rows in set (0.00 sec)
Top Index
데이터베이스의 생성
mysql> create database test2;
Query OK, 1 row affected (0.00 sec)
생성된 데이터 베이스를 확인한다.
mysql> show databases;
+-----------+
| Database |
+-----------+
| mysql |
| test |
| test2 | <--- 새로 생성된 데이터 베이스
| web_board |
+-----------+
4 rows in set (0.00 sec)
Top Index
테이블의 생성
테이블을 생성하기 위해서는 먼저 데이터 베이스를 오픈해야 한다.
mysql> use test
Database changed
테이블을 생성한다.
mysql> CREATE TABLE tblTest (id INT NOT NULL, fldName CHAR(30),
-> fldAddress CHAR(40), fldPhon CHAR(15), fldEmail CHAR(15),
-> PRIMARY KEY (id));
Query OK, 0 rows affected (0.00 sec)
* 위 명령은 테이블을 생성 시켜 주는 명령이다. tblTest란 이름으로 테이블이 생기며
id, fldName, fldAddress, fldPhon, fldEmail 의 필드가 생긴다.
id는 null값이 존재하지 않으며 INT형으로 선언되어 있다.
fldName 은 CHAR 형으로 선언되어 있으며 사이즈 30으로 선언되어 있다.
fldAddress와 fldPhone, fldEmail 등도 같은 형으로 선언되어 있으며 사이즈는 각각
40, 15, 15 로 설정이 되어 있다.
PRIMARY KEY 는 id란 필드 명으로 선언하였다.
만들어진 테이블을 확인한다.
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| tblTest |
+----------------+
1 row in set (0.01 sec)
만들어진 테이블의 구조(스키마:)를 확인한다.
mysql> desc tblTest;
+------------+----------+------+-----+---------+-------+---------------------------------+
| Field | Type | Null | Key | Default | Extra | Privileges |
+------------+----------+------+-----+---------+-------+---------------------------------+
| id | int(11) | | PRI | 0 | | select,insert,update,references |
| fldName | char(30) | YES | | NULL | | select,insert,update,references |
| fldAddress | char(40) | YES | | NULL | | select,insert,update,references |
| fldPhon | char(15) | YES | | NULL | | select,insert,update,references |
| fldEmail | char(15) | YES | | NULL | | select,insert,update,references |
+------------+----------+------+-----+---------+-------+---------------------------------+
5 rows in set (0.00 sec)
Top Index
mysqldump를 이용 디비와 테이블 스키마 확인하기
형식> mysqldump -u 유저 -h 호스트(혹은서버) -p 디비명 > 생성파일명
형식2> msyqldump -u 유저 -h 호스트(혹은서버) -p 디비명 테이블명 > 생성파일명
디비 스키마 확인
shell> mysqldump -u root -p test > test_dump
위와 같이 하면 test_dump란 파일이 생성된다.
test_dump의 내용
---------------------------------------------------------
# MySQL dump 7.0
#
# Host: localhost Database: test
#--------------------------------------------------------
# Server version 3.23.10-alpha-log
#
# Table structure for table 'tblTest'
#
CREATE TABLE tblTest (
id int(11) DEFAULT '0' NOT NULL,
fldName char(30),
fldAddress char(40),
fldPhon char(15),
fldEmail char(15),
PRIMARY KEY (id)
);
#
# Dumping data for table 'tblTest'
#
---------------------------------------------------------
Top Index
테이블 스키마 확인
- 이전글substring 21.02.10
- 다음글Errcode 내용확인 21.02.10
댓글목록
등록된 댓글이 없습니다.