code

임시 비밀번호를 자동으로 생성 한 후 MySQL에 액세스 할 수 없습니다.

codestyles 2020. 11. 19. 08:14
반응형

임시 비밀번호를 자동으로 생성 한 후 MySQL에 액세스 할 수 없습니다.


나는 삭제하고 설치 한 OSX 10.11 El Capitan난을 통해 다음과 같은 한 이 튜토리얼 얻기 위해 MySQL첫 번째 단계는 다운로드하는 것이 었까지 새로운 OS X를 실행하는 MySQL의 맥 OS X 10.9 (x86, 64 비트), DMG 아카이브 10.11에 (작품 , 그들은 튜토리얼에서 권장). MySQL 설치를 마치는 동안 다음과 같은 메시지를 받았습니다.

2015-10-25T02:10:54.549219Z 1 [Note] A temporary password is generated for root@localhost: R>gFySuiu23U

If you lose this password, please consult the section How to Reset the Root Password in the MySQL reference manual.

이상했습니다. 그런 메시지를 본 적이 없습니다. 그 후 Preference Pane을 통해 MySQL을 시작한 다음 /usr/local/mysql/bin/mysql -v터미널에서 명령 을 사용 하여 다른 단계를 수행했습니다. 다음과 같은 오류 메시지가 나타납니다.

ERROR 1045 (28000): Access denied for user 'cheetah'@'localhost' (using password: NO)

또한 Sequel Pro루트를 사용자 이름과 빈 암호로 사용하여 데이터베이스에 액세스하려고 시도했지만 다음 과 같은 액세스 거부 메시지가 나타납니다.

Unable to connect to host 127.0.0.1 because access was denied.

Double-check your username and password and ensure that access from your current location is permitted.

MySQL said: Access denied for user 'root'@'localhost' (using password: NO)

좋아요, 저는 또한 root를 사용자 이름으로 사용하고 'R> gFySuiu23U'를 암호로 사용하여 다시 시도했습니다 (MySQL에서 생성됨). 다음과 같은 연결 실패 메시지가 표시됩니다.

Unable to connect to host 127.0.0.1, or the request timed out.

Be sure that the address is correct and that you have the necessary privileges, or try increasing the connection timeout (currently 10 seconds).

MySQL said: Your password has expired. To log in you must change it using a client that supports expired passwords.

이 문제를 어떻게 해결할 수 있습니까? MySQL이 이와 같은 임시 암호를 자동으로 생성 한 적이 없다는 것을 기억합니다. 그렇지 않습니까?


이 시도:

mysql -u root -h 127.0.0.1 -p
Enter password: (enter the random password here)

참조 : https://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization-mysqld.html

그 후 다음을 사용하여 비밀번호를 재설정 할 수 있습니다. ALTER USER 'root'@'localhost' IDENTIFIED BY 'new-password';


이것은 MySql v5.7 (.dmg에서 설치됨)을 실행하는 OS X Yosemite에서 저에게 효과적이었습니다.

cd /usr/local/mysql/bin
./mysql -u root -p --connect-expired-password

(설치 프로그램에서 생성 한 임시 비밀번호를 입력하십시오.)

이렇게하면 샌드 박스 모드mysql>메시지가 표시됩니다. 그런 다음 SET PASSWORD로 원하는 루트 암호를 설정하십시오 .

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

이제 MySQL이 생성 한 암호가 만료되었으므로이 암호를 다시 작동 시키거나 (1) 새 암호를 생성 (2)하는 문제가 줄어 듭니다. 이것은 액세스 권한을 무시하게 만드는 skip-grant-tables 옵션으로 MySQL을 실행하여 수행 할 수 있습니다.

  1. MySQL 서버를 중지하십시오.

  2. my.cnf 파일의 [mysqld] 섹션 끝에 아래를 추가하고 저장합니다.

    skip-grant-tables

  3. MySQL 서버를 시작하십시오.

  4. 터미널에서

    mysql -u root -p

MySQL 명령 프롬프트로 들어가십시오.

  1. 명령 프롬프트에서 다음을 입력하십시오.

    USE mysql;

데이터베이스 사용자를 유지하는 mysql 데이터베이스에 액세스합니다.

  1. 유형

    UPDATE user SET password_expired = 'N' WHERE User = 'root';

비밀번호가 만료되지 않았 음을 MySQL에 알리려면 (1) 또는

UPDATE user SET authentication_string = PASSWORD('YourNewPassword'), password_expired = 'N' WHERE User = 'root';

새 암호 YourNewPassword를 루트 (2)에 할당합니다.


OSX 10.11 El Capitan 및 MySQL 5.7.X에서 이러한 단계를 수행하면 트릭을 수행 할 수 있습니다.

이미 MySQL이 설치되어 있다고 생각하면 ..

터미널 창을 열고 다음을 입력합니다.

  1. sudo /usr/local/mysql/support-files/mysql.server 중지
  2. sudo mysqld_safe --skip-grant-tables

2 단계에서 실행 된 명령은 진행 중 상태이므로 다른 터미널 창을 열고 다음을 입력해야합니다.

  1. mysql -u 루트 -p
  2. 업데이트 mysql.user SET password_expired = 'N', authentication_string = PASSWORD ( '') WHERE User = 'root';
  3. 떠나다;
  4. sudo /usr/local/mysql/support-files/mysql.server restart

중요 : 2 단계에서 비밀번호를 바꿔야합니다.

그것이 당신을 위해 웍이되기를 바랍니다.


MySQL 비밀번호가 만료되었습니다.

비밀번호를 재설정하면 문제가 일시적으로 해결되지만 MySQL 5.7.4에서 5.7.10 (보안 향상을 권장합니다)에서 default_password_lifetime변수 의 기본값 은 360 (약 1 년)입니다. 이러한 버전의 경우이 변수 (또는 개별 사용자 계정)를 변경하지 않으면 모든 사용자 암호가 360 일 후에 만료됩니다.

일반적으로 스크립트에서 "암호가 만료되었습니다. 로그인하려면 만료 된 암호를 지원하는 클라이언트를 사용하여 변경해야합니다."라는 메시지가 표시 될 수 있습니다.

따라서 자동 암호 만료를 방지하려면 루트 ( mysql -u root -p) 로 로그인 한 다음 서버에 자동으로 연결하는 클라이언트 (예 : 스크립트)에 대해 해당 클라이언트의 암호 만료 설정을 변경합니다.

ALTER USER 'script'@'localhost' PASSWORD EXPIRE NEVER;

또는 모든 사용자에 대해 자동 비밀번호 만료를 비활성화 할 수 있습니다 .

SET GLOBAL default_password_lifetime = 0;

연결:

MySQL : 비밀번호 만료 및 샌드 박스 모드
MySQL : 비밀번호 만료 정책
MySQL Server 5.7의 비밀번호 만료 정책


macOS Sierra (10.12.3)를 실행 중이고 mysql-5.7.17-macos10.12-x86_64.dmg를 설치했습니다.

The answer from @lesley worked for me with the exception that I needed to add ./ to ensure I was calling the mysql binary in my current working directory. Which is where the aforementioned package was installed.

If you cd to /usr/local/mysql/bin and run mysql -u root -p --connect-expired-password, you could receive the following error.

mysql: unknown option '--connect-expired-password'

I did. Because simply running mysql without providing a path, called a previously installed version of the MariaDB client.

So to ensure you are executing the correct binary, you can either

provide the absolute path

/usr/local/mysql/bin/mysql -u root -p --connect-expired-password

or the relative path after changing directories

cd /usr/local/mysql/bin
./mysql -u root -p --connect-expired-password

Both ways should work. Once you are connected to the client, the instruction are the same as above from @lesley.

Enter your temporary password generated by the installer and set your new password.

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

I faced the same problem. I followed the installation process guide from https://www.ntu.edu.sg/home/ehchua/programming/sql/MySQL_HowTo.html and downloaded DMG archive and installed MySQL on my MAC OS X 10.12.2.

Finally executed the following commands on new Terminal.

cd /usr/local/mysql/bin

./mysql -u root -p --connect-expired-password

It worked.


Answer 7 worked for me: El capitan, MySQL installed from dmg and autogenerated password, but made sure to cd to /usr/local/bin/mysql before entering ./mysql -root -p Obvious, but I didn't the first time.

Now to find where all my databases and tables are and how to link them in.


For Mysql 5.7 I use

shell $ > sudo grep 'temporary password' /var/log/mysqld.log


This particular one did the trick for me:

As specified in this link: https://www.variphy.com/kb/mac-os-x-reset-mysql-root-password

Do all the steps except executing

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

Execute

    UPDATE mysql.user
    SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N'
    WHERE User = 'root' AND Host = 'localhost';

And then execute FLUSH PRIVILEGES;


The another way to solve this issue is to use an older version of MySQL instead.

I have uninstalled MySQL version 5.7.9 for Mac OS X 10.9 (x86, 64-bit), DMG Archive and then install the older version, MySQL version 5.6.7 for Mac OS X 10.9 (x86, 64-bit), DMG Archive. This issue is solved. The given autogenerated password before finishing installation of this older version is gone and I can ultimately access the database using root as username and a blank password. Everything is working like a charm!


I installed view brew, and I had the same error message until I noticed this caveat:

We've installed your MySQL database without a root password. To secure it run: mysql_secure_installation

To connect run: mysql -uroot

To have launchd start mysql now and restart at login: brew services start mysql

Or, if you don't want/need a background service you can just run: mysql.server start


I got around this problem by running 'mysql -u root -p --connect-expired-password' Then input the expired auto-gen password from mysql. Finally got in. Selected mysql db with 'use mysql' and then updated user 'root' pw with 'ALTER USER 'root'@'localhost' IDENTIFIED BY 'your new password'


Installing MySQL manually by downloading packages for the first time generates a default password for root. Copy and save that. If not done somehow on successive re-installations it does not show that password.

Thus you cannot login to root. Do the following :

  1. Find mysql related entries from system sudo find / -name mysql
  2. Remove all mysql related entries by doing rm -rf <mysql_entries_above>
  3. Download latest mysql-server and intall it.
  4. You will be promted with a default password which you need to copy.
  5. Run mysql_secure_installation and paste that password when asked for root.
  6. Subsequently follow the steps and change admin password when prompted for.

This may happens when you have installed mysql before. Try the password you set for the last version of mysql. This did work for me.

참고URL : https://stackoverflow.com/questions/33326065/unable-to-access-mysql-after-it-automatically-generated-a-temporary-password

반응형