MySQL 루트 비밀번호를 재설정하거나 변경하는 방법은 무엇입니까?


179

우분투 서버에서 MySQL 루트 비밀번호와 사용자 이름을 어떻게 변경합니까? 변경 사항을 설정하기 전에 mysql 서비스를 중지해야합니까?

phpmyadmin 설정도 있는데 phpmyadmin이 자동으로 업데이트됩니까?


: 당신이 데이터가 필요하지 않은 경우는 전체 mysql을 제거하여 암호를 "재설정"할 수 stackoverflow.com/questions/10853004/... (는 "새로운"루트 암호를 묻는 메시지가 표시됩니다) FWIW 다시 설치 한 후 : )
rogerdpack

MySQL 루트 비밀번호를 알고 있습니까?
Franck Dernoncourt

2
mysql-server-5.7에서는 이러한 메소드가 작동하지 않습니다. 에서 언급 한 바와 같이 암호없이 'sudo를'를 사용 askubuntu.com/a/848504
Pragalathan M을

답변:


225

Ubuntu Linux에서 MySQL 루트 비밀번호를 설정 / 변경 / 재설정합니다. 터미널에 다음 줄을 입력하십시오.

  1. MySQL 서버를 중지하십시오. sudo /etc/init.d/mysql stop
  2. mysqld구성을 시작하십시오 .sudo mysqld --skip-grant-tables &

    어떤 경우에는 /var/run/mysqld첫 번째 를 만들어야합니다 .

    sudo mkdir -v /var/run/mysqld && sudo chown mysql /var/run/mysqld
  3. 운영: sudo service mysql start
  4. 루트로 MySQL에 로그인하십시오. mysql -u root mysql
  5. YOURNEWPASSWORD새 비밀번호로 교체하십시오 .

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

참고 : 일부 버전에서 password열이 존재하지 않으면 다음을 시도해보십시오.
UPDATE user SET authentication_string=password('YOURNEWPASSWORD') WHERE user='root';

참고 :이 방법은 비밀번호를 재설정하는 가장 안전한 방법으로 간주되지 않지만 작동합니다.

참고 문헌 :

  1. Ubuntu Linux에서 MySQL 루트 비밀번호 설정 / 변경 / 재설정
  2. 루트 비밀번호를 재설정하는 방법

20
물론이 시점 이후에는 2 단계에서 시작한 임시 암호가없는 서버 프로세스를 종료해야합니다 sudo killall -9 mysqld. 그런 다음 sudo service mysql start일반 데몬을 다시 시작하려면 ...
Lambart

7
이 답변의 방법은 [source ]를 모르는 MySQL 루트 암호를 재설정하는 경우에만 필요합니다 . 당신이 그것을 알고 있다면, SET PASSWORDMySQL 명령이 당신을위한 것입니다.
tanius

53
나는 3 단계까지 따라와 내가 루트를 통해 로그인 할 때 내가 소켓 '/var/run/mysqld/mysqld.sock'(2)를 통해 로컬 MySQL 서버에 연결할 수 없습니다 얻을
Sushivam

12
어떤 경우에는, 당신은 또한 실행해야 mkdir /var/run/mysqld하고 chown mysql: /var/run/mysqld1 단계 사이에 2
네빌 Nazerane

9
3 단계는 Ubuntu 18.04에서 작동하지 않았습니다. 방금 sudo mysql
itsols

122

나를 위해 일한 유일한 방법은 여기에 설명 된 방법입니다 (우분투 14.04를 실행 중입니다). 명확성을 기하기 위해 다음 단계는 다음과 같습니다.

  1. sudo vim /etc/mysql/my.cnf
  2. 끝에 다음 줄을 추가하십시오.

    [mysqld]
    
    스킵 그랜트 테이블
  3. sudo service mysql restart

  4. mysql -u root

  5. use mysql

  6. select * from mysql.user where user = 'root';-상단을보고 비밀번호 열이 password 또는 authentication_string 인지 확인하십시오.

  7. UPDATE mysql.user set *password_field from above* = PASSWORD('your_new_password') where user = 'root' and host = 'localhost'; -위에서 올바른 비밀번호 열을 사용하십시오.

  8. FLUSH PRIVILEGES;

  9. exit

  10. sudo vim /etc/mysql/my.cnf

  11. 보안 표준을 유지하려면 2 단계에서 추가 한 라인을 제거하십시오 .

  12. sudo service mysql restart

참조 : https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html


8
마침내 이것은 나를 위해 일했습니다! 우분투 16.04에서 MySQL 5.7.18을 실행 중입니다. dpkg-reconfigure, Anvesh의 답변, Christian Mark의 답변 및 MySQL의 도움말 페이지에 대한 지침까지 시도했습니다.
mbuc91

9
UPDATE mysql.user SET authentication_string = PASSWORD ( 'newpwd') WHERE User = 'root';를 실행해야했습니다. 대신 5 행.
mbuc91

2
나를 위해 일한 유일한 솔루션. 우분투 17.04가 및 5.7에는 mysql
모하메드

1
슬픈 이것은 나를 위해 작동하지 않습니다 mysql 5.7.22 ubuntu 18.04
Mario

1
모든 것이 예상대로 작동했습니다. 그러나 로그인 할 때 암호 입력 : ERROR 1698 (28000) : 사용자 'root'@ 'localhost'에 대한 액세스가 거부되었습니다.
Dipak Chatterjee

101

우분투 서버에서 루트 암호를 재설정하는 공식적이고 쉬운 방법 ...

16.04, 14.04, 12.04 인 경우 :

sudo dpkg-reconfigure mysql-server-5.5

10.04 인 경우 :

sudo dpkg-reconfigure mysql-server-5.1

어떤 mysql-server 버전이 설치되어 있는지 잘 모르는 경우 다음을 시도해보십시오.

dpkg --get-selections | grep mysql-server

mysql-server-5.7에 대한 업데이트 된 노트

mysql-server-5.7을 사용하는 경우 위에 표시된 쉬운 dpkg-reconfigure 방법을 사용할 수 없습니다.

비밀번호를 알고 있으면 로그인하여 다음을 실행하십시오.

UPDATE mysql.user SET authentication_string=PASSWORD('my-new-password') WHERE USER='root';
FLUSH PRIVILEGES;

또는 다음을 사용할 수 있습니다.

sudo mysql_secure_installation

새 루트 암호를 제공하려는 경우를 포함하여 설치 보안 (권장)에 관한 일련의 질문을합니다.

루트 암호를 모르는 경우 프로세스에 대한이 우분투 중심 쓰기를 참조하십시오 .

자세한 내용은 다음을 참조하십시오.

https://help.ubuntu.com/16.04/serverguide/mysql.html https://help.ubuntu.com/14.04/serverguide/mysql.html


3
원래 MySQL 루트 암호를 잊어 버린 경우에도 작동합니다.
tanius

4
호환Ver 14.14 Distrib 5.5.38, for debian-linux-gnu
justinpage

mysql v 5.0과 함께 작업 ...sudo dpkg-reconfigure mysql-server-5.0
dsghi

4
sudo dpkg-reconfigure mysql-server-5.7은 루트 암호 재설정을 위해 Ubuntu 18.04에서 작동하지 않습니다. 다른 대안이 있습니까?
Jagdeep Singh

우분투 :sudo dpkg-reconfigure mysql-server-5.7; sudo mysql_secure_installation
kenorb

77

나를 위해 일한 것 (Ubuntu 16.04, mysql 5.7) :

MySQL 중지

sudo service mysql stop

MySQL 서비스 디렉토리를 만듭니다.

sudo mkdir /var/run/mysqld

MySQL 사용자에게 서비스 디렉토리에 쓸 수있는 권한을 부여하십시오.

sudo chown mysql: /var/run/mysqld

권한 확인이나 네트워킹없이 MySQL을 수동으로 시작하십시오.

sudo mysqld_safe --skip-grant-tables --skip-networking &

다른 콘솔에서 비밀번호없이 로그인하십시오.

mysql -uroot mysql

그때:

UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
EXIT;

MySQL을 끄십시오.

sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

MySQL 서비스를 정상적으로 시작하십시오.

sudo service mysql start

다른 방법은 저에게 효과가 없었지만 (감사합니다!) 또는 rricketts.com/reset-root-password-mysql-5-7-ubuntu-16-04-lts
Dung

10
굉장히 유용하다 ! 필자의 경우 (Ubuntu 18.04 LTS) 호스트 '%'를 'localhost'로 교체해야했습니다.
FredericK

우분투 18.04에서는 작동하지 않았습니다. 그러나 여기에 설명 된이 작은 변화로 작동했습니다. stackoverflow.com/a/53385753/1591143
Aleksandar Popovic

76

Linux Ubuntu에서 MySQL 비밀번호를 재설정하는 단계별 최종 솔루션을 공유하고 있습니다.

블로그 (dbrnd.com)에서 가져온 참조

1 단계 : MySQL 서비스를 중지합니다.

sudo stop mysql

2 단계 : 실행중인 모든 mysqld를 종료합니다.

sudo killall -9 mysqld

3 단계 : 안전 모드에서 mysqld 시작

sudo mysqld_safe --skip-grant-tables --skip-networking &

4 단계 : MySQL 클라이언트 시작

mysql -u root

5 단계 : 로그인에 성공하면이 명령을 실행하여 비밀번호를 변경하십시오.

FLUSH PRIVILEGES;

6 단계 : mysql 루트 비밀번호를 업데이트 할 수 있습니다.

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

참고 : MySQL 5.7에서는 열 Password이 호출 authentication_string됩니다.

7 단계 :이 명령을 실행하십시오.

FLUSH PRIVILEGES;

과연. 또한 공식 문서에 더 가깝습니다 . "오류 1524 (HY000) : 플러그인 'auth_socket'이 (가)로드되지 않았습니다"가 표시되는 경우 stackoverflow.com/questions/37879448/…를 참조하십시오.
Wtower

또한 호스트가 'localhost'인 루트 사용자에 대해 mysql.user.plugin을 'auth_socket'에서 'mysql_native_password'로 변경해야했습니다.
Brandon

1
"sudo /etc/init.d/mysql stop"을 사용하여 서비스를 중지하고 "update mysql.user SET authentication_string = PASSWORD ( 'newpwd') WHERE User = 'root';" 비밀번호 업데이트
L Bahr

1
인증 된 _string
도움말

42

우분투 18.04 및 mysql 5.7에서 문제가 발생했습니다. 이것이 해결책입니다.

comands를 실행하기 전에 mysql-server를 다시 시작하십시오.

sudo service mysql restart

MYSQL-SERVER> = 5.7

sudo mysql -uroot -p
USE mysql;
UPDATE user SET authentication_string=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;

MYSQL- 서버 <5.7

sudo mysql -uroot -p
USE mysql;
UPDATE user SET password=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;

1
고마워, 나는 또한 우분투 18.04를 여기에서 실행하고 있으며 MYSQL-SERVER >= 5.7버전은 실제로 문제를 해결 한 유일한 것
Miguelgraz

1
이것은 Ubuntu 18.04 mysql 설치에서 작동 한 것입니다. MYSQL-SERVER >= 5.7정확한 버전입니다.
Sathish Manohar

34

MySQL 루트 비밀번호를 변경하십시오.

이 메소드는 비밀번호를 명령 행 히스토리에 노출하므로이 명령은 루트로 실행해야합니다.

  1. mysql 명령 줄 도구를 통해 로그인하십시오.

    mysql -uroot -poldpassword
  2. 이 명령을 실행하십시오 :

    SET PASSWORD FOR root@'localhost' = PASSWORD('newpassword');

또는

  1. 현재 사용자의 비밀번호 (이 경우 'root')를 설정하는이 명령을 실행하십시오.

    비밀번호 설정 = 비밀번호 ( 'newpassword');


26

처음에는 다음 명령을 실행하십시오.

sudo mysql

그런 다음 MySQL 사용자 계정의 어떤 인증 방법을 사용하는지 확인해야합니다.

SELECT user,authentication_string,plugin,host FROM mysql.user;

이제 다음과 같은 것을 이미 볼 수 있습니다.

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

위의 표에서 모든 mysql 사용자 계정 상태를 확인할 수 있습니다 . mysql_native_password대신 플러그인 열에 표시되기 전에 루트 계정의 비밀번호를 설정 한 경우 auth_socket. 루트 암호를 변경하려면 다음을 실행하십시오.

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

비밀번호를 원하는 비밀번호로 변경하십시오. 그런 다음 서버를 새로 고침하여 새 변경 사항을 적용하십시오.

FLUSH PRIVILEGES;

따라서 다음 명령으로 mysql에서 사용한 인증 방법을 다시 확인하십시오.

SELECT user,authentication_string,plugin,host FROM mysql.user;

이제 출력은 다음과 같습니다.

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+

그랜트 테이블에서 볼 수 있듯이 루트 계정은 mysql_native_password 있습니다. 이제 MYSQL 셸을 종료 할 수 있습니다

exit;

바로 mysql을 다시 시작해야합니다 sudo service mysql restart. 이제 비밀번호를 사용하여 mysql에 루트 계정으로 로그인 할 수 있습니다.


나는 이것이 유일한 해결책은 우분투 버추얼 박스에서 실행 18.04에 나를 위해 일이었다 디지털 오션에서 생각
케말

그것은 우분투 18.04에서 완벽하게 작동합니다. 감사.
mahfuz

12

MySQL 루트 비밀번호를 변경하려면 터미널에 다음을 입력하십시오.

sudo dpkg-reconfigure mysql-server-5.5

MySQL 데몬이 중지되고 새 비밀번호를 입력하라는 메시지가 표시됩니다.


1
이것은 훨씬 더 좋은 방법입니다. mysql 오류로 인해 이전 명령을 실행할 수 없었습니다.
Andy

sudo는 때 dpkg-재구성 MySQL의 서버 - 5.7 우분투 16.04
닉 바렛

2
sudo dpkg-reconfigure mysql-server-5.7Ubuntu 16.04에서 실행했는데 새 비밀번호를 입력하라는 메시지가 표시되지 않았습니다.
Franck Dernoncourt

이 말한다면 mysql-server is broken or not fully installed, 하나는 사용할 수 있습니다 sudo apt purge mysql*sudo apt install mysql-server
파벨

12

이것은 우분투 16.04에 대한 매력처럼 작동합니다. 내가 거기에서 얻었을 때 아래 링크에 대한 완전한 크레딧. [ https://coderwall.com/p/j9btlg/reset-the-mysql-5-7-root-password-in-ubuntu-16-04-lts][1]

MySQL 중지

sudo service mysql stop

MySQL 서비스 디렉토리를 만듭니다. sudo mkdir / var / run / mysqld

MySQL 사용자에게 서비스 디렉토리에 쓸 수있는 권한을 부여하십시오.

sudo chown mysql: /var/run/mysqld

권한 확인이나 네트워킹없이 MySQL을 수동으로 시작하십시오.

sudo mysqld_safe --skip-grant-tables --skip-networking &

비밀번호없이 로그인하십시오.

mysql -uroot mysql

루트 사용자의 비밀번호를 업데이트하십시오. atleast root 계정이 아래 쿼리에 의해 업데이트되는지 확인하십시오. 원하는 경우 선택하고 기존 값을 확인하십시오.

UPDATE mysql.user SET 
authentication_string=PASSWORD('YOURNEWPASSWORD'), 
plugin='mysql_native_password' WHERE User='root';
EXIT;

MySQL을 끄십시오.

sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

MySQL 서비스를 정상적으로 시작하십시오.

sudo service mysql start

11
  1. MySQL sudo 서비스 중지 mysql stop

  2. MySQL 서비스 디렉토리를 만듭니다. sudo mkdir / var / run / mysqld

  3. MySQL 사용자에게 서비스 디렉토리에 쓸 수있는 권한을 부여하십시오. sudo chown mysql : / var / run / mysqld

  4. 권한 확인이나 네트워킹없이 MySQL을 수동으로 시작하십시오. sudo mysqld_safe --skip-grant-tables --skip- 네트워킹 &

5. 비밀번호없이 로그인하십시오. mysql -uroot mysql

6. 루트 사용자의 비밀번호를 업데이트하십시오.

업데이트 mysql.user SET authentication_string = PASSWORD ( 'YOURNEWPASSWORD'), plugin = 'mysql_native_password'WHERE User = 'root'AND Host = '%'; 출구;

  1. MySQL을 끕니다. sudo mysqladmin -S /var/run/mysqld/mysqld.sock 종료

  2. MySQL 서비스를 정상적으로 시작하십시오. sudo 서비스 mysql 시작


1
안녕하세요,이 답변은 저에게 효과적이지만, 다른 명령을 사용해야했습니다 : UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';without AND Host='%'. 감사!
David Corral

10

이 솔루션은 이전 버전의 MySQL에 속합니다. 소켓 인증을 사용하여 MySQL에 로그인하면 가능합니다.

sudo mysql -u root

그런 다음 다음 명령을 실행할 수 있습니다.

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

자세한 내용은 여기를 참조하십시오 .


1
로그인 할 수는 sudo mysql -u root없었지만 명령을 sudo mysql실행할 수있었습니다 ALTER USER.
itsols

이 오류가 발생했습니다 : "암호가 현재 정책 요구 사항을 충족하지 않습니다". 나는 이것을 여기에서 고칠 수 있었다 : stackoverflow.com/a/43094873/9073437 . 수정 된 비밀번호 정책을 설정 한 후 모든 것이 제대로 작동했습니다.
그랜드 투어

10

이것이 나를위한 해결책입니다. 우분투 18.04에서 일합니다 : https://stackoverflow.com/a/46076838/2400373

그러나 마지막 단계에서이 변경이 중요합니다.

UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost'; 

어이! 고마워요! 이것이 내 경우에 효과가 있었던 유일한 방법입니다. Linux / Ubuntu가 안전을 인식하는 사용자를위한 것이라면 MySQL 서버와 같은 중요한 응용 프로그램을 보호하기가 어려운 이유는 무엇입니까? ?
토마스 어반

7

Ubuntu 18.04 및 mysql 버전 14.14 Distrib 5.7.22의 경우 아래 단계에 따라 mysql 비밀번호를 재설정하십시오.

1 단계

sudo systemctl stop mysql

2 단계

sudo systemctl edit mysql

이 명령은 nano 편집기에서 새 파일을 열고 MySQL의 서비스 재정의를 편집하는 데 사용합니다. 이것들은 MySQL의 기본 서비스 매개 변수를 변경합니다. 이 파일은 비어 있으므로 다음 내용을 추가하십시오.

[Service]
ExecStart=
ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid --skip-grant-tables --skip-networking

3 단계

sudo systemctl daemon-reload
sudo systemctl start mysql

4 단계

sudo mysql -u root

5 단계

FLUSH PRIVILEGES;

6 단계

UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHEREuser = 'root';

7 단계

UPDATE mysql.user SET plugin ='mysql_native_password' WHERE user = 'root';

8 단계

sudo systemctl revert mysql

그리고 마지막으로

sudo systemctl restart mysql

이제 즐기세요


2 단계에서 내용을 놓친 것 같습니다. 불완전합니다.
루카스 멘데스 모타 다 폰세카

6

rogerdpack의 의견 에코 : MySQL 루트 비밀번호를 모르고 MySQL 데이터 / 설정에 관심이없는 경우 다음과 같이 다시 설치하고 루트 비밀번호를 재설정 할 수 있습니다.

sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo rm -rf /var/lib/mysql
sudo apt-get install -y mysql-server mysql-client 

설치 중에 루트 비밀번호를 선택할 수 있습니다.

여기에 이미지 설명을 입력하십시오


2
암호를 재설정하려고 할 때 머리를 두드리는 데 시간을 낭비하지 않고 여기에서 시작했으면 좋겠습니다.
Eric Seastrand

3

현재 비밀번호를 알고 있다면 mysql 서버를 중지하지 않아도됩니다. 우분투 터미널을 엽니 다. 다음을 사용하여 mysql에 로그인하십시오.

mysql - username -p

그런 다음 비밀번호를 입력하십시오. mysql 콘솔로 이동합니다. 콘솔 안에 다음을 입력하십시오.

> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

그런 다음 다음을 사용하여 권한을 플러시하십시오.

> flush privileges;

그런 다음 모두 끝났습니다.


2

PASSWORD()비밀번호를 변경하려는 시스템에서 MySQL을 사용 하는 경우 비밀번호가 일반 텍스트 [ source ] 로 MySQL 로그에 표시 될 수 있습니다 . 암호와 같은 보안, 백업 등을 유지하는 것은 나에게 악몽처럼 들리므로 다음과 같이하고 싶습니다.

  1. 당신에 지역 기계, 비밀번호로 이것을 실행 :

     mysql -u someuser -p < <(echo "SELECT PASSWORD('mypass');")

    bash 히스토리에서 공간이 켜지지 않도록 앞의 ​​공간을 참고하십시오 (Ubuntu 이외의 다른 배포판의 경우 소스가 다르게 작동 할 수 있음 ).

  2. 서버 시스템에서 다음 명령을 실행하여 MySQL 루트 비밀번호를 변경 myhash하십시오 (첫 번째 명령으로 인쇄 된 비밀번호 해시로 대체 ).

    mysql -u root -p < <(echo "SET PASSWORD FOR root@localhost = 'myhash';")
  3. 선택적으로 약간의 편집증을 보자. 로컬 컴퓨터에서 터미널 화면을 지우고 clear가상 터미널 스크롤 백을 제거하여 위 명령에 나타나는 일반 텍스트 암호를 숨기십시오.


2

"루트"MySQL 사용자 비밀번호를 업데이트하려면 그에 대한 수퍼 유저 권한이 필요하다는 점을 명심해야합니다. 수퍼 유저 권한이있는 경우 다음 명령을 시도하십시오.

MySQL 5.7.6 이상

sudo su
service mysql stop
mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
\q;
exit
mysql -u root -p MyNewPass

MySQL 5.7.5 이하

sudo su
service mysql stop
mysql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
\q;
exit
mysql -u root -p MyNewPass

2

이 모든 것이 필요하지 않습니다. 간단히 로그인하십시오 :

mysql -u root -p

그런 다음 mysql>프롬프트 로 현재 사용자의 비밀번호를 변경하십시오 .

mysql> set password=password('the_new_password');
mysql> flush privileges;

1
이것은 가장 간단한 방법입니다! 그것은 MySQL의 5.7.21-0ubuntu0.17.10.1 나를 위해 일
세르지오 Belevskij을

2

이 주제에 대한 대부분의 답변은 구식입니다. 이 답변을 작성할 때까지 MySQL에서 두 가지 주요 변경 사항이 발생했습니다.

1- 사용자 테이블의 '비밀번호'필드가 'authentication_string'열로 대체되었습니다.

2- '비밀번호'암호화 기능 : 비밀번호 ( "일부 텍스트")는 더 이상 사용되지 않습니다.

자세한 내용은이 링크를 참조하십시오 : dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html


1

phpmyadmin비밀번호 또는 사용자 이름을 제공하지 않고 연결하도록 설정 한 경우 비밀번호를 재설정하는 대신 로컬 시스템에 대한 해결 방법 이 있습니다. 시작하여이 체크 아웃 mysql, apache내가 한 등 xampp내 로컬 컴퓨터에 설치되어 있어야합니다. 따라서 xampp를 시작하면 필요한 모든 서비스가 시작됩니다. 이제 http://localhost/phpmyadmin모든 데이터베이스 를 보여 드리겠습니다. phpmyadmin설치 위치 에서 찾을 수있는 phpmyadmin의 구성 파일에 사용자 이름과 암호를 저장했음을 확인합니다 . xampp설치 한 phpmyadmin폴더 는 설치 루트 폴더에 xampp있습니다. 파일 에서 단어 password를 검색 config.inc.php하십시오. 거기에서 password 및 을 찾을 수 있습니다 username.


1

제공된 phpadmin gui를 통해 xampp에 배포 된 경우 mysql 비밀번호를 쉽게 변경할 수 있습니다.

phpMyAdmin -> User Accounts -> Edit Privileges (Select the intended user) -> Change Password (Tab)

1

mysql 5.6의 경우이 명령이 작동하며 마법사를 통해 비밀번호를 설정할 수 있습니다.

sudo dpkg-reconfigure mysql-server-5.6

시도했지만 작동하지 않습니다.이 오류가 발생합니다. 도와 주시겠습니까? 이 MySQL 설치는 이미 5.7.21로 업그레이드되었습니다. mysql_upgrade를 실행해야하는 경우 --force를 사용하십시오
Vijaysinh Parmar

1

mysql 5.7 루트 암호를 재설정하려면 다음 단계를 시도하십시오.

MySQL 서비스 중지 1

sudo /etc/init.d/mysql stop 

비밀번호없이 루트로 로그인 sudo mysqld_safe --skip-grant-tables &

mysql 터미널에 로그인 한 후 명령을 더 실행해야합니다.

use mysql;




UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';


flush privileges;


sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown

mysql 서버를 다시 시작한 후에도 여전히 오류가 발생하면 다음을 방문해야합니다 : Reset MySQL 5.7 root password Ubuntu 16.04


1

이 명령을 사용할 수 있습니다 :

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

그 후 플러시를 사용하십시오 :

FLUSH PRIVILEGES;

1

MySQL 비밀번호 설정

  1. MySQL 데이터베이스 서비스 중지

sudo /etc/init.d/mysql 중지

  1. 새로운 mysqld 디렉토리를 만든다

sudo mkdir / var / run / mysqld /

  1. mysql 사용자에게 액세스 권한 부여

sudo chown mysql / var / run / mysqld /

  1. 안전 모드에서 MySQL을 시작하십시오 ...

sudo mysqld_safe --skip-grant-tables &

  1. 비밀번호없이 데이터베이스 서버에 로그온

sudo mysql -u 루트

  1. 기본 mysql 데이터베이스를 사용하십시오.

mysql을 사용하십시오.

  1. 루트 비밀번호 변경

update user set authentication_string=PASSWORD("New_Passwore_Here") where 사용자 = 'root';

  1. 변경 사항을 저장하십시오

    플러시 권한; 출구;

  2. MySQL safe_mode를 중지하고 MySQL 기본 서비스를 시작하십시오.

sudo /etc/init.d/mysql 중지

sudo /etc/init.d/mysql 시작

  1. 루트 새 비밀번호를 사용하여 MySQL 데이터베이스에 다시 로그온

sudo mysql -u 루트 -p

*** 출처 : https://websiteforstudents.com/resetting-mysql-root-password-on-ubuntu-16-04-17-10-and-18-04-lts/


1

'루트'사용자 비밀번호를 알고 있다면 해당 자격 증명으로 mysql에 로그인하십시오. 그런 다음 다음 쿼리를 실행하여 비밀번호를 업데이트하십시오.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_passowrd';

0

MySQL 비밀번호를 변경 / 재설정 할 때 위에 나열된 다음 명령이 도움이되지 않았습니다. 터미널에 들어가서이 명령을 사용하는 것이 의미가 없다는 것을 알았습니다. 대신 sudo stop all 명령을 사용하십시오. 도움이된다면 Windows 용 SYSTEM 32를 삭제하십시오.


1
문제는 ubuntu윈도우가 아닌 OS 에 관한 것 입니다. Windows 용 DELETE SYSTEM 32은 무슨 뜻 입니까?
EhsanT

0

비밀번호를 재설정하거나 변경하려면 sudo dpkg-reconfigure mysql-server-X.X(XX는 5.6, 5.7을 설치 한 mysql 버전 임) 입력 한 다음 새 비밀번호를 설정해야하는 화면을 표시 한 후 다음 단계에서 비밀번호를 확인하고 잠시 기다리십시오. 그게 다야.


0

우분투 16.04.1 LTS 에서이 길을 가야했습니다. 위의 다른 답변 중 일부가 혼합되어 있지만 어느 것도 도움이되지 않았습니다. MySql 웹 사이트에서 모든 것에 이르기까지 다른 제안을 모두 한 시간 이상 시도했지만 마침내 작업했습니다.

참고 : 사용자 루트의 비밀번호 입력을 표시했지만 원래 비밀번호가 없으므로 동일한 비밀번호를 새 비밀번호로 사용하십시오.

참고 : /var/log/mysqld.log 만 없었습니다. /var/log/mysql/error.log

또한이 기능이 작동하지 않습니다 . MySQL 서비스 디렉토리
sudo dpkg-reconfigure mysql-server-5.7

도 만들지 않았습니다
sudo dpkg-reconfigure --force mysql-server-5.5

.
sudo mkdir /var/run/mysqld

MySQL 사용자에게 서비스 디렉토리에 쓸 수있는 권한을 부여하십시오.
sudo chown mysql: /var/run/mysqld

그때:

  1. 현재 mysqld pid를 죽인다
  2. sudo / usr / sbin / mysqld &로 mysqld를 실행하십시오.
  3. / usr / bin / mysql_secure_installation을 실행하십시오. mysql_secure_installation의

    출력

    root @ my 서버 : ~ # / usr / bin / mysql_secure_installation

    MySQL 서버 배포 보안

    사용자 루트의 비밀번호를 입력하십시오.

    VALIDATE PASSWORD PLUGIN을 사용하여 비밀번호를 테스트하고 보안을 향상시킬 수 있습니다. 암호의 강도를 확인하고 사용자는 충분히 안전한 암호 만 설정할 수 있습니다. VALIDATE PASSWORD 플러그인을 설정 하시겠습니까?

    y의 경우 y | Y를 누르고, 아니오의 다른 키를 : no 기존 암호를 루트로 사용하십시오. root의 비밀번호를 변경 하시겠습니까? ((예 : y | Y, 예 : 다른 키) : y

    새 비밀번호:

    새 비밀번호 재 입력 : 기본적으로 MySQL 설치에는 익명의 사용자가 있으므로 누구나 사용자 계정을 만들지 않고도 MySQL에 로그인 할 수 있습니다. 이것은 테스트 용이며 설치를 좀 더 부드럽게하기위한 것입니다. 프로덕션 환경으로 이동하기 전에 제거해야합니다.

    익명 사용자를 제거 하시겠습니까? (예 : y | Y, 아니오 : 다른 키) : y 성공.

    일반적으로 root는 'localhost'에서만 연결할 수 있어야합니다. 이렇게하면 누군가 네트워크에서 루트 암호를 추측 할 수 없습니다.

    원격으로 루트 로그인을 허용하지 않습니까? (예 : y | Y, 아니오 : 다른 키) : y 성공.

    기본적으로 MySQL에는 누구나 액세스 할 수있는 'test'라는 데이터베이스가 제공됩니다. 이것은 테스트 용으로 만 사용되며 프로덕션 환경으로 이동하기 전에 제거해야합니다.

    테스트 데이터베이스를 제거하고 액세스 하시겠습니까? (예 : y | Y, 아니오 : 다른 키) : y

    • 테스트 데이터베이스를 삭제하는 중 ... 성공

    • 테스트 데이터베이스에서 권한을 제거하는 중 ... 성공.

    권한 테이블을 다시로드하면 지금까지의 모든 변경 사항이 즉시 적용됩니다.

    지금 권한 테이블을 다시로드 하시겠습니까? (예 : y | Y, 아니오 : 다른 키) : y 성공.

    다 했어요!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.