web-dev-qa-db-ja.com

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

私はMac OS XにMySQLをインストールしました。次のステップは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コマンドラインに入ることができます!

どうしてこれなの?

215
madaura

MySQLターミナルにログインしたら、コマンドFLUSH PRIVILEGESを試してください。それでもうまくいかない場合は、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';

308
Scott

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. セーフモードサーバーを停止し、通常のサーバーを再起動します。これで新しいパスワードが機能するはずです。私にとって魅力的なように働きました:)
189
radtek

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
84
bob

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' '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

55
Ankireddy Polu
  1. Mysqldサーバーを停止します。

    • Mac 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. new terminalウィンドウで:

    • 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
51
imbond

新しい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';

22
Deoxyseia

端末で、mysql -u root -pを書いてReturnキーを押します。メモしておく必要がある現在のmysqlパスワードを入力します。そしてパスワードを設定しますSET PASSWORD = PASSWORD('new_password');

詳しくはこのドキュメントを参照してください ここ

15
Nitish Pareek

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
10
Homam Bahrani

既存の回答に記載されている方法は、mysql 5.7.6以降では機能しません。 MySQLのドキュメントによると、これが推奨される方法です。

B.5.3.2.3ルートパスワードの再設定:一般的な説明

MySQL 5.7.6以降:

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

参照: https://dev.mysql.com/doc/refman/5.7/ja/resetting-permissions.html

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. 別の端末を開き、パスワードなしでmysqlにログインするより、su特権としてログインします。

mysql -u root

  1. パスワードを変更する

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

  1. 特権をフラッシュする

FLUSH PRIVILEGES;

  1. あなたは今終わった
5
Prem Timsina

あなたのパスワードを覚えていないのなら、 @ radtekの答え 私の場合を除いて私のために働いた - brewを使ってMySQLをセットアップした これは彼の答えのステップ1と2を変更しなければならなかったことを意味する:

  1. /usr/local/bin/mysql.server stop

  2. /usr/local/bin/mysqld_safe --skip-grant-tables

注: Sudoがない。

3
schminnie

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
Shreyas

私はこれがうまくいくと思います:

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

(rootでない場合は、おそらくrootをユーザー名に置き換える必要があることに注意してください)

2
rust

これは私のために正確に働いたものです:

  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
sgs

ターミナルでこれを試してください:/usr/local/bin/mysql_secure_installation

1
Jean-Luc Barat

MySQL 8では多くの変更が行われました。 MySQL 8.0の「ルートパスワードのリセット方法」のドキュメントの次の修正が見つかりました はMac OS Xで動作します。

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

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

これは 認証プラグイン 'caching_sha2_password'をロードできない エラーを回避するためにmysql_native_passwordを使用します。このオプションを省略した場合に表示されます。

サーバーを停止し、--init-fileオプションで開始してrootパスワードを設定してから、サーバーを再起動します。

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

1
djb

パスワードを忘れた場合、またはパスワードをmysqlに変更したい場合は、次の手順を実行します。

  1. 端末を起動して次のように入力します。
Sudo su
  1. あなたのシステムのパスを入力してください
  2. MySQLを停止します。
Sudo /usr/local/mysql/support-files/mysql.server stop
  1. このウィンドウをOPENのままにして、2番目の端末ウィンドウを実行して、ここに入力してください。
mysql -u root
  1. そしてmysqlのパスワードを変更してください。
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root';

where "new_password" - あなたの新しいパス。あなたはmysqlのための古いパスを必要としません。

  1. 新しいパスをフラッシュして終了し、確認します。
FLUSH PRIVILEGES;
  1. すべてのウィンドウを閉じて、mysqlの新しいパスを確認してください。がんばろう。

私のラップトップで動作するこの回避策を追加しましょう!

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;

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

参照:

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を再起動するたびに、どういうわけかこれを行う必要があります。これを個人的な参照用に投稿することで、他の人にも役立つことを願っています。

0
lafeber

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';
0
Tom Bruno