[DB]Mysql 설치(ERROR 2002, ERROR1045) mac

JUNYOUNG·2024년 4월 17일

mariadb를 사용 중, mysql을 설치 과정에서 발생했던 에러와 해결방법 정리 (mac-brew)

MySQL 설치 및 초기 설정

1. MySQL 설치

Mac에서 Homebrew를 사용하여 MySQL을 설치하는 과정은 간단합니다. 다음 명령을 통해 설치를 시작할 수 있습니다:

brew install mysql

하지만 만약 시스템에 이미 MariaDB나 Percona Server와 같은 충돌하는 소프트웨어가 설치되어 있다면, 먼저 이를 연결 해제해야 할 수 있습니다:

brew unlink mariadb brew install mysql

2. MySQL 구성 및 시작

설치가 완료된 후, MySQL을 시작하고 초기 보안 설정을 구성합니다:

brew services start mysql 
mysql_secure_installation

이 스크립트는 root 사용자의 비밀번호를 설정하고, 기타 보안 관련 설정을 수행합니다.

일반적인 문제 및 해결 방법

문제 1: 소켓 연결 오류

오류 메시지:

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
  • MySQL 서비스 재시작:
brew services restart mysql

문제 2: 접근 거부 오류(비밀번호 재설정)

오류 메시지:

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 비밀번호를 리셋할 수 있습니다.

  1. MySQL 서비스 중지:
brew services stop mysql
  1. 비밀번호 초기화:
mysqld --initialize-insecure --user=$(whoami) --datadir=/opt/homebrew/var/mysql

이 명령은 기존 데이터를 모두 삭제하고, MySQL 데이터베이스를 초기화합니다. --initialize-insecure 옵션은 root 계정을 비밀번호 없이 초기화합니다. 이 명령은 데이터 손실을 수반하므로, 백업이 있는지 먼저 확인하세요.

  1. MySQL 서비스 재시작:
brew services start mysql
  1. 비밀번호 설정: 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

profile
Onward, Always Upward - 기록은 성장의 증거

0개의 댓글