본문 바로가기
개발 공부 기록하기/- Database

[MySQL] 우분투 설정 및 HeidiSQL연동

by soulduse 2016. 4. 11.
반응형

Spring과 DB연동을 해보기위해 DB는 Mysql을 사용하게 되었다.

MySQL에서 제공하는 workbench를 사용할까 했지만, 이미 회사 컴퓨터에 HeidiSQL 툴이 설치되어있었기 때문에 그리고,

검색 해본결과 여러사람들이 (workbench보다 사용하기가 편하다 라는 주관적인 글들도 많이 있었다.) 선호하였기에 사용하기로 마음먹게 되었다.


MySQL같은 경우에 윈도우에서 바로 깔아서 사용할까도 해봤지만 리눅스와 친해질겸 

가상머신에서 우분투 14.04를 설치하고 MySQL를 설치하여 외부 IP연결 가능하도록 설정하고, 

HeidiSQL에서 연결해서 사용하였다.


아래는 구글링 하면서 찾은 자료들인데 업무시작 시간이 다되어가는 관계로 추 후 정리해서 다시 올릴 예정이다.





  • Mysql 검색
    • #apt-cache search mysql-server
  • Mysql 설치 
    • #apt-get install mysql-server-5.5 
    • #apt-get install mysql-client-5.5
      -사실 클라이언트는 필요없다. 근데 우선 나는 설치함.
  • Mysql 외부 접속 권한 부여
    -설치할 당시에는 localhost만 접속할 수 있게 설정되어 있다.
    • mysql database에 로그인 
      • #mysql -u root -p
        -우선 root 로 로그인한다. 패스워드는 설치할때 설정한 패스워드 입력
      • #mysql -h 우분투ip -P 3306 -u root -p
    • default db 변경 
      • use mysql;
    • 권한 부여 
      • GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '패스워드 입력';
        - mysql에서는 sql 문을 사용할수 있다
        - root@모든 아이피로 접속된 사용자에게 모든 권한을 준다는 뜻
      • flush privileges;
        - 권한 즉시 적용
      • .my.cnf 설정 파일 변경 
        • #sudo vi /etc/mysql/my.cnf  에 들어가서 
          • bind-address = 127.0.0.1 이 부분 주석
      • mysql server 재시작 
        • #sudo /etc/init.d/mysql restart  
  • mysql db 생성
    mysql 에서는 sql문 사용이 가능하다
    • mysql 접속 : #mysql -u root -p 
    • 현재 database 보기: show databases; 
    • database 만들기 : create database 데이터베이스명; 
    • database 사용 : use 데이터베이스명'
    • table 만들기 : create table 테이블명 (
      칼럼명 데이타형식 ~~~~
      );
      원래 mysql create 문과 같다.
    • 예를들면, 나는 TODO라는 이름의 테이블을 만들때,

      CREATE TABLE TODO (
      TODO_ID int(11) NOT NULL AUTO_INCREMENT,
      CONTENT varchar(200) DEFAULT NULL,
      HASDONE varchar(10) DEFAULT NULL,
      DATE datetime DEFAULT NULL,
      PRIMARY KEY (TODO_ID)
      ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
------------------------------



MySql 외부 접속 가능하게 설정 하기

 

my.cnf와 mysql  user 권한을 살펴 봐야 한다.

 

■ mysql 설정 변경 하기

 

1. vi 사용해서 my.cnf를 수정한다.


  ▶ 우분투에서


sudo vi /etc/mysql/my.cnf

 

  ▶ centos에서


vi /etc/my.cnf



2.  bind-address  = 127.0.0.1 을 주석처리한다. 

 

- 아래 부분을 찾아서, #을 맨 앞에 붙인다.

 

bind-address           = 127.0.0.1

 

 

- # 은 주석처리를 의미한다.

 

#bind-address           = 127.0.0.1


※ bind-address 는 127.0.0.1 에서만 접속을 허용한다는 의미임.

 

방화벽 해제, 사용자 권한 설정의 접속 가능 IP를 수정 했는데도 외부에서 접속이 안된다면 my.cnf을 수정해야 한다.

 

 

3. mysql을 다시 시작해 준다.

 

sudo /etc/init.d/mysql restart

 

 

■ MySQL 사용자 원격 접속 허용하기

 

- mysql 은 사용자에 대해서 원격지에 대한 접속 권한을 부여 해야 원격지에서 접근이 가능하다.

 

▷ test 데이타베이스에 sysop 계정이 111.222.333.444 IP 에서 접속 가능하게 설정한다.

 

GRANT all privileges on test.* to 'sysop'@'111.222.333.444' identified by '비번' ;

 

▷ test 데이타베이스에 sysop 계정이 모든  IP 에서 접속 가능하게 설정한다.

 

GRANT all privileges on test.* to 'sysop'@'%' identified by '비번' ;


※ 방화벽 해제  - centos에서 


■ 방화벽에 포트 추가하기


vi /etc/sysconfig/iptables


-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT


  iptables 재시작


/etc/init.d/iptables restart



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


참조



반응형