사용자 도구

사이트 도구


database:mysql:config

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
다음 판 양쪽 다음 판
database:mysql:config [2013/04/21 18:33]
kwon37xi
database:mysql:config [2022/12/17 15:49]
kwon37xi [Connection 갯수 정리]
줄 7: 줄 7:
   * ''~/.my.cnf''   * ''~/.my.cnf''
   * Replication을 사용하지 않을 경우 bin log는 무조건 꺼야 한다. 성능을 저하시키고, 디스크 공간을 차지한다. 아니면 최소한 bin 로그 크기/기간 제약을 걸어야 한다.   * Replication을 사용하지 않을 경우 bin log는 무조건 꺼야 한다. 성능을 저하시키고, 디스크 공간을 차지한다. 아니면 최소한 bin 로그 크기/기간 제약을 걸어야 한다.
-    * [[http://faq.hostway.co.kr/Linux_DB/1306|Linux DB - mysql bin log 관리하기]] +    * [[http://faq.hostway.co.kr/Linux_DB/1306|Linux DB - mysql bin log 관리하기]]<code> 
-    * [[http://mindspill.net/computing/linux-notes/disable-mysql-binary-logging/|Disable MySQL binary logging]]+# bin log 크기 제한. 
 +log-bin=/home/mysql_log/bin_log/bin # 빈로그 저장 설정 및 저장할 디렉토리 지정 
 +binlog_cache_size = 2M # binlog cache 사이즈 
 +max_binlog_size = 50M # bin로그 최대 파일 사이즈 
 +expire_logs_days = 10 # 보관기간 
 +</code> 
 +    * [[http://mindspill.net/computing/linux-notes/disable-mysql-binary-logging/|Disable MySQL binary logging]]<code> 
 +# bin log 삭제 
 +#log-bin 
 +... 
 +#expire_logs_days = 10 
 +</code> 
 +    *  실제 bin log 파일은 ''*-bin.00000숫자'' 파일들과 ''.index'' 확장자의 파일을 백업하고 삭제하면 된다.
 ===== charset ===== ===== charset =====
   * [[database:mysql:charset|MySQL charset encoding]]   * [[database:mysql:charset|MySQL charset encoding]]
줄 19: 줄 31:
 </code> </code>
  
 +MySQL Client는 ''protocol=tcp'' 옵션이 없으면 항상 ''/var/run/mysql/mysqld.sock'' 파일을 통해서만 접속한다. 이 경우에 ''%%--%%port=anotherport'' 옵션을 아무리 줘도 무시한다. 명령행에서 ''--protocol=tcp'' 옵션을 줘야한다.
 ===== Connection 갯수 정리 ===== ===== Connection 갯수 정리 =====
   * ''/etc/my.cnf''<code>   * ''/etc/my.cnf''<code>
 +[mysqld]
 max_connections = 250 max_connections = 250
 </code> </code>
줄 26: 줄 40:
 show variables like 'max_connections'; show variables like 'max_connections';
 </code> </code>
 +
 +===== table 이름 대소문자 처리 =====
 +  * table name uppercase / lowercase
 +  * [[https://dev.mysql.com/doc/refman/8.0/en/identifier-case-sensitivity.html|MySQL :: MySQL 8.0 Reference Manual :: 9.2.3 Identifier Case Sensitivity]]
 +  * 아래 설정은 되도록 안하는게 좋긴 하지만, 내 코드가 아닌 남의코드(예: [[springframework:batch|Spring Framework Batch]])에서 대문자로 테이블명을 조회하는데, DB에는 소문자로 테이블이 생성돼 있는 경우등에 대비해 필요할 수도 있다.
 +<code>
 +[mysqld]
 +lower_case_table_names=1
 +</code>
 +  * ''0'': 
  
 ===== Client Prompt ===== ===== Client Prompt =====
줄 32: 줄 56:
 [mysql] [mysql]
 prompt=\u@\h:\d\_\R:\m:\\s>\_ prompt=\u@\h:\d\_\R:\m:\\s>\_
 +</code>
 +
 +===== Can't connect to MySQL server on 'hostname' (111) =====
 +  * [[http://forums.mysql.com/read.php?11,6916,184947|Re: Error 2003 (HY000): Can't connect to MySQL server on...]]
 +  * '' ERROR 2003 (HY000): Can't connect to MySQL server on 'hostname' (111)'' 와 같은 오류가 발생했다.
 +  * 이 이유는 ''my.cnf'' 파일에 ''bind-address = 127.0.0.1'' 항목이 있기 때문이다. 이 항목이 있으면 ''127.0.0.1''에서 들어오는 요청만 허용한다.
 +  * 해당 줄을 주석 처리하거나 ''bind-address = 0.0.0.0'' 으로 변경하고 다시 시작한다.
 +
 +===== com.mysql.jdbc.PacketTooBigException: Packet for query is too large (x > y). You can change this value on the server by setting the max_allowed_packet' variable =====
 +MySQL 클라이언트가 MySQL 서버에 전송한 쿼리의 크기가 지나치게 클 때 발생하는 오류.
 +한 번에 많은 쿼리를 전송해야 할 경우 ''max_allowed_packet=16M'' 형태로 값을 지정해준다.
 +
 +===== 모든 쿼리 로그 찍기 Query Log =====
 +<code>
 +[mysqld]
 +general_log_file        = /var/log/mysql/mysql.log
 +general_log             = 1
 +slow_query_log          = 1
 +</code>
 +
 +  * ''log-output=FILE|TABLE|NONE'' : File은 파일명을 지정하고, TABLE일 경우에는 ''mysql.general_log'', ''mysql.slow_log''로 쿼리를 저장한다.
 +  * ''general_log''에서 로그 확인<code sql>
 +select * from general_log order by event_time desc limit 100;
 </code> </code>
database/mysql/config.txt · 마지막으로 수정됨: 2022/12/17 15:56 저자 kwon37xi