[Python] 33. [MySQL] 서버 실행, 관리자 root계정 암호화, root 접속 설정, 계정 생성

2017. 8. 21. 13:49·빅데이터 프로그래밍/Python
728x90
반응형

[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

-----------------------------------------------------------------------------------
 

728x90
반응형

'빅데이터 프로그래밍 > Python' 카테고리의 다른 글

[Python] 35. [Scraping] Open API를 활용한 데이터 수집, MySQL 서버로 수집된 데이터의 저장  (0) 2017.08.21
[Python] 34. [MySQL] JDBC 드라이버설정, Eclipse Data Source Explorer의 MySQL 설정  (0) 2017.08.21
[Python] 32. [MySql] 데이터베이스 개론, MySQL 5.6 Potable(개발자 유형) 설치, 한글 깨짐, 처리, 보관, 수정, 삭제  (0) 2017.08.21
[Python] 31. [Scraping] Selenium 모듈을 이용한 폼과 로그인 인증 통과 테스트  (0) 2017.08.16
[Python] 30. [Scraping] XKCD.com 이미지 다운받기 -- CHECK CHECK CHECK CHECK CHECK  (0) 2017.08.16
'빅데이터 프로그래밍/Python' 카테고리의 다른 글
  • [Python] 35. [Scraping] Open API를 활용한 데이터 수집, MySQL 서버로 수집된 데이터의 저장
  • [Python] 34. [MySQL] JDBC 드라이버설정, Eclipse Data Source Explorer의 MySQL 설정
  • [Python] 32. [MySql] 데이터베이스 개론, MySQL 5.6 Potable(개발자 유형) 설치, 한글 깨짐, 처리, 보관, 수정, 삭제
  • [Python] 31. [Scraping] Selenium 모듈을 이용한 폼과 로그인 인증 통과 테스트
밍글링글링
밍글링글링
mingling - 밍글링, 밍글밍글링. 코드와 어우러지다. IT/ 프로그래밍/소스
    반응형
    250x250
  • 밍글링글링
    mingling
    밍글링글링
  • 전체
    오늘
    어제
    • 밍글링글링 (407) N
      • Flutter (2)
      • 일상생활 (8)
        • 리뷰 (1)
        • 생활정보 (4)
        • 맛집 (0)
        • 여행 (0)
        • 모든정보 (3)
      • JAVA (126)
        • 개념 (6)
        • 예제 (115)
        • Exception (2)
      • C (1)
        • C (1)
        • C++ (0)
        • C# (0)
      • JS (29)
        • JavaScript (18)
        • JQuery (5)
        • AJax (0)
        • NODE.JS (6)
        • Angular.JS 2.0 (0)
      • WEB (87)
        • HTML (6)
        • CSS (61)
        • JSP (20)
        • JSTL (0)
      • FrameWork (8)
        • Spring (8)
        • BootStrap (0)
        • MyBATIS (0)
        • JUnit (0)
      • 외부 라이브러리 (5)
      • 공유 소스 관리 (5)
        • Git (5)
        • SVN (0)
      • 빅데이터 프로그래밍 (37)
        • Python (37)
        • R Programming (0)
      • DB (7)
        • ORACLE (0)
        • MySql (6)
      • Development Tools (7)
        • StarUML (0)
        • eXERD (0)
        • Eclipse (4)
      • SKILL (6)
        • Migration (0)
        • Security (6)
      • MicroSoft (0)
        • Excel (0)
        • Word (0)
      • Android (0)
      • Server (21)
        • Ubuntu (5)
        • Linux (15)
      • IOS (0)
      • XML (0)
      • 미디어 (0)
      • 공지사항 (3)
      • NETWORK (1)
      • 게임 (4)
        • 피파 (1)
        • 리니지M (0)
        • 배틀그라운드 (1)
        • 듀랑고 (2)
      • 세상 이슈 (6)
      • 일렉트론 (0)
      • 대회 소식 (4)
      • 업무 (2)
      • Express, Vue (6)
      • docker (11)
      • svelte (3)
      • 블록체인 (1)
      • IT (10) N
      • Rust (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    spring java
    API 설계
    nginx ssl 설정
    lang rust
    자바 배열
    Java Array
    자바 생성자
    vue 설치
    vscode
    css float
    nginx ssl 적용
    리눅스 설치
    클론코딩
    AI 코딩 에이전트
    rust linux
    jsp include
    css block
    proxy pass
    자바 객체 지향
    nginx
    gitlab 설치
    SSL 인증서
    자바 for문
    Rust lang
    브라우저 자동화
    React Compiler
    css transition
    css perspective
    Extension Bisect
    에디터 팁
    svelte
    VS Code 팁
    css table
    vue cli
    css tb
    css list
    servlet class
    프런트엔드
    Node
    mysql db
    티스토리 자동화
    java casting
    자바 exception
    ssl 인증서 발급
    러스트
    docker
    자바 클래스
    ubuntu
    jsp parameter
    오류
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
밍글링글링
[Python] 33. [MySQL] 서버 실행, 관리자 root계정 암호화, root 접속 설정, 계정 생성
상단으로

티스토리툴바