OS X에서 MySQL 루트 사용자 비밀번호 설정


235

방금 Mac OS X에 MySQL을 설치했습니다. 다음 단계는 루트 사용자 암호를 설정하는 것이므로 다음에 수행했습니다.

  1. 터미널 앱을 실행하여 Unix 명령 행에 액세스하십시오.
  2. 유닉스 프롬프트에서 다음 명령을 실행했습니다.

    $ cd /usr/local/mysql/bin
    $ ./mysqladmin -u root password 'password'

그러나 명령을 실행할 때

$ ./mysql -u root, 이것이 답입니다.

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 224
Server version: 5.5.13 MySQL Community Server (GPL)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

mysql암호없이 명령 행에 들어갈 수 있습니다 !

왜 이런거야?

답변:


320

FLUSH PRIVILEGESMySQL 터미널에 로그인 할 때 명령을 시도하십시오 . 그래도 작동하지 않으면 MySQL 터미널에있는 동안 다음 명령 세트를 사용해보십시오.

$ mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET password=PASSWORD("NEWPASSWORD") WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> quit

원하는 비밀번호로 NEWPASSWORD를 변경하십시오. 모두 설정해야합니다!

업데이트 : MySQL 5.7부터 password필드 이름이 변경되었습니다 authentication_string. 비밀번호를 변경할 때 다음 쿼리를 사용하여 비밀번호를 변경하십시오. 다른 모든 명령은 동일하게 유지됩니다.

mysql> UPDATE user SET authentication_string=PASSWORD("NEWPASSWORD") WHERE User='root';

업데이트 : 8.0.15 (이미 해당 버전 이전)에서 아래 설명에 언급 된대로 PASSWORD () 함수가 작동하지 않습니다. 다음을 사용해야합니다.

UPDATE mysql.user SET authentication_string='password' WHERE User='root';


24
MySQL 5.7부터는 열 이름이 변경되었습니다. UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';대신 사용해야 합니다.
Carlos P

고마워요 이에 따라 반영하도록 답변을 편집하겠습니다.
Scott

8
또한 PASSWORD () 함수는 더 이상 사용되지 않는 것처럼 보이며 'password'평등의 오른쪽에
kvn

6
그래도 로그인 할 수 없으면 어떻게 도움이됩니까?
Jake N

11
이 단계를 수행 한 후 새 비밀번호로 다시 로그인을 시도하면ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Þaw

197

root로 설정 한 비밀번호를 기억하지 못하고 재설정해야하는 경우 다음 단계를 수행하십시오.

  1. mysqld 서버를 중지하십시오. 설치마다 다릅니다.
  2. 권한 우회를 사용하여 안전 모드에서 서버를 실행하십시오.

sudo mysqld_safe --skip-grant-tables;

  1. 새 창에서 데이터베이스에 연결하고 새 비밀번호를 설정하고 권한을 플러시하고 종료하십시오.

mysql -u root

MySQL 5.7보다 오래된 MySQL의 경우 다음을 사용하십시오.

UPDATE mysql.user SET Password=PASSWORD('your-password') WHERE User='root';

MySQL 5.7+의 경우 :

USE mysql;

UPDATE mysql.user SET authentication_string=PASSWORD("your-password") WHERE User='root';

새로 고침 및 종료 :

FLUSH PRIVILEGES;

\q

  1. 안전 모드 서버를 중지하고 일반 서버를 다시 시작하십시오. 새 비밀번호가 이제 작동합니다. 나를 위해 매력처럼 일했다 :)

4
정말 고마워요! Mac OSx Mavericks (2014)에서는 sudo / Library / StartupItems / MySQLCOM / MySQLCOM stop | start | restart
Chris Adams

2
passwordauthentication_string지금 있어야합니다 .
zx1986

MySQL 5.7 이후에는 UPDATE user SET authentication_string=PASSWORD("NEWPASSWORD") WHERE User='root';@Scott이 말한 것처럼 이어야합니다 .
zx1986

감사합니다.
radtek

1
에서라도에서 MySQL은 "기본 설정"창 "옵션으로 설치되어있는 경우 (Apple 메뉴 -> 시스템 환경 설정 ...)., 난 내가 먼저 위의 단계를 완료 1로 환경 설정 패널을 사용하여 정지 MySQL로 남겼 사용 sudo kill하지 않았다 맥 OSX 등의 작업이 자동으로 즉시 새로운은 mSQL을 다시 시작 것 I는 환경 설정 창을 사용하여 MySQL을 중지하면, 내가 수동으로 실행할 수 있습니다.mysqld_safe --skip-grant-tables
toddcscar

85

MySQL을 설치 한 후에는 "루트"비밀번호를 설정해야합니다. 루트 비밀번호를 설정하지 않으면 루트 비밀번호가 없으므로 로그인 할 때 비밀번호가 필요하지 않습니다.

즉, 루트 암호를 설정해야합니다.

터미널을 사용하여 다음을 입력하십시오.

설치 : 루트 사용자 비밀번호를 설정하십시오.

/usr/local/mysql/bin/mysqladmin -u root password NEW_PASSWORD_HERE

실수를했거나 루트 암호를 변경해야하는 경우 다음을 사용하십시오.

루트 비밀번호 변경 :

cd /usr/local/mysql/bin/
./mysql -u root -p
> Enter password: [type old password invisibly]

use mysql;
update user set password=PASSWORD("NEW_PASSWORD_HERE") where User='root';
flush privileges;
quit

5
MySQL 5.7 사용자는update user set authentication_string=PASSWORD("NEW_PASSWORD_HERE") where User='root';set password=...
pdm

66

mysql 웹 사이트에 제공된 지침은 위에서 언급 한 것보다 명확합니다.

  1. $ sudo /usr/local/mysql/support-files/mysql.server stop
  2. $ sudo /usr/local/mysql/support-files/mysql.server start --skip-grant-tables
  3. /usr/local/mysql/bin/mysql
  4. mysql> 플래시 PRIVILEGES;
  5. mysql> ALTER USER 'root'@ 'localhost' 'MyNewPass'에 의해 식별 됨;
  6. mysql> exit또는 Ctrl + z
  7. $ sudo /usr/local/mysql/support-files/mysql.server stop
  8. $ sudo /usr/local/mysql/support-files/mysql.server start
  9. /usr/local/mysql/support-files/mysql -u root -p
  10. 새 비밀번호를 입력하십시오 (예 : MyNewPass)

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


2
mac OS 10.12.6에서는 두 번째 명령 ERROR
diEcho

설명서를 찾을 수있는 곳을 지적 해 주셔서 감사합니다. sudo launchctl unload -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist 및 sudo launchctl unload -F /Library/LaunchDaemons/com.oracle.oss를 사용할 수 있으면 Mac에서 약간 혼란 스럽습니다. mysql을 중지하고 시작하려면 .mysql.mysqld.plist sudo /usr/local/mysql/support-files/mysql.server stop을 사용하는 것이 더 나은 방법으로 보입니다.
Daniel

59
  1. mysqld 서버를 중지하십시오.

    • 맥 OSX : System Preferences > MySQL>Stop MySQL Server
    • 리눅스 (터미널에서) : sudo systemctl stop mysqld.service
  2. 권한 바이 패스로 안전 모드에서 서버 시작

    • 터미널에서 : sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
  3. A의 터미널 창 :

    • sudo /usr/local/mysql/bin/mysql -u root
  4. 그러면 mysql 명령 줄이 열립니다. 여기에서 입력하십시오 :

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

    • FLUSH PRIVILEGES;

    • quit

  5. mysqld 서버를 다시 중지하고 정상 모드에서 다시 시작하십시오.

    • Mac OSX (터미널에서) : sudo /usr/local/mysql/support-files/mysql.server restart
    • 리눅스 터미널 : sudo systemctl restart mysqld

1
High Sierra에서 5.7.23을 실행하면 완벽하게 작동합니다. 감사.
Daniel

MySQL 8.0.11에서는 4 단계에서 설정된 기능이 제거되었습니다. 여기서 확인하십시오.이 것이 작동합니다. stackoverflow.com/a/52579886/621951
Günay Gültekin

22

새로운 Mysql 5.7의 경우 어떤 이유로 Mysql의 bin 명령이 쉘에 첨부되지 않았습니다.

  1. 설치 후 Mac을 재시동하십시오.

  2. MySQL을 시작하십시오 :

    시스템 환경 설정> MySQL> 시작 버튼

  3. 터미널에서 Mysql 설치 폴더로 이동하십시오.

    $ cd /usr/local/mysql/bin/

  4. MySQL에 액세스 :

    $ ./mysql -u root -p

설치에 제공된 초기 비밀번호를 입력하십시오.

  1. MySQL 터미널에서 비밀번호 변경 :

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


16

터미널에서 mysql -u root -pReturn 키를 쓰고 칩니다. 적어 두어야 할 현재 mysql 비밀번호를 입력하십시오. 그리고 비밀번호를 설정하십시오 SET PASSWORD = PASSWORD('new_password');

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


10

MySQL 루트 비밀번호를 잊어 버렸거나 기억할 수 없거나 침입하려는 경우… .. 상자의 루트 사용자 비밀번호를 아는 한 Linux 또는 OS X의 명령 행에서 mysql 데이터베이스 비밀번호를 재설정 할 수 있습니다. 너는 ~에있다:

(1) MySQL 중지

sudo /usr/local/mysql/support-files/mysql.server stop

(2) 안전 모드에서 시작하십시오.

sudo mysqld_safe --skip-grant-tables

(3) 이것은 프로세스가 끝날 때까지 진행중인 명령 이므로 다른 쉘 / 터미널 창을 열고 암호없이 로그인하십시오.

mysql -u root

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

위의 UPDATE 명령에서 'password'를 자신의 새 비밀번호로 바꾸십시오. 따옴표를 유지하십시오.

(4) 저장하고 꽤

FLUSH PRIVILEGES;

\q

(5) MySQL 시작

sudo /usr/local/mysql/support-files/mysql.server start

5

OS X Yosemite를 설치할 때 Mysql에 문제가 있습니다. 나는 많은 방법을 시도했지만 아무도 효과가 없었다. 나는 실제로 아주 쉬운 방법을 찾았습니다. 이것을 시도하십시오.

  1. 먼저 su 권한으로 터미널을 로그인하십시오.

sudo su

  1. MySQL을 중지

sudo /usr/local/mysql/support-files/mysql.server stop

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

sudo mysqld_safe --skip-grant-tables

  1. 다른 터미널을 열고, su 권한으로 로그인하고, 비밀번호없이 mysql에 로그인하십시오.

mysql -u root

  1. 비밀번호 변경

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

  1. 플러시 권한

FLUSH PRIVILEGES;

  1. 넌 이제 끝났어

정말 고마워. 나는 이것으로 조금 어려움을 겪고있었습니다. 이것이 최신 버전의 mysql에서 새로운 것입니까?
jpbourbon



3

나는 이것이 작동해야한다고 생각한다.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOURNEWPASSWORD'

(루트가 아닌 경우 루트를 사용자 이름으로 바꿔야합니다.)


2

MySQL 서버 중지

sudo /usr/local/mysql/support-files/mysql.server stop

안전 모드에서 MySQL 시작

sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables &

루트 비밀번호 변경

/usr/local/mysql/bin/mysql -u root

use mysql;
UPDATE user SET authentication_string=PASSWORD('NEW_PASSWORD') WHERE user='root';
FLUSH PRIVILEGES;
exit

테스팅

운영 /usr/local/mysql/bin/mysql -u root

이제 새 비밀번호를 입력하여 MySQL 사용을 시작하십시오.


2

이것이 바로 나를 위해 일한 것입니다.

  1. 실행중인 다른 MySQL 프로세스가 없는지 확인하십시오.이를 확인하려면 다음을 수행하십시오.

     a.From the terminal, run this command:
           lsof -i:3306 
       If any PID is returned, kill it using kill -9 PID
     b. Go To System Preferences > MySQL > check if any MySQL instances 
        are running, stop them.
  2. 다음 명령으로 MySQL을 시작하십시오.

    sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
  3. 모든 사용자의 비밀번호는 mysql.user 테이블의 User 및 authentication_string 열에 각각 저장됩니다. 테이블을 다음과 같이 업데이트 할 수 있습니다.

    UPDATE mysql.user SET authentication_string='your_password' where User='root'

2

Mac OSX DMG 설치 프로그램에서 5.7.26이 설치된 macOS 10.14 이상

다른 사용자가 게시 한 UPDATE 명령을 사용하려고하면 다음 오류가 발생합니다.

오류 1820 (HY000) :이 문을 실행하기 전에 ALTER USER 문을 사용하여 암호를 재설정해야합니다.

Installer 열린 터미널에서 제공 한 비밀번호를 복사하고 다음을 수행하십시오.

mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOURPASSWORDHERE';


2

MySQL 8.0.15 +를 참조하기 위해 password () 함수를 사용할 수 없습니다. 아래 명령을 사용하십시오.

친절하게 사용

UPDATE mysql.user SET authentication_string='password' WHERE User='root';

1

비밀번호를 잊어 버렸거나 mysql로 ​​변경하려면 다음을 수행하십시오.

  1. 터미널을 시작하고 다음을 입력하십시오 :
sudo su
  1. 시스템 패스를 입력하십시오
  2. mysql을 중지하십시오.
sudo /usr/local/mysql/support-files/mysql.server stop
  1. 이 창을 열어두고 두 번째 터미널 창을 실행 한 후 여기에 입력하십시오.
mysql -u root
  1. 그리고 mysql의 비밀번호를 변경하십시오.
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root';

"new_password"-새로운 패스. mysql에는 이전 패스가 필요하지 않습니다.

  1. 새 패스를 플러시하고 종료 한 후 확인하십시오.
FLUSH PRIVILEGES;
  1. 모든 창을 닫고 mysql에 대한 새 패스를 확인하십시오. 행운을 빕니다.

1

MySQL 8에서 많은 부분이 변경되었습니다. MySQL 8.0 "루트 암호를 재설정하는 방법"문서 가 다음과 같이 수정되었습니다. Mac OS X에서 작동

$HOME/mysql.root.txtSQL을 사용하여 임시 파일 을 작성 하여 루트 비밀번호를 업데이트하십시오.

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<new-password>';

이것은 인증 플러그인 'caching_sha2_password'를로드 할 수 없다는 오류 mysql_native_password를 피하기 위해 사용 됩니다 . 옵션을 생략하면 얻을 수 있습니다.

서버를 중지하고 --init-file루트 비밀번호 설정 옵션으로 시작한 다음 서버를 다시 시작하십시오.

mysql.server stop mysql.server start --init-file=$HOME/mysql.root.txt mysql.server stop mysql.server start


1

내 랩톱에서 작동하는이 해결 방법을 추가하겠습니다!

Osx Mojave 10.14.5가 설치된 Mac

MySQL 8.0.17은 homebrew와 함께 설치되었습니다.

  • 다음 명령을 실행하여 mysql의 경로를 찾습니다.

    brew info mysql

  • 경로가 알려지면 다음을 실행합니다.

    /usr/local/Cellar/mysql/8.0.17/bin/mysqld_safe --skip-grant-table

  • 다른 터미널에서 다음을 실행합니다.

    mysql -u root

  • 해당 터미널 내에서 다음을 사용하여 루트 비밀번호를 변경했습니다.

    update mysql.user set authentication_string='NewPassword' where user='root';

  • 그리고 끝내기 위해 :

    FLUSH PRIVILEGES;

그리고 비밀번호가 재설정되었습니다.

참고 문헌 :


1

 Apple 메뉴를 클릭하고 시스템 환경 설정을 열어 Mac에서 mysql을 수동으로 끌 수 있습니다. “MySQL”환경 설정 패널을 선택한 다음“Stop MySQL Server”버튼을 클릭하여 Mac에서 MySQL Server를 중지하십시오.

mysql을 중지 한 후 다음 단계를 따라야합니다.

  • skip-grant-tables 모드에서 mysql을 시작해야합니다

$ sudo /usr/local/mysql/support-files/mysql.server start --skip-grant-tables

  • 터미널 자체에서이 명령을 입력하여 기존 PRIVILEGES를 플래시하십시오.

/ usr / local / mysql / bin / mysql mysql> FLUSH PRIVILEGES;

  • 이제 사용자 비밀번호를 변경해야합니다

mysql> ALTER USER 'root'@ 'localhost' 'newpassword'에 의해 식별 됨;

mysql> 이탈

그런 다음  Apple 메뉴로 이동하여 시스템 환경 설정을 열 수 있습니다. “MySQL”환경 설정 패널을 선택한 다음“Stop MySQL Server”버튼을 클릭하여 Mac에서 MySQL Server를 중지하십시오.

마지막으로  Apple 메뉴로 이동하여 시스템 환경 설정을 열 수 있습니다. “MySQL”환경 설정 패널을 선택한 다음“Start MySQL Server”버튼을 클릭하여 Mac에서 MySQL Server를 시작하십시오.

희망이 도움이


1

이전 의견 중 어느 것도 내 Mac의 문제를 해결하지 못했습니다. 아래 명령을 사용하여 작동했습니다.

$ brew services stop mysql
$ pkill mysqld
$ rm -rf /usr/local/var/mysql/ # NOTE: this will delete your existing database!!!
$ brew postinstall mysql
$ brew services restart mysql
$ mysql -u root

0
mysqld_safe --skip-grant-tables
mysql -u root
UPDATE mysql.user SET authentication_string='yourpasswd' WHERE User='root';
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yourpasswd';

Macbook을 재시동 할 때마다 어떻게해야합니까? 개인적 참조를 위해 이것을 게시하면 다른 사람에게도 도움이되기를 바랍니다.

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