OSX 10.11 El Capitan
を消去してインストールし、 このチュートリアル を実行してMySQL
を新しいOS Xで起動して実行しました。最初のステップは、ダウンロードすることでした MySQL For Mac 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)
Rootをユーザー名および空のパスワードとして使用して、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を実行することで実現できます。
MySQLサーバーを停止します。
My.cnfファイルの[mysqld]セクションの最後に以下を追加して保存します。
skip-grant-tables
MySQLサーバーを起動します。
ターミナルで、入力します
mysql -u root -p
mySQLコマンドプロンプトに入ります。
コマンドプロンプトで、次を入力します。
USE mysql;
データベースユーザーを保持するmysqlデータベースにアクセスします。
タイプ
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が既にインストールされていることを考慮してください。
ターミナルウィンドウを開き、次のように入力します。
ステップ2で起動されたコマンドは進行中の状態になるため、別のターミナルウィンドウを開いて、次のように入力する必要があります。
重要:ステップ2では、パスワードを置き換える必要があります。
それがあなたのために中華鍋になることを願っています。
パスワードをリセットすると、一時的に問題が解決しますが、MySQL 5.7.4から5.7.10(セキュリティを強化すると思います)のdefault_password_lifetime
変数のデフォルト値は360(約1年)です。これらのバージョンでは、この変数に変更を加えない(または個々のユーザーアカウント)を作成すると、すべてのユーザーパスワードは360日後に期限切れになります。
通常、スクリプトから「パスワードの有効期限が切れています。ログインするには、有効期限の切れたパスワードをサポートするクライアントを使用してパスワードを変更する必要があります。」というメッセージが表示されます。
そのため、パスワードの自動失効を防ぐには、ルート(mysql -u root -p
)としてログインし、サーバーに自動的に接続するクライアント(スクリプトなど)でこれらのクライアントのパスワード有効期限設定を変更します。
ALTER USER 'script'@'localhost' PASSWORD EXPIRE NEVER;
orall usersの自動パスワード有効期限を無効にできます。
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をインストールしました。
@lesleyからの答えは、現在の作業ディレクトリでmysqlバイナリを呼び出していることを確認するために./
を追加する必要があるという例外を除き、私にとってはうまくいきました。前述のパッケージがインストールされた場所です。
cd
を/usr/local/mysql/bin
に変更してmysql -u root -p --connect-expired-password
を実行すると、次のエラーが表示される場合があります。
mysql: unknown option '--connect-expired-password'
やった。パスを指定せずに単にmysql
を実行するだけで、以前にインストールされたMariaDBクライアントのバージョンと呼ばれます。
したがって、正しいバイナリを実行していることを確認するには、次のいずれかを実行できます。
絶対パスを提供します
/usr/local/mysql/bin/mysql -u root -p --connect-expired-password
またはディレクトリを変更した後の相対パス
cd /usr/local/mysql/bin
./mysql -u root -p --connect-expired-password
両方の方法が機能するはずです。クライアントに接続すると、命令は@lesleyからの上記と同じです。
インストーラーによって生成された一時パスワードを入力し、新しいパスワードを設定します。
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourNewPassword');
私は同じ問題に直面しました。 https://www.ntu.edu.sg/home/ehchua/programming/sql/MySQL_HowTo.html のインストールプロセスガイドに従い、DMGアーカイブをダウンロードして、MySQLをMAC OS X 10.12にインストールしました。 .2。
最後に、新しいターミナルで次のコマンドを実行しました。
cd /usr/local/mysql/bin
./mysql -u root -p --connect-expired-password
出来た。
回答7は私にとってはうまくいきました:El capitan
、MySQL
はdmgからインストールされ、自動生成されたパスワードですが、/usr/local/bin/mysql
を入力する前にcd
から./mysql -root -p
になっていることを確認しました。
次に、すべてのデータベースとテーブルがどこにあるのか、それらをリンクする方法を見つけます。
Mysql 5.7には
シェル$> Sudo grep 'temporary password' /var/log/mysqld.log
この特定のものは私のためにトリックをしました:
このリンクで指定されているとおり: https://www.variphy.com/kb/mac-os-x-reset-mysql-root-password
実行を除くすべてのステップを実行します
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';
そしてFLUSH PRIVILEGESを実行します;
この問題を解決するもう1つの方法は、代わりに古いバージョンのMySQLを使用することです。
Mac OS X 10.9(x86、64ビット)、DMG Archive用のMySQL version 5.7.9
をアンインストールしてから、Mac OS X 10.9(x86、64ビット)、DMG Archive用の古いバージョン、MySQL version 5.6.7
をインストールしました。この問題は解決されました。この古いバージョンのインストールを完了する前に指定された自動生成されたパスワードはなくなり、最終的にユーザー名としてrootを使用し、空のパスワードを使用してデータベースにアクセスできます。すべてが魅力のように機能しています!
'mysql -u root -p --connect-expired-password'
を実行してこの問題を回避し、mysqlから期限切れの自動生成パスワードを入力しました。最後に、'use mysql'
でmysql dbを選択し、'ALTER USER 'root'@'localhost' IDENTIFIED BY 'your new password'
でユーザー 'root' pwを更新しました
View brewをインストールしましたが、この警告に気付くまで同じエラーメッセージが表示されました。
ルートパスワードなしでMySQLデータベースをインストールしました。保護するには、mysql_secure_installationを実行します
接続するには:mysql -uroot
Launchdでmysqlを今すぐ開始し、ログイン時に再起動するには:brew services start mysql
または、バックグラウンドサービスが必要ない場合は、mysql.server startを実行するだけです。
パッケージを初めてダウンロードしてMySQLを手動でインストールすると、rootのデフォルトパスワードが生成されます。それをコピーして保存します。連続した再インストールで何らかの形で行われない場合、そのパスワードは表示されません。
したがって、rootにログインすることはできません。以下をせよ :
Sudo find / -name mysql
からmysql関連エントリを検索しますrm -rf <mysql_entries_above>
を実行して、mysql関連のエントリをすべて削除しますmysql_secure_installation
を実行し、rootを求められたらそのパスワードを貼り付けます。