programing

루트 MySQL 비밀번호를 확인하려면 어떻게 해야 하나요?

yoursource 2022. 12. 31. 18:44
반응형

루트 MySQL 비밀번호를 확인하려면 어떻게 해야 하나요?

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

비밀번호를 복구하거나 확인하려면 어떻게 해야 하나요?패스워드에 공백으로 하면 동작하지 않습니다.

, 패스워드를 「 」, 「 」, 「 」, 「 」, 「 」, 「 」를 사용해 서버를 실행합니다.--skip-grant-tables로 다음 없이 합니다.root ( 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

이제 새 비밀번호를 사용하여 root로 로그인할 수 있습니다.

, 패스워드를 는, 「 리셋」으로 할 수도 ./home/$USER/.mysql_history ★★★★★★★★★★★★★★★★★」/root/.mysql_history패스워드를 리셋한 유저의 경우는, 상기의 조작은 항상 유효합니다.

5.7에는 이 은 "MySQL 5.7"이라고 불렸습니다.passwordauthentication_string. 으로 바꿉니다 위의 행을 다음과 같이 바꿉니다.

mysql> update user set password=PASSWORD("YOUR-NEW-ROOT-PASSWORD") where User='root';
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

오래된 스레드인 것은 알지만, 결과에 따라 업데이트해야겠다고 생각했습니다.

알렉스, 메타 패키지 '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

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>  

Hmm Mysql 5.7.13 리셋은 다음과 같습니다.

$ sudo service mysql stopmysqlmysql을

$ mysqld_safe --skip-grant-tables & mysql mysqlmysql

$ mysql -u root

정답처럼.그리고 내가 한 일은 @ebbesen이 한 일을 하는 것뿐이다.

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

누구나 도움이 되길 바랍니다. :)

루트 패스워드를 설정하는 가장 좋은 방법은 다음과 같습니다.Source Link Step 3은 완벽하게 동작하고 있습니다.

명령어

  1. sudo mysql
  2. SELECT 사용자, authentication_string, plugin, host FROM mysql.user;
  3. mysql_native_password로 식별되는 사용자 'root'@'localhost'를 'password'로 변경합니다.
  4. 플래시 특권
  5. SELECT 사용자, authentication_string, plugin, host FROM mysql.user;
  6. 퇴장

이제 root 사용자의 비밀번호는 'password'입니다.

  1. mysql -u 루트 -p
  2. 'password'로 식별되는 'sammy'@'localhost' 사용자 생성;
  3. GRANT 옵션을 사용하여 'sammy'@'localhost'에 모든 권한을 부여합니다.
  4. 플래시 특권
  5. 퇴장

MySQL 서비스 및 버전 테스트:

systemctl status mysql.service
sudo mysqladmin -p -u root version

MYSQL 5.7에서 개발 목적으로 mysql을 사용하는 경우 다음과 같이 하십시오.

1. kill mysql :

$ sudo service mysql stop

2. --sysql-sysql 모드에서 start mysql:

$ sudo mysqld_safe --skip-grant-tables 

또한 "skip-grant-table" 모드에서 사용자 테이블을 변경하려고 해도 실패하였습니다.

이것은 회피책일 뿐입니다.

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

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

그것은 사실 매우 간단하다.많은 일을 겪지 않아도 돼요.터미널에서 다음 명령을 실행하고 화면에 나타나는 지침을 따르십시오.

sudo mysql_secure_installation

저는 잘 모르기 때문에 여기서 조금 추측을 해보겠습니다.MySQL(최신 20.04 업그레이드 시 실행)은 루트도 없는 것 같습니다.설정해 봤는데 문제가 있었던 것 같아요.루트 사용자가 없는 것 같습니다.루트로 로그인하면 MySQL 루트 사용자로 자동으로 로그인됩니다.

내가 왜 이런 생각을 하지?MySQL -u root -p를 실행하면 루트로 로그인하면 패스워드가 받아들여지고 MySQL root 사용자로 로그인하기 때문입니다.

루트 유저가 아닌 유저에게 그것을 시도해도 동작하지 않는 것을 확인했습니다.

이 모델이 마음에 들어요.

EDIT 2020.12.19: 루트 사용자로 로그인하면 루트 사용자로 MySQL에 로그인하는 이유는 더 이상 알 수 없습니다.인증 타입과 관련되어 있습니다.이후 버전의 MySQL은 MySQL 플러그인 'auth_socket'으로 구성됩니다(시스템에 /run/mysqld/mysqld.sock 파일이 있고 궁금할 수 있습니다).플러그인은 라이브러리 auth_socket.so에서 제공하는 SO_PEERCRED 옵션을 사용합니다.

필요에 따라서, 패스워드를 작성/갱신하는 것만으로 패스워드 인증으로 되돌릴 수 있습니다.아래에 두 가지 방법과 옵션을 모두 제시하여 명확히 합니다.

auth_socket으로 식별되는 사용자 'valerie'@'localhost'를 만듭니다.
'password'로 식별되는 사용자 'valerie'@'localhost' 생성;

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

반응형