흐르는 시간의 블로그...

오랜만에 수정하는 작업이 하나 있었다.

해당 서버의 mysql의 계정 설정이 하나 빠진 것이 있어 공인IP로 접속이 되지 않았다.

관련해서 이런저런 얘기를 팀원과 하다가 하나 배운 것이 있다.


바로 protocol 옵션에 대한 것이다. 실제 사용 DB는 mariadb 5.x.x 버전이다.

mysql의 메뉴얼 페이지를 보자.

4.2.2 Connecting to the MySQL Server

클릭을 하면 바로 protocol 쪽으로 이동한다.

네개의 옵션이 있다. 정확하지는 않지만 아랫쪽으로 갈수록 빠를듯 하다.

PIPE와 MEMORY는 윈도우즈에서만 사용가능하고

SOCKET은 Unix Only이다.


내용에 보듯이 unix(linux)에서 localhost로 접속하게 되면 기본적으로 Unix socket file을 사용한다는 내용이다.

당연히 TCP 보다 빠르다.

127.0.0.1로 접속하면 TCP로 접속하지만 localhost로 접속하면 unix socket으로 접속한다.


간단하지만 db의 local machine에서 작업을 해야한다면 염두에 둬야할 내용이다.


127.0.0.1로 접속 하는 경우

MariaDB [(none)]> \s
--------------
mysql  Ver 15.1 Distrib 5.5.34-MariaDB, for Linux (x86_64) using readline 5.1

Connection id:          115593510
Current database:
Current user:           finepoint@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server:                 MariaDB
Server version:         5.5.36-MariaDB-log MariaDB Server
Protocol version:       10
Connection:             127.0.0.1 via TCP/IP
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8


localhost로 접속 하는 경우

MariaDB [(none)]> \s
--------------
mysql  Ver 15.1 Distrib 5.5.34-MariaDB, for Linux (x86_64) using readline 5.1

Connection id:          115586990
Current database:
Current user:           finepoint@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server:                 MariaDB
Server version:         5.5.36-MariaDB-log MariaDB Server
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /var/lib/mysql/mysql.sock