Symfony2を使用したデータベース操作のようなエラーが表示されます。
SQLSTATE[HY000] [2002] Connection refused
parameters.yml
parameters:
database_driver: pdo_mysql
database_Host: 127.0.0.1
database_port: '8889'
database_name: symfony
database_user: root
database_password: root
mailer_transport: smtp
mailer_Host: 127.0.0.1
mailer_user: null
mailer_password: null
locale: tr
secret: ef9b4381fe75208f060b7c786951242bebcfb3c2
database_path: /private/var/mysql/mysql.sock
コンソール:
Kemal-Karakass-MacBook-Pro:~ kemalkarakas$ locate mysql.sock
/private/var/mysql/mysql.sock
エラーを解決するにはどうすればよいですか?
パラメーターがありますnix_socket config.yml内で使用できます。
完全な構成例を参照してください。
# Doctrine Configuration
doctrine:
dbal:
default_connection: default
connections:
default:
driver: %database_driver%
dbname: %database_name%
user: %database_user%
Host: %database_Host%
password: %database_password%
unix_socket: /tmp/mysql.sock
私は同じ問題を抱えていて、それを変更して修正しました
database_Host: 127.0.0.1
に
database_Host: localhost
parameters.ymlで
うまくいけば、これが役立つ
[〜#〜] mamp [〜#〜]を使用すると、デフォルトのポートが3306
だが 8889
。
MAMPの開始Webページでその情報を見つけることができます。
私のパラメーター
parameters:
database_driver: pdo_mysql
database_Host: 127.0.0.1
database_port: '8889'
database_name: symfony_blog
database_user: root
database_password: root
mailer_transport: smtp
mailer_Host: 127.0.0.1
mailer_user: null
mailer_password: null
locale: en
secret: 7f03537e81f981683bc773b9ec7113ab5861adec
database_path: null
これは少し愚かですが、私は同じエラーをグーグルでこの投稿に着いたので、おそらくこれは誰かを助けることができます。
この接続を拒否した場合、データベースが稼働していることをエラーで再確認してください。私の場合、MAMPの電源を入れるのを忘れました...
この問題は「SQLSTATE [HY000] [2002] No such file or directory」symfony 3.2.9 on deployment
Parameters.ymlファイルでdatabase_Host値を「localhost」からサーバーIPに変更することで修正しました
しかし、SSHでコマンドラインを実行しようとすると、次のエラーメッセージが表示されました。
[Doctrine\DBAL\Exception\ConnectionException]
An exception occured in driver: SQLSTATE[HY000] [2002] Connection refused
最後に、これらの2行をconfig.ymlファイルのDoctrine設定セクションに追加します:
unix_socket: /var/lib/mysql/mysql.sock
server_version: '5.5'
すべての私の最終doctrine=設定はこのようなものです:
doctrine:
dbal:
driver: pdo_mysql
Host: '%database_Host%'
port: '%database_port%'
dbname: '%database_name%'
user: '%database_user%'
password: '%database_password%'
unix_socket: /var/lib/mysql/mysql.sock
server_version: '5.5'
charset: UTF8
うまくいけば、これが役立つ
答えを見て、自分でこれをいじってみたところ、問題がわかりました。
LAMPPのデフォルトのインストールであるMAMPPのmy.cnfファイルには次のものがあります。
skip-networking
これは、mysqlがTCP/IPをリッスンしないため、doctrineに64Kのポートを試すように伝え、上記のディレクティブをコメントアウトしてmysqlを取得するまで何の効果もありませんTCP/IPポートをリッスンする。
skip-networking
ディレクティブをコメントアウトした後、LAMPP、MAMPPを再起動するか、mysqlをリロードしてください。
仮想環境を使用しているときにこの問題が解決しない場合、ホストマシンでデータベースコマンドを実行して"connection refused"
エラー、ゲストマシンへのSSHを試して、mysql.sockへのパスが正しいようにコマンドを直接実行します。
(相対パスは、ホストマシンではなく仮想ゲストマシン上にある必要があることは理にかなっていると思います)。
MAMP上で実行すると、これが/app/config/parameters.ymlの設定で私に合ったものになります:
parameters:
database_Host: '127.0.0.1'
database_port: '8889'
database_name: test
database_user: root
database_password: root
database_Host: localhost
でかなりの時間を失いましたが、うまくいきませんでした。
初心者向けのヒント:
セミコロン;
を削除して、php.ini(application/MAMP/conf/phpX.XXで-MAMP設定で現在のバージョンを確認)またはphpでextension=php_pdo_mysql.dll
を有効にすることを忘れないでください。 Macintosh HD/private/etcのiniおよび/またはphp.ini.default(スポットライト検索を使用して、この隠しファイルを見つけます)。
doctrine.dbal.path: %database_path%
のapp/config/config.yml
をコメントアウトしますdatabase_path
をapp/config/parameters.yml
から削除/コメントアウトしますapp/config/parameters.yml
単一引用符の値をラップしないか、すべて二重引用符で囲みます。その後、構成は次のようになります。
パラメーター
# app/config/parameters.yml
parameters:
database_driver: "pdo_mysql"
database_Host: "127.0.0.1"
database_port: "8889"
database_name: "symfony"
database_user: "root"
database_password: "root"
# comment out or remove
# database_path: ~
設定
# app/config/config.yml
# ...
doctrine:
dbal:
driver: %database_driver%
Host: %database_Host%
port: %database_port%
dbname: %database_name%
user: %database_user%
password: %database_password%
charset: UTF8
# path is for pdo_sqlite: i.e. %kernel.root_dir%/data/data.db3
# comment it out !
# path: ~
今日、Symfony3の新規インストールで同じエラーが発生しました。
SQLSTATE [HY000] [2002]許可が拒否されました
インストール仕様:
Izusによる以前の回答は、私のサーバーの問題を解決しました。彼は、パラメータdatabase_Host
from 127.0.0.1
からlocalhost
にSymfony設定ファイルapp/config/parameters.yml
問題の本当の原因はSymfony構成内ではなく、データベースサーバー内の承認でした。次のSQLクエリを実行して、データベースとこのデータベースの承認を作成しました。
CREATE DATABASE user CHARACTER SET utf8 COLLATE utf8_bin;
GRANT ALL PRIVILEGES ON database.* TO user@localhost IDENTIFIED BY 'password';
このクエリは、ホスト「localhost」のみが許可されていることを意味します。これは「127.0.0.1」と正確には一致しません。データベースサーバーは着信接続を拒否し、Symfonyは例外をスローしてこのエラーメッセージを表示しています。
この特定の状況に対する可能な解決策:
MAMP PROで「mysqlへのネットワークアクセスを許可する」を有効にし、「php artisan migrate」がその特別なアプリで動作するようになりました。