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.