2017-01-31 6 views
3

私はhomesteadを使用していて、phpmyadminでmysqlデータベースにログインしようとしています。私はすでに数年前に同じ設定を使用しています。 昨日私は働き始めました。コマンドhomestead upを実行しましたが、今回はすべてが通常と少し違って見えました。たとえば、vagrant insecure key detectedのようにして、迷惑メールで自動的にそれを新しく生成された鍵ペアに置き換えます。大丈夫、これは悪くないです。ホームステイとMySQLの問題

その停止し、その後nginxphp5-fpm 9回を開始しては==> default: mysql: ==> default: [Warning] Using a password on the command line interface can be insecure. ==> default: Please use --connect-expired-password option or invoke mysql in interactive mode. The SSH command responded with a non-zero exit status. Vagrant assumes that this means the command failed. The output for this command should be in the log above. Please read the output to determine what went wrong.

オーケー来ることを、よく私はhomestead sshにログインした後、mysql -u homestead -p password、新しいパスワードを設定した後。スローされたエラーはありません。すばらしいです。

その後、私のデータベースphpmyadmin.apphomesteadのユーザ名とnew passwordという名前でログインしようとしましたが、何らかの理由でデータベースが消えてしまいました。

まあ...私はmysql> select * from mysql.user;コマンドを書くと気づいた素晴らしいGoogle検索セッションの後、2人のホームステッドユーザーがいます。最初は0.0.0.0の下にあり、2番目は%の下にあります - この問題が初めて発生した場合、%を使用するホームステイユーザーが作成されているため、これは私の問題の原因となっていると確信しています。

または私は完全に間違った方向にあり、問題の原因はさまざまです。どのような場合でも、私はここで私よりも少し賢い人の助けを求めることになっています。

2番目のホームステイユーザーを削除するか、何をお勧めしますか?

本当にありがとうございます。

+0

私は「%」屋敷のユーザーを削除しても、私は'localhost'する'0.0.0.0'ホストを変更しないと、パスワードをリセットしようとしたが、関係なく、私はそのアクセスを拒否何をすべきか。 fffffssこれは本当にイライラしています。 –

答えて

0

どのようにパスワードを設定しましたか?このプロセスのように聞こえるかもしれませんが、適切な権限を持っていない新しいユーザーが作成された可能性があります。これは、そのユーザーとして接続するときにデータベースを見ることができなかった理由を説明します。

その後、そのユーザーを削除して、そのユーザーを削除しました。これは、ホストを0.0.0.0から 'localhost'に変更したことを除き、開始した場所に戻ります。私はこの場所で0.0.0.0の構文を使用することに慣れていませんが、おそらくバインドアドレスのためにmy.cnfで使用されたときのようなすべてのTCPホストを意味します。通常、私は '%'を使用しますが、0.0.0.0が動作していれば、それを失うことはないので、私はそれを提案することを躊躇します。しかし、とにかく、 'localhost'は '%'や他のTCP接続とは異なります。 localhostは特にソケット接続を指し、その他はTCP接続を指します。おそらくあなたのアプリケーションはtcpプロトコルを使用していて、(ソケットプロトコル上の接続のみを許可するようにMySQLに指示することによって)そのユーザーの権限を削除しただけです。

私はこれらのソリューションのいずれかの示唆

  • 新しいユーザーを追加し、それらに適切な権限を与え、既存のユーザーのホスト名を変更
  • 0.0.0.0ホスト名に%
  • に既存のユーザーを戻しますユーザがアクセスする必要のあるデータベース
  • 正確なシステム構成に応じて、tcpネットワークではなくソケットプロトコルを使用してMySQLにアクセスするようにアプリケーションに指示します。
-1

私はこの問題を何日間も持ち、本当に私を狂ってしまいます。理由は分かりませんが、私のHomesteadとその資格証明はmysqlにアクセスするためには最近まで問題ありませんでした。基本的に私は新しいユーザーを作成し、ユーザーとしてホームステッドの使用をやめます。

それでもsshとsudo suを使用できる場合は、これを試すことができます。

1)浮浪者のssh

2)須藤秀

3)のmysql -uあなたはスーパーユーザとしてあるルート-p(、mysqlは文句を言わないあなたにパスワードを尋ねる)

4)次に、単に新しいユーザーを設定します。

CREATE USER 'newuser' @ 'localhost' IDENTIFIED BY 'password';

その後、

GRANT ALL PRIVILEGES ON *。 * TO 'newuser' @ 'localhost';

5)次に、新しいユーザーを使用してphpmyadminにログインします。

0

まず、関連する問題のmy mysql answerを参照してください。

Laravel Homesteadのこの種の問題については、Vagrantボックスを捨てて再初期化することをおすすめします。 Homesteadは単なるサンドボックスです(クライアントマシンのデータをバックアップする限り、サンドボックスの再構築には問題ありません)。

最初に、mysqldumpやSequel Proのようなツールを使ってMySQLデータベースやその他のクライアントマシンの情報をバックアップします。これは、ボックスの再プロビジョニング時に失われます。

その後:

# from host machine 
cd ~/Homestead 
vagrant destroy 
vagrant box prune 
vagrant up --provision 

# if still seeing MySQL errors during provisioning, do the steps in https://stackoverflow.com/a/46106953/539149 or: 
vagrant ssh 

# log into mysql (for Homestead your password is likely "secret") 
mysql -h localhost -u homestead -p 

SET PASSWORD = PASSWORD('secret'); 

-- A) set password to never expire: 
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER; 

-- or B) to change password as well: 
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password', 'root'@'localhost' PASSWORD EXPIRE NEVER; 

-- quit mysql 
quit 

# exit back to host shell 
exit 

vagrant up --provision