'팁&테크/MySQL'에 해당되는 글 23건

  1. 2011.05.17 MySQL UTF-8 설정 시 my.cnf 추가 내용
  2. 2007.10.20 SELECT 값에 자동으로 순번 매기기
  3. 2007.06.29 MySQL 4.1이상에서 character-set을 euckr로 모두 맞추기
2011. 5. 17. 15:57

MySQL UTF-8 설정 시 my.cnf 추가 내용

[client]
default-character-set=utf8

[mysqld] 
collation-server=utf8_general_ci
init_connect=set collation_connection=utf8_general_ci
init_connect=set names utf8

해당 섹션에 내용을 추가할 것 
2007. 10. 20. 12:27

SELECT 값에 자동으로 순번 매기기

SQL :
SET @NUM := 0;
SELECT @NUM := @NUM + 1 AS SEQ, field FROM table

-> 결과
SEQ FIELD
1 field
2 field
3 field

PHP예제 :

<?php
mysql_query("SET @NUM := 0");
$result = mysql_query("SELECT @NUM := @NUM + 1 AS SEQ, field FROM table");
while($row=mysql_fetch_row($result)) {
  print_r($row);
}
?>

2007. 6. 29. 15:55

MySQL 4.1이상에서 character-set을 euckr로 모두 맞추기

이 자료는 database.sarang.net에서 이영진님께서 올린 자료입니다.

소스설치하지 않은 MySQL 4.1버전에서는(5.0포함)
아무리 default-character-set=euckr, 그리고 init connect = SET NAMES euckr 로 세팅해도 결국에
PHP에서 확인해보면 character set connection 부분과 character set results 부분이 Latin1로 설정되어 있는것을 확인할수 있습니다.
그렇게되면 결국에 모든 PHP스크립트에 set names euckr 쿼리를 날릴수밖에 없었는데요.
이제야 좀 해결이 된거 같습니다.
MySQL 데몬 시작할때 client-handshake를 무시하게 하면 되는것이었네요.
이렇게 데몬을 실행하시면 됩니다.
#mysqld_safe --default-character-set=euckr --skip-character-set-client-handshake &

데이터베이스를 시작하실때 --skip-character-set-client-handshake부분을 추가하셔서 실행하시던가, 아니면 /etc/init.d/mysql의 267라인쯤
$bindir/mysqld_safe --datadir=$datadir --pid-file=$server_pid_file >/def/null 2>&1 &
이 부분에 위의 옵션을 추가해주시면 됩니다.

테스트해본결과 텔넷으로도, MySQL-front에서도, PHPMyAdmin에서도 모든 환경이 euckr로 세팅된것을 확인할수 있었습니다.


윈도우용 Mysql 세팅은 이거네요.. 딴거 필요 없고 이거 한방이면 되네요..ㅋ
my.ini 에서

[mysqld]
character-set-client-handshake = FALSE