"MySQL ERROR 2006 (HY000): MySQL server has gone away"의 두 판 사이의 차이

28번째 줄: 28번째 줄:
<source lang='properties'>
<source lang='properties'>
max_allowed_packet=4M
max_allowed_packet=4M
innodb_buffer_pool_size=4M
wait_timeout=3600
interactive_timeout=3600
</source>
</source>
*mysqld 재시작
*mysqld 재시작

2018년 10월 15일 (월) 22:57 판

ERROR 2006 (HY000): MySQL server has gone away

1 문제상황

MySQL 덤프 파일을 임포트하는 중 오류 발생

[root@newhost ~]# mysql mydb < db.sql -uroot -pP@ssw0rd
ERROR 2006 (HY000) at line 1916: MySQL server has gone away

2 원인

[root@newhost ~]# mysql -uroot -pP@ssw0rd -e "show variables like 'max_allowed_packet'"
+--------------------+---------+
| Variable_name      | Value   |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+
→ max_allowed_packet 이 1MB (기본값)로 되어 있음
→ 쿼리문 하나가 1MB를 넘기 때문에 처리불가 오류난 것
→ 쿼리문 하나(db.sql의 한행)에 딸린 텍스트 내용이 매우 많은 경우임

3 해결방법

mysqld의 max_allowed_packet을 늘려주면 된다.

  • /etc/my.cnf 파일 내용 중 [mysqld]의 하단에 아래 내용을 추가
( 시놀로지 DSM을 사용하는 경우 /volume번호/@appstore/MariaDB10/usr/local/mariadb10/etc/mysql/my.cnf )
max_allowed_packet=4M
innodb_buffer_pool_size=4M
wait_timeout=3600
interactive_timeout=3600
  • mysqld 재시작
( 시놀로지 DSM을 사용하는 경우 sudo synoservicectl --restart pkgctl-MariaDB10 )
[root@newhost ~]# service mysqld restart
Stopping mysqld:                                           [  OK  ]
Starting mysqld:                                           [  OK  ]
[root@newhost ~]# mysql -uroot -pP@ssw0rd -e "show variables like 'max_allowed_packet'"
+--------------------+---------+
| Variable_name      | Value   |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+
  • 임포트 재시도
[root@newhost ~]# mysql mydb < db.sql -uroot -pP@ssw0rd
[root@newhost ~]#
→ 잘 수행되었다.

4 같이 보기

5 참고

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}