2016-09-13 3 views
2

Macbook Air(OS Xバージョン10.11.2)で新しいユーザーを作成しました。新しいユーザーには完全な管理者アクセス権があります。私はMAMPを使用しています。 MySQLのポートは3306に設定されています。他のすべてのものでMySQLに接続できます。私のLaravelプロジェクトはすべてMySQLへの接続を中止しました。私はLaravel 5.3はmysqlに接続しません

php artisan migrate 

を使用しようとすると私が取得:

[PDOException]        
SQLSTATE[HY000] [2002] Connection refused 

ここに私の.envのデータベース部分である:

DB_CONNECTION=mysql 
DB_HOST=127.0.0.1 
DB_PORT=3306 
DB_DATABASE=store 
DB_USERNAME=clerk 
DB_PASSWORD=inventory 

私は、rootユーザーとパスワードを使用して試してみました。私は別のポートを使用しようとしました。私はlocalhostにホストを切り替えようとしました。ユーザー名とパスワードが正しいことと、ユーザーがデータベースにアクセスできることを確認しました。 は、ここに私のconfig/database.phpでファイルのMySQLの部分である:

'mysql' => [ 
    'driver' => 'mysql', 
    'host' => env('DB_HOST', '127.0.0.1'), 
    'port' => env('DB_PORT', '3306'), 
    'database' => env('DB_DATABASE', 'store'), 
    'username' => env('DB_USERNAME', 'clerk'), 
    'password' => env('DB_PASSWORD', 'inventory'), 
    'charset' => 'utf8', 
    'collation' => 'utf8_unicode_ci', 
    'prefix' => '', 
    'strict' => true, 
    'engine' => null, 
], 

私は数日を探している、と私は答えを見つけるように見えることはできません。私の古いLaravel 5.2プロジェクトも接続しません。私はこれが新しいユーザーを作成することによって引き起こされたと確信していますが、問題点を把握するためにMySQLについて十分に知りません。

+0

あなたは 'mysql'コマンドラインツールまたはMySQL Workbenchプログラムまたは同等のもので接続できますか? '127.0.0.1'の代わりに' localhost'を使ってみましたか? | – tadman

+0

@tadman |私は元の投稿の両方の質問に答えました。 –

+1

connection refusedは、mysqlが実行されていないか、リスンしていないことを意味します。これは、この段階でユーザ/パスが無関係であることを意味します。あなたはTRYとログインするためにmysqlに接続することさえできません。アクセス権が拒否された場合 –

答えて

0

ご質問の下のコメントに記載されているトラブルシューティングの手順に従えば、すべてが期待通りに機能しているはずです。

そうでなければ、何かが欠けているはずです。 ...私が推測するPATHの問題。

export your databaseをお勧めします。あなたのMySQLをアンインストールしてから、新しいファイルをダウンロードしてhereにダウンロードしてください。

可能な修正については、hereで詳しく説明した方法に従います。

これで、あなたの課題に確実に対処します。

0

はあなたDB_HOST = localhostのを変更してみてください:3306

0

あなたはengine = nullを定義します。エンジンは、特に私が知っている限り、作成クエリをコンパイルするときにMySqlGrammar.phpの内部で使用されます。私はVIEWSのためにヌルエンジンしか見ませんでした。

次設定してください:あなたは、あなたの質問にそれを言及し、端末

mysql -uclerk -pinventory -h127.0.0.1 -P3306 store 

から、次の作品は、それが

する必要があるとすることができることをそれを取るんでした

'mysql' => [ 
    'driver' => 'mysql', 
    'host' => env('DB_HOST', '127.0.0.1'), 
    'port' => env('DB_PORT', '3306'), 
    'database' => env('DB_DATABASE', 'store'), 
    'username' => env('DB_USERNAME', 'clerk'), 
    'password' => env('DB_PASSWORD', 'inventory'), 
    'charset' => 'utf8', 
    'collation' => 'utf8_unicode_ci', 
    'prefix' => '', 
], 

mysql -uclerk -pinventory -hlocalhost -P3306 store 

他にも、あなたのプロジェクトのinfo.phpファイルで確認できますPDOをモジュールとして参照するとすべてがうまくいくようにチェックします。

<?php 
phpinfo(); 

また、ちょっとしたPDOのPHPスクリプトで遊んで、接続が正常に動作しているかどうかを確認してください。以下のような何か:

<?php 
$servername = "127.0.0.1"; 
$username = "clerk"; 
$password = "inventory"; 

try { 
    $conn = new PDO("mysql:host=$servername;port=3306;dbname=store;", $username, $password); 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    echo "Connected successfully"; 
} catch (PDOException $e) { 
    echo "Connection failed: " . $e->getMessage(); 
} 

あなたもあなたを与えるものenv('DB_DATABASE')などダミールート内で確認することができます何か他のもの。

2016.09を確認するように更新されました。

15はenv()正しい情報をフェッチ下経路を含むされていることを確認し、次の出力を含めるには:

Route::get('dbtest', function() { 
    $config = [ 
     'host' => env('DB_HOST'), 
     'port' => env('DB_PORT'), 
     'database' => env('DB_DATABASE'), 
     'username' => env('DB_USERNAME'), 
     'password' => env('DB_PASSWORD'), 
    ]; 
    dd($config); 
}); 

は次いで、ルートユーザとしてmysqlにアクセスしての出力を含みますselect文:

mysql> select host, user, password, authentication_string, password_expired from mysql.user; 

あなたはMAMPを使用しているとは/Applications/MAMP/Library/bin/mysql

からのmysqlコマンドラインツールを使用してください
+0

あなたが提案したことを試してみてください。mysql -uclerk -pinventory -hlocalhost -P3306 storeは正常に動作しました。 PDOスクリプトも正常に動作しました。 –

+0

-hlocalhostが動作した場合、.envファイルのDB_HOSTを127.0.0.1からlocalhostに更新する必要があります。あなたが確認できる2つのことを追加しました。 –

0

解決済みです。私の髪を引き出す数時間後、私は@nyedidikekeのアドバイスを取って、mysqlを再インストールすることに決めました。私はMAMPを使用していましたが、しばらく使用をやめたいと思っています。私はそれをアンインストールし、Homebrewを通してmysqlをインストールしました。すべてはあなたのすべての助けを借りて、うまく働いています!

関連する問題