본문 바로가기
데이터베이스

aria init function returned error 에러 조치

by forward error correction Circle 2024. 8. 6.
반응형

MariaDB에서 "aria init function returned error" 메시지는 Aria 스토리지 엔진과 관련된 초기화 오류를 나타냅니다. Aria 엔진은 MariaDB에서 사용되는 스토리지 엔진 중 하나로, 테이블에 대한 트랜잭션 지원 및 복구 기능을 제공합니다. 이러한 오류가 발생하는 이유는 여러 가지가 있을 수 있으며, 이를 해결하기 위한 방법은 다음과 같습니다.

Ⅰ. 로그 파일 확인
먼저, 오류의 원인을 정확히 파악하기 위해 MariaDB 로그 파일을 확인하는 것이 좋습니다. 로그 파일은 일반적으로 /var/log/mysql/error.log 또는 /var/log/mariadb/mariadb.log에 위치합니다.

[root@feccle]# cat /var/log/mysql/error.log


Ⅱ. MariaDB 서비스 재시작
간단한 문제일 경우, MariaDB 서비스를 재시작하면 해결될 수 있습니다.

[root@feccle]# systemctl restart mariadb


Ⅲ. 테이블 점검 및 복구
Aria 테이블이 손상된 경우, 이를 점검하고 복구하는 것이 필요합니다. mysqlcheck 도구를 사용하여 모든 데이터베이스를 점검하고 자동으로 복구합니다.

[root@feccle]# mysqlcheck -u root -p --auto-repair --check --all-databases


특정 데이터베이스만 점검하려면 다음 명령을 사용합니다.

[root@feccle]# mysqlcheck -u root -p --auto-repair --check your_database


Ⅳ. Aria 로그 파일 삭제
Aria의 로그 파일이 손상되었을 수 있습니다. 이를 삭제하고 MariaDB를 다시 시작해보세요.

ⅰ. MariaDB 서비스 중지

[root@feccle]# systemctl stop mariadb

 

ⅱ. Aria 로그 파일 삭제

[root@feccle]# rm /var/lib/mysql/aria_log_control
[root@feccle]# rm /var/lib/mysql/aria_log.00000001

 

ⅲ. MariaDB 서비스 시작

[root@feccle]# systemctl start mariadb

 

Ⅴ. 테이블 복구
Aria 테이블을 복구하려면 myisamchk 도구를 사용할 수 있습니다. MariaDB를 중지한 상태에서 복구 작업을 수행합니다.
ⅰ. MariaDB 서비스 중지

[root@feccle]# systemctl stop mariadb

 

ⅱ. Aria 테이블 복구

[root@feccle]# myisamchk --recover /var/lib/mysql/your_database/your_table.MYI

 

ⅲ. MariaDB 서비스 시작

[root@feccle]# systemctl start mariadb

 

Ⅵ. 권한 문제 확인
MariaDB 데이터 디렉토리의 파일 및 디렉토리 권한이 올바른지 확인합니다.

[root@feccle]# chown -R mysql:mysql /var/lib/mysql
[root@feccle]# chmod -R 755 /var/lib/mysql

 

Ⅶ. 데이터베이스 재구성
이 방법은 마지막에 사용하는 방법입니다. 데이터를 백업한 후 데이터베이스를 재구성합니다.

ⅰ. 데이터베이스 백업

[root@feccle]# mysqldump -u root -p --all-databases > all_databases_backup.sql

 

ⅱ. 데이터베이스 디렉토리 초기화

[root@feccle]# systemctl stop mariadb
[root@feccle]# mv /var/lib/mysql /var/lib/mysql_backup
[root@feccle]# mkdir /var/lib/mysql
[root@feccle]# chown mysql:mysql /var/lib/mysql
[root@feccle]# mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
[root@feccle]# systemctl start mariadb

 

ⅲ. 백업 데이터 복원

[root@feccle]# mysql -u root -p < all_databases_backup.sql

 

반응형