経由接続コードは次のとおりです。MySQL2宝石Accesのは、私はrakeタスクを実行しているとmysql2の宝石を経て、私はこのエラーを取得しています何らかの理由でMySQLへのデータベース接続を作成しようとしていますが拒否されましたが、ログインターミナル製作所
Mysql2::Client.new(host: server, database: db, username: user, password: pwd)
これは奇妙である2つの理由があります。
私はは端末からのログインに同じ資格情報を使用することができます
私はVM(centos 7)を作成し、mysqlデータベースを追加してdump.sqlファイルをアップロードしました。 MySQL2の宝石。だから私はコードが動作することを知っている、私はそれが実行されているmysqlインスタンスのために動作しない理由はわかりません。
は、私は、ユーザーの権限をチェックしましたし、私のユーザーは、データベースがローカルホスト上で実行され、必要なすべての権限を持って、私は127.0.0.1
からhost
パラメータを設定しようとしたし、同じエラーを持っています。次を返しmysql> select USER(), CURRENT_USER();
:
+--------------------+----------------+
| USER() | CURRENT_USER() |
+--------------------+----------------+
| [email protected] | [email protected]% |
+--------------------+----------------+
1 row in set (0.00 sec)
:
mysql> Select SUBSTRING_INDEX(host,':',1) as 'ip' From information_schema.processlist WHERE ID=connection_id();
リターン:
+-----------+
| ip |
+-----------+
| localhost |
+-----------+
を私のMySQLバージョンが実行して、Linux用の5.7.17でこれを呼び出す
CentOS 7
これは1つのCentos/MySqlバージョンではうまくいかない理由があり、それは別の理由であり、なぜ私はターミナルにログインでき、自分のコードではできないのでしょうか?端子を介して
試し 'Mysql2 :: Client.new(経由で新しいパスワードで接続できる必要があります。username => ENV [ 'Opendata_DATABASE_USERNAME']:パスワード=> ENV ['Opendata_DATABASE_PASSWORD']、:ホスト=> ENV ['Opendata_DATABASE_HOST']、:ポート=> ENV ['Opendata_DATABASE_PORT']、データベース=> ENV ['Opendata_DATABASE_NAME']) ' – Tsao
まだ失敗した場合は、rootを使用してMysql2 :: Clientで接続し、まずユーザー権限の問題がないかどうか確認します。 – Tsao
いいえ、ポートを追加しても何も変更されませんでした –