한 번만 더 해보자

[mysql] root 비밀번호 초기화 본문

Database

[mysql] root 비밀번호 초기화

정 하임 2024. 6. 13. 21:46

mysql 서비스 중지

sudo /etc/init.d/mysql stop
sudo mkdir /var/run/mysqld
sudo chown mysql /var/run/mysqld

 

 

 

--skip-grant-tables 옵션으로 MySQL을 시작

sudo mysqld_safe --skip-grant-tables&

뭔가 진행된 문구가 보이면 ENTER눌러서 bash 프롬포트로 이동

 

 

 

MySQL Root Password 변경

# ROOT 비밀번호 초기화
UPDATE mysql.user SET authentication_string=null WHERE User='root';
flush privileges;
exit

변경한 비밀번호로 재접속

ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_password_here';
flush privileges;
exit
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

중간에 저장하지 않고 계속 비밀번호를 변경을 시도하면 위와 같은 에러가 뜬다

 

 

재시작

service mysqld restart

변경이 끝났다면 재시작하기

ubuntu@ubuntu:~$ service mysql status
● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: activating (start) since Thu 2024-06-13 00:00:37 UTC; 1min 38s ago
    Process: 410084 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
   Main PID: 410092 (mysqld)
     Status: "Server startup in progress"
      Tasks: 12 (limit: 308960)
     Memory: 254.7M
        CPU: 432ms
     CGroup: /system.slice/mysql.service
             └─410092 /usr/sbin/mysqld

Jun 13 00:00:37 ubuntu systemd[1]: Starting MySQL Community Server...
ubuntu@ubuntu:~$ sudo docker r^C

위와 같이 상태가 activating (start)에서 멈춰있거나 restart가 안된다면 서버를 리부트 한다

service mysqld restart
systemctl mysql restart
sudo /etc/init.d/mysql start

셋중 하나라도 안되는 경우 서버를 리부트 한다

sudo reboot now
반응형