aws lightsail mysql died - /opt/bitnami/mysql/scripts/ctl.sh : mysql  could not be started

갑자기 lightsail이 죽는 현상이 일어났고 인스턴스를 중지 후 시작을 눌러 재부팅해줬다.
그렇게 정상 작동되는 줄 알았는데 다음날 아침에 또 다시 죽어 있었고 이번에는 mysql이 아예 켜지지 않는 상황이 왔다.

sudo /opt/bitnami/ctlscript.sh status mysql

mysql 상태를 체크해 보았으나 mysql not running 이라고 나왔고 mysql을 가동 시키려 다음 코드를 실행했다.

sudo /opt/bitnami/ctlscript.sh start mysql

하지만 다음과 같이 노출되었다.

/opt/bitnami/mysql/scripts/ctl.sh : mysql  could not be started
Monitored mysql

아무리 mysql을 가동 시키려 해도 가동되지 않았다.
그래서 mysql 로그를 보기로 했다.

sudo vi /opt/bitnami/mysql/data/mysqld.log
2023-10-23T02:14:40.169392Z 0 [System] [MY-010910] [Server] /opt/bitnami/mysql/bin/mysqld.bin: Shutdown complete (mysqld 8.0.18)  MySQL Community Server - GPL.
2023-10-23T02:17:06.827651Z 0 [Warning] [MY-011068] [Server] The syntax 'expire-logs-days' is deprecated and will be removed in a future release. Please use binlog_expire_logs_seconds instead.
2023-10-23T02:17:06.835538Z 0 [System] [MY-010116] [Server] /opt/bitnami/mysql/bin/mysqld.bin (mysqld 8.0.18) starting as process 1890
2023-10-23T02:17:09.780209Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2023-10-23T02:17:09.912816Z 0 [System] [MY-010931] [Server] /opt/bitnami/mysql/bin/mysqld.bin: ready for connections. Version: '8.0.18'  socket: '/opt/bitnami/mysql/tmp/mysql.sock'  port: 3306  MySQL Community Server - GPL.
2023-10-23T02:17:09.987548Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/tmp/mysqlx.sock' bind-address: '::' port: 33060
2023-10-23T08:45:52.032956Z 16623 [ERROR] [MY-010211] [Server] Got error 1 when reading table './bitnami_wordpress/wp_comments'
2023-10-23T08:45:52.042348Z 16623 [ERROR] [MY-010211] [Server] Got error 1 when reading table './bitnami_wordpress/wp_comments'
2023-10-23T08:52:03.810263Z 16680 [ERROR] [MY-010211] [Server] Got error 1 when reading table './kwd_wordpress/wp_comments'
2023-10-23T08:52:03.814219Z 16680 [ERROR] [MY-010211] [Server] Got error 1 when reading table './kwd_wordpress/wp_comments'
2023-10-23T10:00:26.582524Z 17733 [ERROR] [MY-010211] [Server] Got error 1 when reading table './kwd_wordpress/wp_comments'
2023-10-23T10:00:26.590981Z 17733 [ERROR] [MY-010211] [Server] Got error 1 when reading table './kwd_wordpress/wp_comments'
2023-10-23T12:42:31.142779Z 22248 [ERROR] [MY-012592] [InnoDB] Operating system error number 13 in a file operation.

맨 위에 부터 살펴보면 인스턴스를 중지하고 시작한 시점에서 작성된 것 같다.
그래서 내용 중에 2023-10-23T02:17:06.835538Z 0 [System] [MY-010116] [Server] /opt/bitnami/mysql/bin/mysqld.bin (mysqld 8.0.18) starting as process 1890 을 보면 mysql 이 가동 되었다는 것을 알 수 있다.
(UTC 시간이니 한국 시간으로 23일 오전 11시 14분)

이상하게 2023-10-23T08:45:52.032956Z 16623 [ERROR] [MY-010211] [Server] Got error 1 when reading table './bitnami_wordpress/wp_comments' 오류가 발생하기 시작한다.
(UTC 시간이니 한국 시간으로 23일 오후 5시 45분)

그 이후로는 아래 코드가 반복적으로 쌓이기 시작했다.

2023-10-23T12:42:31.149211Z 22248 [ERROR] [MY-012595] [InnoDB] The error means mysqld does not have the access rights to the directory.
2023-10-23T12:42:31.150355Z 22248 [Warning] [MY-012093] [InnoDB] Cannot open './bitnami_wordpress/wp_ounwan_options.ibd'. Have you deleted .ibd files under a running mysqld server?
2023-10-23T12:42:31.150373Z 22248 [ERROR] [MY-012157] [InnoDB] Trying to do I/O to a tablespace which exists without an .ibd data file. I/O type: read, page: [page id: space=44, page number=6], I/O length: 16384 bytes
2023-10-23T12:42:31.151079Z 22248 [ERROR] [MY-011966] [InnoDB] trying to read page [page id: space=44, page number=6] in nonexisting or being-dropped tablespace
2023-10-23T12:42:31.151117Z 22248 [ERROR] [MY-012592] [InnoDB] Operating system error number 13 in a file operation.

내용을 보니 mysql에 원하는 db 동작을 진행할 수 없는 상황인 듯 하다.

이어서 mysql이 죽기 전에 아래 메세지를 남기고 다시는 가동을 할 수 없는 상태가 되었다.

2023-10-23T12:42:31.176052Z 22248 [ERROR] [MY-011899] [InnoDB] [FATAL] Unable to read page [page id: space=44, page number=6] into the buffer pool after 100 attempts. The most probable cause of this error may be that the table has been corrupted. Or, the table was compressed with with an algorithm that is not supported by this instance. If it is not a decompress failure, you can try to fix this problem by using innodb_force_recovery. Please see http://dev.mysql.com/doc/refman/8.0/en/ for more details. Aborting...
2023-10-23T12:42:31.177145Z 22248 [ERROR] [MY-013183] [InnoDB] Assertion failure: ut0ut.cc:532 thread 140205585540864
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/8.0/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
12:42:31 UTC - mysqld got signal 6 ;
Most likely, you have hit a bug, but this error can also be caused by malfunctioning hardware.
Thread pointer: 0x7f842c684070
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 7f84281f1d80 thread_stack 0x46000
/opt/bitnami/mysql/bin/mysqld.bin(my_print_stacktrace(unsigned char const*, unsigned long)+0x2e) [0x1ed6cce]
/opt/bitnami/mysql/bin/mysqld.bin(handle_fatal_signal+0x323) [0xfb2d23]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x11390) [0x7f84465aa390]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0x38) [0x7f84445e9438]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x16a) [0x7f84445eb03a]
/opt/bitnami/mysql/bin/mysqld.bin() [0xd2ef58]
/opt/bitnami/mysql/bin/mysqld.bin(ib::fatal::~fatal()+0x95) [0x2171ca5]
/opt/bitnami/mysql/bin/mysqld.bin(Buf_fetch<Buf_fetch_normal>::read_page()+0x17a) [0x21cddaa]

여기서부터 해결을 위해서 내가 한 행동이다.

1. swap 용량으로 메모리를 늘려주었다. 그래도 같은 현상으로 서버는 죽게 되었다.

2. 지난 스냅샷으로 신규 인스턴스를 생성하였고 스팩은 한단계 높인 메모리 1Gb 로 변경하여 가동 시켰다.
하지만 www.ounwan.com 으로는 접속이 되고 ounwan.com 으로는 접속이 되지 않는다.
nginx 에서 설정이 잘못되었는 지 .conf 파일을 살펴보았다.

vi /opt/bitnami/apache2/conf/bitnami/bitnami.conf

bitnami.conf 파일을 열어 도메인 설정 부분을 다시 정리해보았지만 여전히 ounwan.com은 접속이 되지 않았다.

워드프레스를 로그인하려고 www.ounwan.com/wp-admin 을 입력하면 ounwan.com/wp-login.php? 으로 리다이렉트되기 때문에 로그인 페이지로 진입을 못하는 것이다.

여기서 근래에 도메인 기관 이전 했던 것이 생각이 났다. 그래서 문제가 되는 부분이 유추가 되기 시작했다.

기존에 gabia에서 도메인을 등록하 dns 설정에서 서버 ip를 입력할 때 www 없이 접근하는 ounwan.com 을 설정하는 부분에서 호스트 입력란에 @를 입력하여 등록했다.

그런데 이번에 기관 이전한 아이티이지로 이전할 때 dns 설정하는 부분을 기존과 동일하게 설정하였기 때문에 @으로 되어 있었다. 이 부분은 제거해 보았다.

이제서야 서버는 정상 접근이 되기 시작했고 아직까진 서버나 mysql이 죽지 않고 있다.

이 부분이 근본적인 문제였다고는 장담하지 못하겠다.
하지만 아직까지는 이상이 없고 로그에서도 문제가 발생하지 않고 있다.

몇일 정도 지켜보고 업데이트가 있다면 글을 갱신시킬 예정이다.

Subscribe
Notify of
guest

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

0 댓글
Inline Feedbacks
View all comments
TOP