Programing

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

lottogame 2020. 6. 2. 21:19
반응형

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


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

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


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. 루트로 MySQL에 로그인하십시오. mysql -u root mysql

  4. 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. 루트 비밀번호를 재설정하는 방법

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

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


나를 위해 일한 유일한 방법은 여기에 설명 된 방법입니다 (우분투 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


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;

나를 위해 일한 것 (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

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

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

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

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

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

또는

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

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


우분투 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;

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

sudo dpkg-reconfigure mysql-server-5.5

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


이것은 우분투 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

  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 시작


이것이 나를위한 해결책입니다. 우분투 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'; 

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

sudo mysql -u root

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

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

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


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 

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

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


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

이제 즐기세요


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

mysql - username -p

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

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

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

> flush privileges;

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


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가상 터미널 스크롤 백을 제거하여 위 명령에 나타나는 일반 텍스트 암호를 숨기십시오.


"루트"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

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

mysql -u root -p

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

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

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


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

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

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

sudo dpkg-reconfigure mysql-server-5.6

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


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

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

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

FLUSH PRIVILEGES;

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. logon to the database server without a password

sudo mysql -u root

  1. use the default mysql database

use mysql;

  1. change the root password

update user set authentication_string=PASSWORD("New_Passwore_Here") where User='root';

  1. Save the changes

    flush privileges; exit;

  2. stop MySQL safe_mode and start MySQL default service

sudo /etc/init.d/mysql stop

sudo /etc/init.d/mysql start

  1. log back onto MySQL database using the root new password

sudo mysql -u root -p

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


when changing/resetting the MySQL password the following commands listed above did not help. I found that going into the terminal and using these commands is pointless. instead use the command sudo stop everything. DELETE SYSTEM 32 for windows if that helps.


To reset or change the password enter sudo dpkg-reconfigure mysql-server-X.X (X.X is mysql version you have installed i.e. 5.6, 5.7) and then you will prompt a screen where you have to set the new password and then in next step confirm the password and just wait for a moment. That's it.


I had to go this route on Ubuntu 16.04.1 LTS. It is somewhat of a mix of some of the other answers above - but none of them helped. I spent an hour or more trying all other suggestions from MySql website to everything on SO, I finally got it working with:

Note: while it showed Enter password for user root, I didnt have the original password so I just entered the same password to be used as the new password.

Note: there was no /var/log/mysqld.log only /var/log/mysql/error.log

Also note this did not work for me:
sudo dpkg-reconfigure mysql-server-5.7

Nor did:
sudo dpkg-reconfigure --force mysql-server-5.5

Make MySQL service directory.
sudo mkdir /var/run/mysqld

Give MySQL user permission to write to the service directory.
sudo chown mysql: /var/run/mysqld

Then:

  1. kill the current mysqld pid
  2. run mysqld with sudo /usr/sbin/mysqld &
  3. run /usr/bin/mysql_secure_installation

    Output from mysql_secure_installation

    root@myServer:~# /usr/bin/mysql_secure_installation

    Securing the MySQL server deployment.

    Enter password for user root:

    VALIDATE PASSWORD PLUGIN can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD plugin?

    Press y|Y for Yes, any other key for No: no Using existing password for root. Change the password for root ? ((Press y|Y for Yes, any other key for No) : y

    New password:

    Re-enter new password: By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment.

    Remove anonymous users? (Press y|Y for Yes, any other key for No) : y Success.

    Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network.

    Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y Success.

    By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment.

    Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y

    • Dropping test database... Success.

    • Removing privileges on test database... Success.

    Reloading the privilege tables will ensure that all changes made so far will take effect immediately.

    Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y Success.

    All done!


As mysql documentation on the password() function says:

This function was removed in MySQL 8.0.11.

This invalidates pretty much all existing answers for mysql v8.0.11 and newer.

Per mysql documentation the new generic way to reset the root password is as follows:

The preceding sections provide password-resetting instructions specifically for Windows and Unix and Unix-like systems. Alternatively, on any platform, you can reset the password using the mysql client (but this approach is less secure):

Stop the MySQL server if necessary, then restart it with the --skip-grant-tables option. This enables anyone to connect without a password and with all privileges, and disables account-management statements such as ALTER USER and SET PASSWORD. Because this is insecure, if the server is started with the --skip-grant-tables option, it enables --skip-networking automatically to prevent remote connections.

Connect to the MySQL server using the mysql client; no password is necessary because the server was started with --skip-grant-tables:

shell> mysql

In the mysql client, tell the server to reload the grant tables so that account-management statements work:

mysql> FLUSH PRIVILEGES;

Then change the 'root'@'localhost' account password. Replace the password with the password that you want to use. To change the password for a root account with a different host name part, modify the instructions to use that host name.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

You should now be able to connect to the MySQL server as root using the new password. Stop the server and restart it normally (without the --skip-grant-tables and --skip-networking options).


Change the MySQL root password. In Simpler way

All these commands should be run as root.

Login through MySQL command line tool using your old password:

Step-1

mysql -uroot -p"your_old_password"

Then run below command:

Step-2

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

Method-2 (First login using your old password using above command)

현재 사용자의 비밀번호를 설정하는이 명령을 실행하십시오.

SET PASSWORD = PASSWORD('your_new_password');

위 명령은 현재 사용자를위한 것입니다. 다른 사용자의 비밀번호를 변경하려면 "root" 대신 사용자 이름을 입력하십시오 .


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

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

참고 URL : https://stackoverflow.com/questions/16556497/how-to-reset-or-change-the-mysql-root-password

반응형