Program Tip

내 루트 MySQL 암호를 어떻게 찾습니까?

programtip 2020. 11. 16. 22:05
반응형

내 루트 MySQL 암호를 어떻게 찾습니까?


방금 Ubuntu에 MySQL을 설치했는데 루트 사용자가 로그인 할 수 없습니다. :)

비밀번호를 어떻게 복구하거나 찾을 수 있습니까? 공백을 암호로 사용하면 작동하지 않습니다.


--skip-grant-tables루트 (또는 sudo)로 다음을 실행하여 비밀번호없이 서버를 실행 하고 로그인 하여 루트 비밀번호를 재설정 할 수 있습니다 .

# service mysql stop
# mysqld_safe --skip-grant-tables &
$ mysql -u root
mysql> use mysql;
mysql> update user set authentication_string=PASSWORD("YOUR-NEW-ROOT-PASSWORD") where User='root';
mysql> flush privileges;
mysql> quit
# service mysql stop
# service mysql start
$ mysql -u root -p

이제 새 암호로 루트로 로그인 할 수 있습니다.

비밀번호를 재설정하는 쿼리 /home/$USER/.mysql_history또는 비밀번호를 재설정 /root/.mysql_history한 사용자 를 찾을 수도 있지만 위의 방법은 항상 작동합니다.

참고 : 열이 호출 된 이전의 MySQL 5.7에 password대신 authentication_string. 위의 줄을

mysql> update user set password=PASSWORD("YOUR-NEW-ROOT-PASSWORD") where User='root';

나는 이것이 오래된 스레드라는 것을 알고 있지만 내 결과로 업데이트 할 것이라고 생각했습니다.

Alex, 메타 패키지 'mysql-server'를 통해 MySQL 서버를 설치 한 것 같습니다. 이것은 참조로 최신 패키지를 설치합니다 (제 경우에는 mysql-server-5.5). 여러분과 마찬가지로 저도 예상했던대로 설정시 MySQL 암호를 입력하라는 메시지가 표시되지 않았습니다. 두 가지 답변이 있다고 가정합니다.

솔루션 # 1 : 전체 이름으로 MySQL을 설치합니다.

$ sudo apt-get install mysql-server-5.5

또는

솔루션 # 2 : 패키지 재구성 ...

$ sudo dpkg-reconfigure mysql-server-5.5

전체 패키지 이름을 지정해야합니다. 메타 패키지 'mysql-server'를 사용하면 원하는 결과를 얻지 못했습니다. 나는 이것이 누군가에게 도움이되기를 바랍니다 :)

참조 : https://help.ubuntu.com/12.04/serverguide/mysql.html


sudo mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YOUR_PASSWORD_HERE';
FLUSH PRIVILEGES;

mysql -u root -p # and it works

Ubuntu 14.04의 MySQL 5.5에는 여기 에서 권장하는 약간 다른 명령이 필요 했습니다 . 간단히 말해서 :

sudo /etc/init.d/mysql stop
sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
mysql -u root

그리고 MySQL 프롬프트에서

FLUSH PRIVILEGES;
SET PASSWORD FOR root@'localhost' = PASSWORD('password');
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
FLUSH PRIVILEGES;

그리고 인용 된 출처 는 다른 방법도 제공합니다.


RHEL-mysql 5.5의 경우 :

/etc/init.d/mysql stop

/etc/init.d/mysql start --skip-grant-tables

 mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
 mysql> FLUSH PRIVILEGES;
 mysql> exit;

mysql -uroot -pnewpwd

mysql>  

흠 Mysql 5.7.13 내가 한 모든 것을 재설정하는 것은 다음과 같습니다.

$ sudo service mysql stop mysql을 중지하려면

$ mysqld_safe --skip-grant-tables & MySQL 시작

$ mysql -u root

정답처럼. 그런 다음 내가 한 일은 @eebbesen이 한 일뿐이었습니다.

mysql> SET PASSWORD FOR root@'localhost' = PASSWORD('NEW-password-HERE');

누구에게나 도움이되기를 바랍니다. :)


간단한 해결책이 있습니다.

MySql 5.7은 익명 사용자와 함께 제공되므로 MySQL 서버를 재구성해야합니다.

이 명령으로 수행 할 수 있습니다.

임시 패스를 찾으십시오.

grep 'temporary password' /var/log/mysqld.log

그때:

sudo mysql_secure_installation

이 링크에는 mysql 5.7에 대한 자세한 정보가 있습니다.

https://dev.mysql.com/doc/refman/5.7/en/linux-installation-yum-repo.html


MYSQL 5.7에서 개발 목적으로 mysql을 사용하는 경우 다음과 같습니다.

1. mysql을 죽인다.

$ sudo service mysql stop

2. --skip-grant-tables 모드에서 mysql을 시작합니다.

$ sudo mysqld_safe --skip-grant-tables 

또한 "skip-grant-table"모드에서 사용자 테이블을 변경하려고 시도 할 수 있지만 실패했습니다.

따라서 이것은 해결 방법 일뿐입니다.


It is actually very simple. You don't have to go through a lot of stuff. Just run the following command in terminal and follow on-screen instructions.

sudo mysql_secure_installation

참고URL : https://stackoverflow.com/questions/5683154/how-do-i-find-out-my-root-mysql-password

반응형