티스토리 뷰



MySQL 데이터 베이스 에러 해결법


어느날 테이블을 조회하려고 보니 아래와 같은 에러가 뜨면서 조회가 되지 않았다.


mysql> SELECT * FROM module_xml ;

ERROR 145 (HY000): Table './asterisk/module_xml' is marked as crashed and should be repaired


딱봐도 테이블이 뭔가 고장난것 같다.


아래 명령어로 체크해보자

mysql> check table module_xml;

+---------------------+-------+----------+-------------------------------------------------------+

| Table               | Op    | Msg_type | Msg_text                                              |

+---------------------+-------+----------+-------------------------------------------------------+

| asterisk.module_xml | check | warning  | Table is marked as crashed                            | 

| asterisk.module_xml | check | warning  | 1 client is using or hasn't closed the table properly | 

| asterisk.module_xml | check | error    | Record at pos: 132 is not remove-marked               | 

| asterisk.module_xml | check | error    | record delete-link-chain corrupted                    | 

| asterisk.module_xml | check | error    | Corrupt                                               | 

+---------------------+-------+----------+-------------------------------------------------------+

5 rows in set (0.00 sec)



뭔가 에러와 워닝이 보인다.



 정상적인 테이블은 어떻게 뜰까?

mysql>check table sip;

+--------------+-------+----------+----------+

| Table        | Op    | Msg_type | Msg_text |

+--------------+-------+----------+----------+

| asterisk.sip | check | status   | OK       | 

+--------------+-------+----------+----------+

1 row in set (0.02 sec)


위처럼, OK 라고 뜬다.



해결책은 뭘까? 

아래 명령어를 날려보자.


mysql> repair table module_xml;

+---------------------+--------+----------+-------------------------------------+

| Table               | Op     | Msg_type | Msg_text                            |

+---------------------+--------+----------+-------------------------------------+

| asterisk.module_xml | repair | warning  | Number of rows changed from 10 to 4 | 

| asterisk.module_xml | repair | status   | OK                                  | 

+---------------------+--------+----------+-------------------------------------+

2 rows in set (0.03 sec)



뭔가 출력되는데 OK 라고 함. 정상처럼 보인다.

다시 check table 을 해보자


mysql> check table module_xml;

+---------------------+-------+----------+----------+

| Table               | Op    | Msg_type | Msg_text |

+---------------------+-------+----------+----------+

| asterisk.module_xml | check | status   | OK       | 

+---------------------+-------+----------+----------+

1 row in set (0.00 sec)



개 뿌듯....




공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함