init_connect = ‘set autocommit=0’ 가 동작하지 않는다
[mysqld] 
init_connect=’SET AUTOCOMMIT=0′ 
욜케 등록은 했지만 동작하지 않는다.
왜 그럴까.. 버그인가 싶다.
[14:43:21]root@localhost:mysql.sock, (none)> status;
————–
mysql  Ver 14.12 Distrib 5.0.22, for redhat-linux-gnu (x86_64) using readline 5.0
Connection id:          65
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ”
Using delimiter:        ;
Server version:         5.0.22-log
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
Uptime:                 3 min 52 sec
Threads: 1  Questions: 1374  Slow queries: 0  Opens: 0  Flush tables: 1  Open tables: 41  Queries per second avg: 5.922
————–
[14:43:22]root@localhost:mysql.sock, (none)> select @@autocommit;
+————–+
| @@autocommit |
+————–+
|            1 | 
+————–+
1 row in set (0.00 sec)
[14:43:28]root@localhost:mysql.sock, (none)>
init_connect
연결 되어 있는 각 클라이언트를 위해 서버가 실행하는 스트링. 이 스트링은 한 개 또는 그 이상의 SQL 명령문으로 구성된다. 다중 명령문을 지정하기 위해서는, 각각을 세미콜론으로 구분한다. 예를 들면, 각 클라이언트는 디폴트로 오토커미트 (autocommit) 모드를 활성화 해서 사용한다. 오토커미트를 디폴트로 비활성화 시킬 수 있는 글로벌 시스템 변수는 없으나,
init_connect를 사용하면 동일한 효과를 얻을 수가 있다:SET GLOBAL init_connect=’SET AUTOCOMMIT=0′;
이 변수를 명령어 라인 또는 옵션 파일에서 설정할 수 있다. 옵션 파일에 안에서 이 변수를 설정하기 위해서는 다음의 라인을 추가한다:
[mysqld]init_connect=’SET AUTOCOMMIT=0′
SUPER권한을 가지고 있는 사용자는init_connect컨텐츠를 실행할 수 없다는 점을 알아두기 바란다. 이것은init_connect에 대한 오류 값으로 인해 모든 클라이언트가 연결을 할 수 없는 경우가 발생하지 않도록 하기 위한 것이다. 예를 들면, 이 변수 값에 신텍스 에러가 있는 명령문이 들어 있을 수도 있는데, 이런 일이 발생하면 클라이언트가 연결을 할 수 없게 된다.init_connect를SUPER권한을 가지고 있는 사용자용으로 실행하지 않으면 연결을 열고init_connect값을 고치는 것이 가능해진다.
[14:48:10,145][email protected]:/home/zeroidle/public_html/blog# mysql -uzeroidle -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 147 to server version: 5.0.22-log
Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer.
[14:48:16]zeroidle@localhost:mysql.sock, (none)> select @@autocommit;
+————–+
| @@autocommit |
+————–+
|            0 | 
+————–+
1 row in set (0.00 sec)
[14:48:21]zeroidle@localhost:mysql.sock, (none)> quit
Bye
유저아이디로 들어가니 잘된다.
mysql_root가 init_connect를 잘못설정했을경우 접속안되는문제를 방지하기 위함이라는데
어차피 shell_root가 있고 my.cnf를 수정할 수 있는데
왜 막아놓았는지 미쿡오빠들의 생각은 이해할수가 없당.

