데이터베이스

aria init function returned error 에러 조치

forward error correction Circle 2024. 8. 6. 08:29
반응형

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

 

반응형