본문 바로가기
DB/MySQL

오랜만에 MySQL 접속하니 마주한 에러들 해결 정리

by yeonn108 2023. 3. 29.

회사 맥북으로 MySQL을 사용하다가 내 맥북으로 새로운 프로젝트를 시작하기 위해서 MySQL 서버에 접속하려고 하니 여러 에러들을 마주했다. 

1. sudo로 접속해도 mysql 서버에 접속되지 않는 문제 (비밀번호를 설정했는데 틀린 비밀번호로 접속해서 발생한 문제 같았음)

2. 터미널로 mysql 서버에 접속하는데 자꾸 호스트가 jdbc:mysql://localhost 로 설정되어서 Unknown MySQL server host 라는 에러 메시지가 나왔다. 

 

해결 방법을 정리하자면, 

1. 해결 sudo로 접속해도 mysql 서버에 접속되지 않는 문제

mysql 서버를 실행할 때 --skip-grant-tables 라는 옵션을 준다. 

아래 명령어를 순차적으로 실행하면 된다.

mysql.server stop

mysql.server start --skip-grant-tables

sudo mysql -u root

 

2. 터미널로 mysql 서버에 접속하는데 자꾸 호스트가 jdbc:mysql://localhost 로 설정됨

.zshrc 파일을 보니 MYSQL_HOST라는 환경 변수를 jdbc:mysql://localhost로 설정되어 있었다. 이전에 필요해서 설정해둔 것 같다.

혹시 MYSQL_HOST 환경변수가 자동으로 호스트로 지정되는 건가 싶어서 주석처리 하고 source 명령어로 적용되도록 했는데도 문제가 해결되지 않았다. 

 

mysql 서버 접속할 때 -h 옵션으로 localhost를 지정해도 되지만 매번 지정해야 하는 것이 번거로웠다.

mysql 설정 파일에서 호스트를 지정하면 된다는 방법을 찾았다.

 

mysql 설정 파일의 위치는 운영체제나 설치 방법에 따라 다르다고 하여 mysql --help 명령어로 찾을 수 있다.

Default options are read from the following files in the given order: 

위의 메세지에 my.cnf 파일이 존재할 수 있는 위치 목록이 나온다.

[mysql]
host = localhost

위와 같이 host를 mysql 설정 파일에 지정해주니 -h 옵션 없이 mysql 서버에 localhost로 접속할 수 있다.

'DB > MySQL' 카테고리의 다른 글

deadlock found when trying to get lock 에러 해결  (1) 2024.07.16
case when exists  (0) 2022.03.27
Real MySQL 04 서버 아키텍처 (1)  (0) 2022.03.07