메뉴 건너뛰기

조회 수 5078 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

우선 필자의 환경은 centos 5.5라는걸 밝혀둔다.

mysql 포트 변경법

1. my.cnf 열어서 포트 변경(보통 /etc/my.cnf에 위치한다)

 
[mysqld] port=8888


보통 mysql을 기본설치 하였다면(centos 패키지 관리자로 설치한걸 뜻함) 기본포트는 3306으로 되어 있을것이고, my.cnf파일을 열어보아도 port=3306이라는 문구가 보통은 보이지 않을것이다. 안보일때는 위의 port=8888(자신이원하는포트)를 추가하면 되는것이다.

2. mysql 재시작
centos 기준으로 터미널을 열고 # service mysqld restart 해주면 된다. 환경이 다르더라도 mysqld 파일을 찾아서 재시작해주면 될것이다.

3. iptables에서 자신이 추가한 포트 열기
이부분은 방화벽 설정을 해제한 유저라면 사용할필요가 없지만.. 그렇게 사용하는 유저는 없을거라고 본다..
iptables 파일을 열고

 
-A INPUT -m state --state NEW -m udp -p udp --dport 8888 -j ACCEPT

이런식으로 해당포트를 허용해주면 된다.

4. iptables 재시작
터미널을 열고 # service iptables restart 해주면 된다.

참고로 위의 3,4번은 x윈도우를 사용하는 유저라면
시스템 -> 관리 -> 보안수준 및 방화벽 -> 해당포트 추가
라는 식으로 해도 상관은 없다.

위의 포트설정은 mysql접속을 내부 서버에서 했을때는 딱히 해줄 필요가 없다.
하지만 외부에서 mysql을 접속해서 사용하게 하기 위해서 설정 해놓는 것이다.
3306포트가 기본적인 설정 포트이기 때문에 보안상 다른 포트로 바꾼뒤 사용하는 경우가 종종 있다.

php에서 해당 mysql 접속은 mysql_connect() 함수를 이용하고,
해당 db 접속은 mysql_select_db()을 이용한다.
우선 예제부터 보자.

$con = mysql_connect('localhost', 'mysql아이디', 'mysql비밀번호');
//$con = mysql_connect('해당서버아이피:포트', 'mysql아이디', 'mysql비밀번호');
if (!$con) echo 'mysql접속실패 : '.mysql_error(); // 접속실패시 에러출력해주는것
else echo 'mysql접속완료';

$db=mysql_select_db("test", $con);
if(!$db) echo 'db연결실패 : '.mysql_error(); // 연결실패시 에러출력해주는것
else echo "db연결완료";

mysql_close($con); //접속종료

위의 예제중 1번째 줄의 접속방식이 보통의 해당서버에서 해당서버의 msyql에 접속할때 쓰는 방식이고 2번째 줄의 방식이 다른서버에서 해당 mysql서버로 접속할때 쓰는 방식이다.
필자가 위해서 한 예제에 따르면
mysql_connect('123.12.123.12:8888', 'mysql아이디', 'mysql비밀번호')
의 식으로 포트를 넣어주면 되겠다.

그리고 해당 db 접속시에 해당 db는 있는데 접속이 되질 않는다면, 보통 2가지 이유 때문에 안되는 것이다.
1. 접속한 아이디가 해당 db에 대한 권한이 없다.
2. 접속한 db의 host 설정이 안되어 있다.

이경우에는 root권한으로 접속해서 mysql이라는 db의 db라는 테이블에서
insert into db values('%','해당db','사용자', 'y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y');
라는식으로 추가를 해주면 된다.

그리고 grant가 아닌 insert나 update를 이용한 권한 부여는 mysql을 재시작하거나,
flush privileges 명령어로 권한설정을 다시 불러와주어야 적용 이 제대로 된다는걸 알아두기 바란다.

간단히 설명하자면...
%는 모든 원격접속을 허용한다는것이다. 보통은 localhost로 되어 있는 녀석들이 많을것이다. 특정 ip를 적어주면 해당 ip만 접속을 허용하게 된다.
해당db에는 설정을 해줄 db를 적으면 되고, 사용자에는 접속한 사용자ID를 적으면 된다.
나머지 'y'로 되어 있는것들은 접근후에 select나 insert등등의 허용을 설정하는 Select_priv 와 같은 항목들이다. 허용하고 싶은 항목은 'y'로 허용하지 않을 항목은 'n'로 해놓으면된다.


  1. [MySQL] 백업 및 복구

    Date2017.04.12 Views5392
    Read More
  2. [mysql,mariaDB] 컬럼 암호화, 복호화

    Date2020.11.25 Views773
    Read More
  3. UPDATE ~ CASE 문을 사용한 조건별 업데이트

    Date2020.07.28 Views1396
    Read More
  4. Union 사용법. 여러 테이블의 같은 값을 한번 쿼리로 추출하기

    Date2017.11.21 Views3918
    Read More
  5. SQL 고급

    Date2017.12.22 Views6035
    Read More
  6. order by field 와 union, 원하는 대로 정렬 하기

    Date2021.03.26 Views768
    Read More
  7. no exists, not in 을 이용한 조건에 만족하지 않는 것들 구하기, 둘의 차이점

    Date2021.03.26 Views125
    Read More
  8. MySQL의 alter table 명령어 모음

    Date2017.04.12 Views5105
    Read More
  9. MySQL에서 원격 IP 접속 허용하기

    Date2017.04.12 Views5621
    Read More
  10. MySQL에서 사용자 권한 주기 (grant 명령어)

    Date2017.04.12 Views5885
    Read More
  11. MySQL〃오라클의 nextval을 MySQL에서 사용하기

    Date2018.07.24 Views3864
    Read More
  12. mysqlbinlog (mysql 백업, 로그남기기)

    Date2021.03.26 Views201
    Read More
  13. MySQL/MariaDB 백업 & 복원 - mysqldump

    Date2015.08.07 Views7384
    Read More
  14. mysql-bin(binary log)파일 정리 및 삭제

    Date2023.01.12 Views117
    Read More
  15. mysql-bin 로그를 SQL 문으로 변환한는 방법

    Date2018.07.18 Views1672
    Read More
  16. mysql(union,join)

    Date2017.11.16 Views3837
    Read More
  17. mysql(exists, not exists)

    Date2017.11.16 Views4090
    Read More
  18. MYSQL 프로시져 PROCEDURE

    Date2021.03.27 Views197
    Read More
  19. mysql 포트 바꾸기, 외부에서 접속하기

    Date2021.03.26 Views5078
    Read More
  20. MySQL 파티션 개요

    Date2017.12.22 Views4150
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved