### 설치 ###
# Homebrew를 이용한 설치
brew install mysql
brew info mysql
### 실행 ###
# brew로 시작
brew services start mysql
# brew로 정지
brew services stop mysql
### 설치 ###
#apt-get을 이용한 설치
sudo apt-get update
sudo apt-get install mysql-server
### 실행 ###
sudo systemctl start mysql
# -u(계정 접근), -p(비밀번호)
mysql -u root
mysql -u root -p
ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)
비밀번호가 달라서 생기는 에러이다.
이는 올바른 비밀번호로 실행하면 해결되지만 비밀번호 분실했을때는 아래 방법을 통해 문제를 해결하면 된다.
mysql 버전에 따라 설정 방법이 조금 달라진다.
[MAC] mysql 8.X version
mysql bin 파일이 있는 폴더로 이동하여 mysql 데몬 종료
/usr/local/mysql/bin
의 경로에 파일이 있지만 homebrew로 mysql을 설치했다면 /usr/local/opt/mysql/bin
이 있다.만약 Homebrew로 설치했다면 폴더 이동없이 brew services stop mysql
으로 데몬 종료가 가능하다.
비밀번호 없이 mysql에 접속
mysqld_safe --skip-grant-tables &
mysql에 접속
mysql -u root
비밀번호 초기화
# 아래 코드로 바로 비밀번호를 저장하게 되면 비밀번호가 암호화되지 않은 채로 db에 저징되어 에러가 발생한다.
UPDATE mysql.user SET authentication_string='[변경할 비밀번호]' WHERE user='root';`
flush privileges;
# mysql db 접속 후 암호화 되어 있지 않음을 확인 할 수 있다.
use mysql;
SELECT authentication_string FROM user;
# mysql db 접속 후, root 계정 비밀번호 null로 바꾸기
use mysql
UPDATE user SET authentication_string=null WHERE user='root';
flush privileges;
mysql 데몬 종료
여기서는 brew
를 사용해서 종료가 안되므로 해당 폴더로 진입하여 데몬을 종료해야하다.
비밀번호 재설정
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '변경할 패스워드';
# OR
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '새비밀번호';
SELECT authentication_string FROM user WHERE user='root';
이전에 mysql이 있는 경우에 문제가 생겨서 mysql를 완전히 삭제하고 mysql를 재설치하게 되었다.
(Mac) 재설치 시 삭제 명령어
# MySQL 서비스 종료
$ brew services stop mysql
# Brew로 삭제, Clean up
$ brew remove mysql
$ brew cleanup
# 남아있는 mysql 정보 삭제
$ sudo rm -rf /usr/local/var/mysql
(M1 사용자는 추가적으로 sudo rm -rf /opt/local/var/mysql)
$ sudo rm -rf /usr/local/mysql
(M1 사용자는 추가적으로 sudo rm -rf /opt/local/mysql)
$ sudo rm -rf /Library/StartupItems/MySQLCOM
$ sudo rm -rf /Library/PreferencePanes/MySql
Reference
[Mysql/Mac] root 비밀번호 분실 시 초기화