MySQL 삭제
- homebrew 로 설치했을 때
sudo rm -rf /usr/local/var/mysql
sudo rm -rf /usr/local/bin/mysql*
sudo rm -rf /usr/local/Cellar/mysql
- dmg 파일로 설치했을 때
sudo rm -rf /usr/local/mysql
sudo rm -rf /Library/PreferencePanes/My*
sudo rm -rf /var/db/receipts/com.mysql.*
MySQL 설치
- homebrew로 설치
brew update
brew install mysql
brew list | grep mysql
"mysql_secure_installation"이 나오면 설치가 완료된 것입니다.
*which mysql 의 결과로 "mysql not found"가 뜨는 경우
homebrew로 설치한 mysql이 /opt/homebrew/opt 아래에 정상적으로 설치되어야 하는데 /opt/homebrew/Cellar 에서만 /opt/homebrew/Cellar/mysql/8.3.0_1.reinstall 가 생성됨을 확인할 수 있고 /opt/homebrew/opt 디렉토리에서는 cd mysql 을 하면 해당 디렉토리가 없다고 뜨는 문제를 확인했습니다.
이는 mysql이 정상적으로 설치되지 않아 발생한 문제로 확인됩니다.
저의 경우엔 protobuf을 설치한 후 mysql을 설치하니 정상적으로 mysql이 설치되었습니다.
brew install protobuf@21
MySQL이 설치 과정에서 protobuf에 의존하는 이유는 내부적으로 프로토콜 버퍼를 사용하여 데이터를 직렬화하거나 특정 기능을 구현하기 위해서입니다. 따라서 protobuf가 설치되어 있지 않으면 MySQL 설치가 정상적으로 진행되지 않을 수 있습니다.
![](https://blog.kakaocdn.net/dn/bM4Vsh/btsHJE05m15/Kpve7KKc6MhW87emPpp3E0/img.png)
mysql이 정상적으로 설치된다면 위와 같은 구조로 설치됨을 확인할 수 있습니다.
- dmg 파일로 설치
https://dev.mysql.com/downloads/mysql/
MySQL :: Download MySQL Community Server
Select Version: 8.4.0 LTS 8.0.37 Select Operating System: Select Operating System… Microsoft Windows Ubuntu Linux Debian Linux SUSE Linux Enterprise Server Red Hat Enterprise Linux / Oracle Linux Fedora Linux - Generic Oracle Solaris macOS Source Code Se
dev.mysql.com
MySQL 실행 / MySQL 중지
mysql.server start
mysql.server stop
mysql 서버를 직접 실행하는 명령어로 이는 터미널 세션에서만 실행되며, 사용자가 터미널을 종료하면 MySQL 서버도 종료됩니다.
MySQL 서버는 이 명령어를 실행한 세션에서만 실행되며, 시스템 재부팅 시 자동으로 시작되지 않습니다.
MySQL 서버를 일시적으로 실행하고자 한다면 mysql.server start가 적합합니다.
brew services start mysql
brew services stop mysql
Homebrew의 서비스 관리 기능을 사용하여 MySQL 서버를 실행합니다.
이는 MySQL을 macOS의 런치데몬(launchd) 서비스로 등록하여, 시스템이 부팅될 때 자동으로 시작되도록 설정합니다.
백그라운드에서 지속적으로 실행되기를 원하면 brew services start mysql을 사용하는 것이 좋습니다.
MySQL 상태 확인
brew services list
위의 명령어를 통해 Homebrew를 통해 설치된 서비스들의 상태를 확인할 수 있는데 mysql이 started 되어 있으면 정상적으로 실행 중입니다.
- started: 서비스가 실행 중
- stopped: 서비스가 중지된 상태
- none: 서비스가 등록되지 않았거나 설치되지 않은 상태
stopped나 none 상태라면 brew services start mysql 명령어를 통해 실행시켜 주시길 바랍니다.
MySQL설정
mysql이 정상적으로 설치되어 실행되었음을 확인했다면 초기 설정을 해야합니다.
mysql_secure_installation
해당 명령어로 아래의 과정을 진행하면 됩니다.
*Error: Access denied for user 'root'@'localhost' (using password: NO)
Error: Access denied for user 'root'@'localhost' (using password: NO) 오류는 MySQL 서버에 접근하려 할 때 올바른 비밀번호를 제공하지 않았기 때문에 발생합니다. 이 문제를 해결하려면 다음 단계를 따라 root 사용자의 비밀번호를 설정하거나 수정할 수 있습니다.
1. MySQL 서버에 안전 모드로 접속
먼저, MySQL 서버를 비밀번호 없이 접속할 수 있도록 안전 모드로 시작합니다.
1.1 MySQL 서버 중지
현재 실행 중인 MySQL 서버를 중지합니다.
brew services stop mysql
1.2 안전 모드로 MySQL 서버 시작
안전 모드로 MySQL 서버를 시작합니다. 안전 모드에서는 인증을 우회할 수 있습니다.
mysqld_safe --skip-grant-tables &
2. MySQL 서버에 접속
이제 MySQL 서버에 비밀번호 없이 접속할 수 있습니다.
mysql -u root
3. root 사용자 비밀번호 설정 또는 변경
MySQL 프롬프트에서 root 사용자의 비밀번호를 설정하거나 변경합니다. MySQL 5.7 이상 버전에서는 ALTER USER 명령을 사용합니다.
ALTER USER 'root'@'localhost' IDENTIFIED BY '새로운비밀번호';
FLUSH PRIVILEGES;
4. MySQL 서버 재시작
MySQL 서버를 중지하고 정상 모드로 다시 시작합니다.
4.1 안전 모드 중지
먼저 안전 모드로 실행 중인 MySQL 서버를 중지합니다. 안전 모드로 실행된 MySQL 서버를 중지하는 가장 쉬운 방법은 해당 프로세스를 종료하는 것입니다.
killall mysqld_safe
killall mysqld
4.2 MySQL 서버 정상 모드로 시작
이제 MySQL 서버를 정상 모드로 다시 시작합니다.
brew services start mysql
*Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 오류는 MySQL 서버가 실행되지 않았거나 올바른 소켓 파일을 찾을 수 없을 때 발생합니다. 이 문제를 해결하기 위해 다음 단계를 시도해볼 수 있습니다.
1. MySQL 서버가 실행 중인지 확인
먼저 MySQL 서버가 실행 중인지 확인합니다. 실행 중이 아니라면 서버를 시작해야 합니다.
brew services list
![](https://blog.kakaocdn.net/dn/cvOHHZ/btsHI9NR7QT/NeUZSxN0xH1thTeHzK299k/img.png)
2. MySQL 서버 로그 확인
tail -f /opt/homebrew/var/mysql/$(hostname).err
![](https://blog.kakaocdn.net/dn/0fMSy/btsHIHj0aMO/xEa8aWKTZqD8A8TaChgI61/img.png)
Failed to find valid data directory.
Data Dictionary initialization failed.
Aborting
로그에 따르면 MySQL 서버가 데이터 디렉토리를 찾지 못하여 시작에 실패한 것 같습니다.
3. 데이터 디렉토리 내용 삭제
rm -rf /opt/homebrew/var/mysql/*
이 명령어는 MySQL 데이터 디렉토리 내의 모든 파일과 디렉토리를 삭제합니다. 이로 인해 모든 데이터베이스가 삭제되므로, 중요한 데이터가 있다면 백업을 먼저 해야 합니다.
4. 데이터 디렉토리 초기화
/opt/homebrew/opt/mysql/bin/mysqld --initialize --user=$(whoami) --basedir=/opt/homebrew/opt/mysql --datadir=/opt/homebrew/var/mysql
이 명령어는 MySQL 데이터 디렉토리를 초기화합니다. 여기서 --initialize 옵션은 데이터 디렉토리를 초기화하고 기본 데이터베이스와 테이블을 생성합니다.
![](https://blog.kakaocdn.net/dn/7uPbs/btsHHLAEteq/HOPgR0H7NXyOeoCCRbncu1/img.png)
MySQL 접속
mysql -u root -p
status
status 확인이 정상적으로 출력된다면 수고하셨습니다, 드디어 MySQL설치를 완료했습니다!
MySQL 클라이언트 설치
brew install mysql-client
MySQL Workbench 설치
brew install --cask mysqlworkbench
--cask 옵션을 사용하여 GUI 애플리케이션을 설치합니다
'DB' 카테고리의 다른 글
퍼시스턴스 프레임워크(Persistence Framework) (0) | 2024.06.06 |
---|---|
MySQL Workbench 스키마 생성 / 테이블 생성 / 필드 생성 (0) | 2024.05.31 |