OS XでのMySQL rootユーザーパスワードの設定


235

MySQLをMac OS Xにインストールしました。次のステップはrootユーザーのパスワードを設定することだったので、次のようにしました。

  1. ターミナルアプリを起動して、Unixコマンドラインにアクセスします。
  2. Unixプロンプトの下で、次のコマンドを実行しました。

    $ 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

ヘッドアップをありがとう。それに応じて反映するように回答を編集します。
スコット

8
また、PASSWORD()関数は非推奨であるように見えます。これを'password'等式の右側に配置するだけです
kvn

6
ログインできない場合、どのように役立ちますか?
ジェイク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のは、「プリファレンス『ウィンドウ』オプションでインストールされているMacOSXの上(アップルメニュー] - > [システム環境設定...)、私は私が最初に上記の完全なステップ1に環境設定パネルを使用してMySQLを停止しなければならなかったことがわかっ使用。sudo killしませんでしたMac OSxが新しいmsqlを即座に自動的に再起動するので、作業できます。環境設定ペインを使用してmysqlを停止すると、手動で実行できますmysqld_safe --skip-grant-tables
toddcscar '26

85

MySQLをインストールしたら、「root」パスワードを設定する必要があります。rootパスワードを設定しない場合、まあ、rootパスワードはなく、ログインにパスワードは必要ありません。

つまり、言われているように、rootパスワードを設定する必要があります。

端末を使用して、次のように入力します。

インストール:rootユーザーのパスワードを設定します。

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

間違えた場合、またはrootパスワードを変更する必要がある場合は、以下を使用します。

rootパスワードを変更します。

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 Webサイトで提供される手順は、上記の説明よりも明確です

  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> FLUSH PRIVILEGES;
  5. mysql> ALTER USER 'root' @ 'localhost' IDENTIFIED BY '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では、2番目のコマンドERRORの
diEcho 2017年

ドキュメントの場所を指摘していただきありがとうございます。sudo launchctl unload -F /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plistとsudo launchctl unload -F /Library/LaunchDaemons/com.oracle.ossも使用できる場合、Macでは少し混乱します。 .mysql.mysqld.plistは、mysqlを停止および開始します。sudo /usr/local/mysql/support-files/mysql.server stopを使用する方が良いアプローチのようです。
ダニエル

59
  1. mysqldサーバーを停止します。

    • マックOSX: System Preferences > MySQL>Stop MySQL Server
    • Linux(ターミナルから): sudo systemctl stop mysqld.service
  2. 特権バイパスを使用してサーバーをセーフモードで起動する

    • ターミナルから: sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
  3. 新しいターミナルウィンドウ:

    • 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
    • Linuxターミナル: sudo systemctl restart mysqld

1
High Sierraで5.7.23を実行する場合、これは完全に機能します。ありがとう。
ダニエル

MySQL 8.0.11では、4番目のステップのset関数が削除されました。ここを確認してください、これは機能します。stackoverflow.com/a/52579886/621951
GünayGü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

ターミナルで、Enterキーmysql -u root -pを押してReturnキーを押します。書き留めておく必要がある現在のmysqlパスワードを入力します。そして、パスワードを設定します SET PASSWORD = PASSWORD('new_password');

このドキュメントを参照してくださいここでは詳細については。


10

MySQLのrootパスワードを忘れた場合、覚えていないか侵入したい…..ボックスのrootユーザーのパスワードがわかっている限り、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'

(rootでない場合は、rootをユーザー名に置き換えてください)


2

MySQLサーバーの停止

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

MySQLをセーフモードで起動する

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

rootパスワードの変更

/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. すべてのユーザーのパスワードは、列Userおよびauthentication_stringの下のmysql.userテーブルにそれぞれ保存されます。次のようにテーブルを更新できます。

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

2

Mac OS X DMGインストーラーから5.7.26がインストールされたmacOS 10.14以降。

他のユーザーが投稿したUPDATEコマンドを使用しようとすると、次のエラーが発生します。

エラー1820(HY000):このステートメントを実行する前に、ALTER USERステートメントを使用してパスワードをリセットする必要があります。

インストーラーのオープンターミナルから提示されたパスワードをコピーし、次の操作を行います。

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. このウィンドウを開いたままにし、2番目のターミナルウィンドウを実行して、ここに入力します。
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では多くの変更がありました。MySQL8.0の「ルートパスワードをリセットする方法」ドキュメントの次の変更はMac OS Xで機能することがわかりました。

$HOME/mysql.root.txtSQLを使用して一時ファイルを作成し、ルートパスワードを更新します。

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

これはmysql_native_password認証プラグイン「caching_sha2_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

  • そのターミナル内で、私はrootパスワードを次のように変更しました:

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

  • そして私が実行を完了するには:

    FLUSH PRIVILEGES;

そして、パスワードがリセットされました。

参照:


1

Macでmysqlを手動でオフにするには、アップルメニューをクリックして[システム環境設定]を開きます。「MySQL」設定パネルを選択し、「Stop MySQL Server」ボタンをクリックして、Mac上のMySQLサーバーを停止します。

mysqlを停止した後、次の手順に従う必要があります。

  • mysqlをskip-grant-tablesモードで起動する必要があります

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

  • 端末自体で、このコマンドを入力して既存の特権をフラッシュします

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

  • 次に、ユーザーのパスワードを変更する必要があります

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

mysql>終了

次に、アップルメニューに移動して、システム環境設定を開きます。「MySQL」設定パネルを選択し、「Stop MySQL Server」ボタンをクリックして、Mac上のMySQLサーバーを停止します。

最後に、もう一度アップルメニューに移動して、システム環境設定を開きます。「MySQL」設定パネルを選択し、「MySQLサーバーの起動」ボタンをクリックして、MacでMySQLサーバーを起動します。

それが役に立てば幸い


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.