서버 버전 확인
실행 중인 MySQL 또는 MariaDB 서버 버전에 따라 다른 명령어로 루트 암호를 복구해야 합니다.
다음 명령을 실행하여 서버 버전을 확인합니다.
mysql --version
시스템에 MySQL이 설치되어 있는 경우 출력은 다음과 같습니다.
mysql Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using EditLine wrapper
또는 MariaDB에 대해 다음과 같이 출력합니다.
mysql Ver 15.1 Distrib 10.3.32-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
MySQL 또는 MariaDB 루트 비밀번호를 재설정하는 방법
MySQL/MariaDB 루트 비밀번호를 재설정하려면 다음 단계를 수행합니다.
1. MySQL/MariaDB 서비스 중지
만일 mysql이나 mariaDB가 기동 중에 있을 경우, 루트 암호를 변경하려면 먼저 MySQL 서버를 중지해야 합니다.
sudo systemctl stop mysql
2. 그랜트 테이블을 로드하지 않고 MySQL/MariaDB 서버를 시작합니다.
그랜트 테이블을 로드하지 않고 데이터베이스 서버를 시작합니다:
sudo mysqld_safe --skip-grant-tables &
위의 명령 끝에 있는 &(앰퍼샌드)는 프로그램이 백그라운드에서 실행 되도록 하므로 쉘을 계속 사용할 수 있습니다.
--skip-grant-tables옵션을 사용하면 누구나 암호 없이 데이터베이스 서버에 연결할 수 있습니다.
3. MySQL 셸에 로그인
이제 루트 사용자로 데이터베이스 서버에 연결할 수 있습니다.
mysql -u root
4. 새 루트 비밀번호 설정
MySQL 5.7.5 및 이전 버전 또는 MariaDB 10.1.20 및 이전 버전인 경우
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MY_NEW_PASSWORD');
FLUSH PRIVILEGES;
MySQL 5.7.6 이상 또는 MariaDB 10.1.20 이상인 경우
MariaDB> ALTER USER 'root'@'localhost' IDENTIFIED BY 'NEW_PASSWORD';
MariaDB> FLUSH PRIVILEGES;
ALTER USER문이 수행되지 않고 아래와 같이 오류가 발생하면 UPDATE 문을 수행합니다.
MariaDB [(none)]> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
ERROR 1290 (HY000): The MariaDB server is running with the --skip-grant-tables option so it cannot execute this statement
오류 발생 시 아래 SQL문을 수행합니다.
MariaDB> UPDATE mysql.user SET authentication_string = PASSWORD('NEW_PASSWORD')
WHERE User = 'root' AND Host = 'localhost';
MariaDB> FLUSH PRIVILEGES;
5. 데이터베이스 서버를 정상적으로 중지 및 시작
이제 루트 암호가 설정되었으므로 데이터베이스 서버를 중지하고 정상적으로 시작합니다.
$ mysqladmin -u root -p shutdown
새 루트 암호를 입력하라는 메시지가 표시됩니다. 암호를 입력하면 데이터베이스 서버를 정상적으로 중지합니다.
데이터베이스 기동
MySQL의 경우 다음을 입력합니다.
sudo systemctl start mysql
MariaDB의 경우 다음을 입력합니다.
sudo systemctl start mariadb
*** 참고 ***
WSL 에서 sudo systemctl start mysql, sudo systemctl start mariadb 명령어로 DB 기동 시 아래 오류가 발생하면
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
아래 명령어로 DB를 기동한다.
sudo /etc/init.d/mysql start
6. 비밀번호 확인
새 루트 암호가 올바르게 적용되었는지 확인하려면 다음을 입력합니다.
sudo mysql -u root -p
새 루트 암호를 입력하라는 메시지가 표시됩니다. 입력하면 데이터베이스 서버에 로그인 합니다.
'MariaDB' 카테고리의 다른 글
Ubuntu 20.04에 MariaDB 삭제하기 (0) | 2022.01.15 |
---|---|
Unable to correct problems, you have held broken packages MYSQL 오류 메시지 (0) | 2021.12.28 |
Ubuntu 20.04에 MariaDB 설치하기 (0) | 2021.12.28 |
MariaDB 삭제-수정 (0) | 2021.12.28 |
MariaDB Products (0) | 2021.12.28 |