MariaDB가 설치되어 있는 상태에서 homebrew로 mysql까지 설치하려고 하니 충돌이 발생하고 오류가 너무 많이 발생해서 삽질한 거 정리할 겸 남겨보려고 합니다.
저는 Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 해당 오류가 계속해서 발생했고 본 에러를 해결하기 위해 처음부터 다시 진행하는 방법으로 해결하였습니다.
만약 위와 같은 에러가 발생한다면 아래와 같이 진행하시면 도움이 될 것 같습니다.
0. Homebrew 설치
Homebrew는 설치가 이미 되었다고 가정하고 시작합니다. 만약 아직 homebrew가 설치되어있지 않으시다면 아래 글을 통해 설치 먼저 바랍니다.
https://eunhee-programming.tistory.com/259
1. Terminal(or iTerms) 열기
본 게시글은 homebrew로 설치하는 과정이기 때문에 CLI환경에서 설치할 수 있도록 터미널을 먼저 엽니다.
command + spacebar로 Spotlight을 먼저 연 후, 터미널 or iTerm을 입력하여 열어주도록 합니다.
또는
2. Homebrew Update
설치가 이미 되었다고 시작하는 게시글인만큼 업데이트는 꾸준히 해줍니다.
$ brew update
3. MariaDB and MySQL 모두 삭제해준 후 재설치
mariadb와 mysql이 계속해서 충돌이 났기 때문에 충돌을 해결하는 방법보다 저는 mysql을 우선적으로 사용하기 위해 두 개의 DB를 모두 삭제하고 MySQL만 다시 설치하여 사용하는 방법을 택하였습니다.
3-1. 현재 실행 중인 서비스부터 확인
$ brew services list
3-2. 만약 DB가 실행 중이라면 종료해주기
$ brew services stop mysql
3-3. DB 삭제해주기
$ brew uninstall mariadb
$ brew uninstall mysql
3-4. 폴더도 제거해주기
$ rm -rf /opt/homebrew/var/mysql
만약 위 게시글로 homebrew를 설치하고 mysql을 설치하셨다면 위 명령어로 mysql 폴더까지 모두 삭제하실 수 있습니다.
3-5. mysql 재설치해주기
$ brew install mysql
위 명령어를 입력하면 mysql이 설치되는 화면이 뜰텐데, 마지막 쯔음에 "mysql_secure_installation"이 나오면 설치 완료 된 것이다.
4. MySQL 보안 적용 명령어로 비밀번호 설정하기
$ mysql_secure_installation
위 명령어를 입력하면 비밀번호 설정 보안 강도를 선택해야 하는데
0 = low : 8글자 이상의 문자
1 = medium : 8글자 이상의 문자(숫자, 대/소문자 혼용 및 특수문자 포함)
2 = strong : 8글자 이상의 문자(숫자, 대/소문자 혼용, 특수문자 그리고 사전파일 포함)
위 중 하나를 선택하고
New password : 부분에 mysql 접속 할 때 사용하고자 하는 비밀번호를 입력하면 된다.
위 처럼 진행한 후 마지막에 All done ! 이 나오면 성공적으로 마친 것이다.
5. MySQL 서버 실행과 mysql 실행 및 종료
[서버 실행]
$ mysql.server start
위 명령어를 입력하면 서버가 실행되고 정상적으로 실행되면
"
Starting MySQL
SUCCESS!
"
라고 뜨는 것을 확인 할 수 있다.
[MySQL 실행]
$ mysql -uroot -p[password]
위 명령어로 비밀번호를 입력하고 mysql을 실행시킨다. 공백 존재 여부가 헷갈릴텐데 공백은 존재하지 않는다
ex) $ mysql -uroot -p1234567890
위 화면과 동일하게 뜨면 성공이다.
[MySQL 종료]
mysql > exit
위 명령어 exit을 입력하게 되면 Bye가 뜨고 mysql이 종료된다.
[MySQL 서버 종료]
$ mysql.server stop
위 명령어로 mysql 서버를 종료할 수 있다.
여기까지 되었다면 문제 없이 MySQL을 M1 OS에서도 사용할 수 있다.
'CS > MySQL' 카테고리의 다른 글
MySQL InnoDB 스토리지 엔진 아키텍처 / MVCC / 자동 데드락 감지 / 자동화 장애 복구 (0) | 2023.06.25 |
---|---|
MySQL 쿼리 실행 구조 / MySQL 복제 / 트랜잭션 지원 메타 데이터(MySQL 5.7 vs 8.0) (0) | 2023.06.23 |
MySQL 엔진 아키텍처 / 스레딩 구조 / 메모리 할당 및 구조 / 컴포넌트 (0) | 2023.06.23 |
MySQL 시스템 변수 특징 / 글로벌 변수와 세션 변수 / 정적 변수와 동적 변수 / SET PERSIST (0) | 2023.06.21 |
MySQL 5.7에서 MySQL 8.0 업그레이드 고려사항 및 차이점, MySQL 서버 설정 (0) | 2023.06.21 |