Error 2013
■ 에러 발생
데이터 이관 중 export시 발생
[root@localhost data]# mysqldump -u kim-p --routines --triggers --single-transaction kim --events > /dump/dump.sql
mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table `***` at row: 167770
■ 발생 이유
2013은 서버 연결이 끊어 졌음을 의미
1. 누군가 세션을 kill하여 발생할 수 있습니다.
2. 네트워크 문제로 인해 연결이 끊어져서 발생 할 수 있습니다.
3. 서버 내 충돌이 일어나 끊길 수 있습니다.
4. 연결이 유휴 상태 wait_timeout이며 종료될 수 있습니다.
3. 클라이언트가 데이터를 충분히 빨리 가져 오지 못하고 종료되어 net_wait_timeout될 수 있습니다.
■ 조치 방법
아래 네트워크 timeout을 재설정 한뒤 export 재시도
MySQL [(none)]> show variables like 'net_read_timeout%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| net_read_timeout | 30 |
+------------------+-------+
1 row in set (0.01 sec)
MySQL [(none)]> show variables like 'net_write_timeout%';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| net_write_timeout | 60 |
+-------------------+-------+
1 row in set (0.00 sec)
MySQL [(none)]> set global net_read_timeout = 10800;
MySQL [(none)]> set global net_write_timeout = 10800;
Error 2006
■ 에러 발생
데이터 이관 중 import를 하다가 중간에 아래와 같은 에러가 발생하고 중단되었다.
[root@localhost data]# mysql -uroot -p kim < dump.sql
ERROR 2006 (HY000) at line 19232: MySQL server has gone away
## 에러 로그
2022-10-17T23:58:04.143584Z 0 [Note] InnoDB: Buffer pool(s) load completed at 221018 8:58:04
2022-10-17T23:58:04.160959Z 0 [Note] Server hostname (bind-address): '*'; port: 3306
2022-10-17T23:58:04.162289Z 0 [Note] IPv6 is available.
2022-10-17T23:58:04.162317Z 0 [Note] - '::' resolves to '::';
2022-10-17T23:58:04.162366Z 0 [Note] Server socket created on IP: '::'.
2022-10-17T23:58:04.175732Z 0 [Note] Event Scheduler: Loaded 0 events
2022-10-17T23:58:04.175840Z 0 [Note] /mysql/bin/mysqld: ready for connections.
Version: '5.7.34' socket: '/tmp/mysql.sock' port: 3306 MySQL Community Server (GPL)
2022-10-18T00:13:56.590061Z 4 [Note] Aborted connection 4 to db: 'kim' user: 'root' host: 'localhost' (Got a packet bigger than 'max_allowed_packet' bytes)
■ 발생 이유
1. 서버 연결이 끊어졌거나 실행중에 서버가 죽었을 때 등 서버와의 연결에 문제가 생겼을 때 발생합니다.
2. 부적절하거나 너무 큰 쿼리를 보냈을 때. 이 경우 데이터베이스는 뭔가가 잘못됐다고 판단하고 연결을 끊습니다.
3. 이전 연결 세션에 영향을 받은 경우 끊길 수 있습니다.
■ 조치 방법
max_allowed_packet 파라미터를 재설정하여 쿼리 제한을 증가시켜줍니다.
설정된 용량보다 더 큰 패킷을 받으면 위의 에러가 발생합니다.
패킷이란 mysql서버에 보내는 sql문의 단위입니다.
## 기존 설정 (기본값인 4MB)
mysql> show variables like 'max_allowed_packet';
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+
1 row in set (0.00 sec)
## MySQL 5.7 서버의 최대 패킷 용량인 1GB로 설정
mysql> set global max_allowed_packet=1073741824;
Query OK, 0 rows affected (0.00 sec)
## Import 재시작
[root@localhost data]# mysql -uroot -p kim < dump.sql
'DataBase Admin > Trouble shooting' 카테고리의 다른 글
[MySQL - 임시테이블(tmpdir) FULL 이슈] (0) | 2022.10.18 |
---|---|
[Oracle - AL32UTF8 한글 깨짐 현상] (0) | 2022.07.15 |
[Oracle - startup error] ORA-01565,ORA-27037 (0) | 2022.03.10 |
[Oracle - ORA-12520] tns-15220 error (0) | 2022.03.10 |
[Oracle - Password 에러] ORA-20001 , ORA-65096 (0) | 2022.02.26 |