
mariadb를 사용 중, mysql을 설치 과정에서 발생했던 에러와 해결방법 정리 (mac-brew)
Mac에서 Homebrew를 사용하여 MySQL을 설치하는 과정은 간단합니다. 다음 명령을 통해 설치를 시작할 수 있습니다:
brew install mysql
하지만 만약 시스템에 이미 MariaDB나 Percona Server와 같은 충돌하는 소프트웨어가 설치되어 있다면, 먼저 이를 연결 해제해야 할 수 있습니다:
brew unlink mariadb brew install mysql
설치가 완료된 후, MySQL을 시작하고 초기 보안 설정을 구성합니다:
brew services start mysql
mysql_secure_installation
이 스크립트는 root 사용자의 비밀번호를 설정하고, 기타 보안 관련 설정을 수행합니다.
오류 메시지:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
해결 방법:
my.cnf 파일에서 소켓 파일 위치를 확인합니다. 소켓 파일 설정이 없다면 아래 설정을 추가합니다.grep socket /opt/homebrew/etc/my.cnf
#출력
socket = /tmp/mysql.sock
socket = /tmp/mysql.sock
만약 my.cnf 파일에서 소켓 파일 위치를 찾지 못하면 다음 설정을 파일에 추가하세요:
vi /opt/homebrew/etc/my.cnf
[mysqld]
socket = /tmp/mysql.sock
datadir = /opt/homebrew/var/mysql
log_error = /opt/homebrew/var/mysql/mysql_error.log
[client]
socket = /tmp/mysql.sock
brew services restart mysql
오류 메시지:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
해결 방법:
1. 비밀번호 없이 접속 시도:
mysqld_safe --skip-grant-tables &
1-1. MySQL 접속 및 비밀번호 설정:
mysql -u root ALTER USER 'root'@'localhost' IDENTIFIED BY '새로운비밀번호';
FLUSH PRIVILEGES;
2.비밀번호 초기화 스크립트 사용
MySQL 5.7 이상에서는 초기화 스크립트를 사용하여 root 비밀번호를 리셋할 수 있습니다.
brew services stop mysql
mysqld --initialize-insecure --user=$(whoami) --datadir=/opt/homebrew/var/mysql
이 명령은 기존 데이터를 모두 삭제하고, MySQL 데이터베이스를 초기화합니다. --initialize-insecure 옵션은 root 계정을 비밀번호 없이 초기화합니다. 이 명령은 데이터 손실을 수반하므로, 백업이 있는지 먼저 확인하세요.
brew services start mysql
root 계정에 대한 비밀번호를 설정합니다.mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED BY '새로운비밀번호'; FLUSH PRIVILEGES;
2024-04-16T09:42:16.427179Z 1 [ERROR] [MY-012224] [InnoDB] Tablespace flags are invalid in datafile: ./ibdata1, Space ID:0, Flags: 21. Please refer to http://dev.mysql.com/doc/refman/8.3/en/innodb-troubleshooting-datadict.html for how to resolve the issue.
2024-04-16T09:42:16.427217Z 1 [ERROR] [MY-012237] [InnoDB] Corrupted page [page id: space=0, page number=0] of datafile './ibdata1' could not be found in the doublewrite buffer.
2024-04-16T09:42:16.427226Z 1 [ERROR] [MY-012930] [InnoDB] Plugin initialization aborted with error Data structure corruption.
2024-04-16T09:42:16.428790Z 1 [ERROR] [MY-011013] [Server] Failed to initialize DD Storage Engine.
2024-04-16T09:42:16.428928Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2024-04-16T09:42:16.428942Z 0 [ERROR] [MY-010119] [Server] Aborting
손상된 데이터 파일 (ibdata1)로 인한 문제를 해결하기 위해:
brew services stop mysql rm -rf /opt/homebrew/var/mysql/*
mysqld --initialize --user=$(whoami) --datadir=/opt/homebrew/var/mysql brew services start mysql
Ref