[01] MySQL 서버 작동
1. MySQL 서버 작동
1) C:/홈 폴더/mysql56/bin/mysqld.exe 실행(d: damon)
2) 방화벽 옵션은 '액세스 허용'을 선택합니다.
3) mysqld.exe가 [작업관리자 -- 프로세스]에 실행중인지 확인합니다.
작업 관리자 호출은 'Ctrl + Shift + ESC' 키를 동시에 누릅니다.
[02] MySQL 서버에 root 계정으로 접속
1. MySQL 서버에 root 계정으로 접속
- mysql 최고 관리자 계정이며 처음 mysql 설치시 패스워드가 지정되어 있지
않습니다.
- 클라이언트 실행
. -u: 계정 지정 옵션, root: 최고 관리자 계정
C:
CD/
CD 홈 폴더/mysql56/bin
mysql <-- 아무런 설정 없이 로그인 가능, 매우 위험
mysql -u root <-- root 관리자 계정으로 로그인
2. root 계정 패스워드의 변경
- 데이터베이스에서 사용하는 명령어(언어)를 SQL이라고 합니다.
- SQL은 대소문자 상관 없음.
- SQL 명령어의 종료를 선언하기위해 명령어의 마지막은 ';'을 입력합니다.
1) 데이터베이스 목록을 봅니다.
mysql> show databases;
2) 사용하려는 시스템 데이터베이스를 연결(데이터베이스 변경) 합니다.
mysql> USE mysql;
Database changed
3) 하나의 데이터베이스에 등록된 테이블들의 이름을 전부 출력
mysql> show tables;
4) 등록된 계정 출력
- host: mysql 서버에 접속하려는 client 위치
'127.0.0.1, localhost'는 mysql이 설치된 컴퓨터를 말함,
특정 ip만 접근 가능하게 지정 할 수 있음.
- user: mysql server에 접근 할 수 있는 계정명
- password: 접속 패스워드
mysql> SELECT host, user, password FROM user;
5) user 컬럼이 비어있는 계정의 삭제, 리눅스용 MySQL은 존재하지 않음.
. 아무 계정을 입력하지 않아도 로그인되는 기능을 제거합니다.
mysql> DELETE FROM user WHERE user='';
mysql> SELECT host, user, password FROM user;
6) root 계정의 비밀번호를 전부 암호화해서 '1234'로 변경합니다.
UPDATE user SET password=PASSWORD('1234') WHERE user='root';
SELECT host, user, password FROM user;
7) 권한 및 계정 정보를 서버에 재적용합니다.
mysql> FLUSH PRIVILEGES;
8) Mysql Client 서버 접속 종료
mysql> exit
9) 비밀번호 지정후의 로그인
-u: 로그인 계정 지정
-p: 패스워드를 입력받는 계정임, 패스워드가 설정되 있으면 명시함.
mysql: 기본 데이터 베이스 지정, use mysql 명령을 사용할 필요 없음
* mysqld.exe 를 먼저 실행하여 서버를 작동 한 후 아래의 명령어를
실행합니다.
① 접속 방법 1: 설치 후 최초 접속시 사용
C:/작업 기준 풀더/mysql56/bin> mysql -u root
② 접속 방법 2: 패스워드가 있는 계정 사용시
C:/작업 기준 풀더/mysql56/bin> mysql -u root -p
③ 접속 방법 3: 패스워드를 자동으로 지정한 경우
C:/작업 기준 풀더/mysql56/bin> mysql -u root -p1234
④ 접속 방법 4: 패스워드와 데이터베이스를 자동으로 연결한 경우
C:/작업 기준 풀더/mysql56/bin> mysql -u root -p1234 mysql
[03] 데이터베이스 생성
- 데이터를 저장하는 가장 큰 단위이며 하나의 프로젝트와 매핑됨.
- 테이블, 계정의 집합으로 구성되어 있으며 많은 데이터 저장가능.
(View, Stored Procedure, 기타 관련 객체등으로 구성)
- 데이터베이스의 자료를 조작하기위해 SQL을 사용하는데 SQL은
대소문자 구분 없음.
- 데이터베이스 및 계정 생성은 관리자 기능임으로 관리자 권한을
가지고 있는 root등을 이용하여 작업해야함.
예)
- 회원(member), 게시판(bbs), 자료실(pds), 갤러리(gallery), IT news, 유머, 즐겨 찾기, 설문...
--> 개인 블로그(블로그 데이터베이스)
- 고객 관리, 급여, 인사 관리, 자재 관리, 재고 관리, 입출고관리, 판매 관리, 예약, 배송, 영업..
--> 시스템 통합(기업 정보 시스템 데이터베이스)
[참고]
my.ini 파일에서 문자셋(utf8, euckr)등의 변경은 데이터베이스
생성전에 이루어져야 적용이 됨으로 MySQL 설치 후 바로 설정을 합니다.
1. 데이터베이스 생성
1) 데이터베이스 생성
mysql> CREATE DATABASE web;
mysql> CREATE DATABASE homepage;
mysql> CREATE DATABASE python;
2) 데이터베이스 목록 보기
mysql> SHOW DATABASES;
3) 데이터베이스 삭제
mysql> DROP DATABASE homepage;
mysql> DROP DATABASE web;
mysql> SHOW DATABASES;
+-----------------------+
| Database |
+-----------------------+
| information_schema |
| python |
| mysql |
| performance_schema |
| test |
+-----------------------+
2. 설정된 계정으로의 로그인
C:
CD/
CD 홈 폴더/mysql56/bin
mysql -u root -p1234 python
[04] 개발자 계정의 생성
▷ /api/mysql.sql
- 접근 거부시 DOS Consol에서 설정합니다.
-----------------------------------------------------------------------------------
* Root 계정의 원격 접속 설정
GRANT ALL PRIVILEGES ON *.* TO root IDENTIFIED BY '1234';
FLUSH PRIVILEGES;
* 데이터베이스 생성: python + IP 끝자리 숫자
CREATE DATABASE python100;
1) MySQL이 설치된 컴퓨터에서 localhost(현재 컴퓨터의 IP를 대신하는 별명)로
접근 가능하게 계정을 생성하여 지정
GRANT ALL PRIVILEGES ON python100.* TO python100@LOCALHOST IDENTIFIED BY '1234';
-------- -------- ----
DB명 계정명 패스워드
2) MySQL이 설치된 컴퓨터에서 127.0.0.1로 접근 가능하게 계정을 생성하여 지정
GRANT ALL PRIVILEGES ON python100.* TO python100@127.0.0.1 IDENTIFIED BY '1234';
-------- -------- ----
DB명 계정명 패스워드
3) MySQL이 설치되지 않은 외부(다른 곳에 설치된 컴퓨터)에서 python1가 접근
가능하게 계정을 생성하여 권한 지정
GRANT ALL PRIVILEGES ON python100.* TO python100 IDENTIFIED BY '1234';
-------- -------- ----
DB명 계정명 패스워드
4) 권한 및 계정 정보를 서버에 재적용합니다.
FLUSH PRIVILEGES;
-----------------------------------------------------------------------------------
▷ /api/python1.sql
-----------------------------------------------------------------------------------
DROP TABLE subway;
CREATE TABLE subway(
subwayno INT NOT NULL AUTO_INCREMENT, -- 처리 번호
loading_date VARCHAR(8) NOT NULL, -- 조회 날짜
line_num VARCHAR(20) NOT NULL, -- 호선
subNameItem VARCHAR(20) NOT NULL, -- 역이름
ride_pasgr_num INT DEFAULT 0 NOT NULL, -- 승차인원
alight_pasgr_num INT DEFAULT 0 NOT NULL, -- 하차인원
PRIMARY KEY (subwayno)
);
INSERT INTO subway(loading_date, line_num, subNameItem, ride_pasgr_num, alight_pasgr_num)
VALUES('20170423', '경부선', '신도림', 1000, 2000);
INSERT INTO subway(loading_date, line_num, subNameItem, ride_pasgr_num, alight_pasgr_num)
VALUES('20170423', '경부선', '영등포', 2000, 2100);
INSERT INTO subway(loading_date, line_num, subNameItem, ride_pasgr_num, alight_pasgr_num)
VALUES('20170423', '경부선', '노량진', 3000, 3200);
SELECT loading_date, line_num, subNameItem, ride_pasgr_num, alight_pasgr_num
FROM subway
ORDER BY loading_date DESC;
loading_date line_num subNameItem ride_pasgr_num alight_pasgr_num
------------ -------- ----------- -------------- ----------------
20170423 경부선 신도림 1000 2000
20170423 경부선 영등포 2000 2100
20170423 경부선 노량진 3000 3200
-----------------------------------------------------------------------------------
댓글