MySQL ERROR 2006 (HY000): MySQL server has gone away

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 해결방법1: CentOS 사례[ | ]

mysqld의 max_allowed_packet을 늘려주면 된다.

  • /etc/my.cnf 파일 내용 중 [mysqld]의 하단에 아래 내용을 추가
max_allowed_packet=4M
  • mysqld 재시작
[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 해결방법2: 시놀로지 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 재시작
$ sudo synoservicectl --restart pkgctl-MariaDB10

5 같이 보기[ | ]

6 참고[ | ]

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