메뉴 건너뛰기

조회 수 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. No Image 12Apr
    by
    2017/04/12 Views 5392 

    [MySQL] 백업 및 복구

  2. No Image 25Nov
    by
    2020/11/25 Views 773 

    [mysql,mariaDB] 컬럼 암호화, 복호화

  3. UPDATE ~ CASE 문을 사용한 조건별 업데이트

  4. No Image 21Nov
    by
    2017/11/21 Views 3918 

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

  5. SQL 고급

  6. No Image 26Mar
    by
    2021/03/26 Views 768 

    order by field 와 union, 원하는 대로 정렬 하기

  7. No Image 26Mar
    by
    2021/03/26 Views 125 

    no exists, not in 을 이용한 조건에 만족하지 않는 것들 구하기, 둘의 차이점

  8. No Image 12Apr
    by
    2017/04/12 Views 5105 

    MySQL의 alter table 명령어 모음

  9. No Image 12Apr
    by
    2017/04/12 Views 5621 

    MySQL에서 원격 IP 접속 허용하기

  10. No Image 12Apr
    by
    2017/04/12 Views 5885 

    MySQL에서 사용자 권한 주기 (grant 명령어)

  11. No Image 24Jul
    by
    2018/07/24 Views 3864 

    MySQL〃오라클의 nextval을 MySQL에서 사용하기

  12. No Image 26Mar
    by
    2021/03/26 Views 201 

    mysqlbinlog (mysql 백업, 로그남기기)

  13. No Image 07Aug
    by
    2015/08/07 Views 7384 

    MySQL/MariaDB 백업 & 복원 - mysqldump

  14. No Image 12Jan
    by
    2023/01/12 Views 117 

    mysql-bin(binary log)파일 정리 및 삭제

  15. No Image 18Jul
    by
    2018/07/18 Views 1672 

    mysql-bin 로그를 SQL 문으로 변환한는 방법

  16. mysql(union,join)

  17. mysql(exists, not exists)

  18. MYSQL 프로시져 PROCEDURE

  19. No Image 26Mar
    by 조쉬
    2021/03/26 Views 5078 

    mysql 포트 바꾸기, 외부에서 접속하기

  20. MySQL 파티션 개요

Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved