回答編集履歴

3

解決したのでまとめます

2019/01/08 12:01

投稿

set0gut1
set0gut1

スコア2413

test CHANGED
@@ -35,3 +35,23 @@
35
35
  }
36
36
 
37
37
  ```
38
+
39
+
40
+
41
+ ------
42
+
43
+
44
+
45
+ まとめ
46
+
47
+
48
+
49
+ - mysqlは正常に起動してて、mysqlコマンドで接続可能
50
+
51
+ - $dsnの値は`"mysql:host=localhost;dbname=mydata"`
52
+
53
+ - 接続先を`127.0.0.1`に変更すると問題を回避できた
54
+
55
+
56
+
57
+ 接続先が`localhost`のときはどこかにある`php.ini`に設定されている`pdo_mysql.default_socket`の値を用いてunix socket接続を行うらしく、この設定値が実環境と異なっていたものと考えられます。

2

微修正

2019/01/08 12:01

投稿

set0gut1
set0gut1

スコア2413

test CHANGED
@@ -1,4 +1,4 @@
1
- mysqlが起動してないと思われます。
1
+ ~~mysqlが起動してないと思われます。~~
2
2
 
3
3
 
4
4
 

1

追記: $dsn確認用のコード改変です。

2019/01/08 11:33

投稿

set0gut1
set0gut1

スコア2413

test CHANGED
@@ -1 +1,37 @@
1
1
  mysqlが起動してないと思われます。
2
+
3
+
4
+
5
+ -----
6
+
7
+
8
+
9
+ 追記: $dsn確認用のコード改変です。
10
+
11
+ エラー発生箇所である vendor/robmorgan/phinx/src/Phinx/Db/Adapter/MysqlAdapter.php の 121行目付近を次のように編集するとエラーメッセージに$dsnの内容が出力されるようになるので、そのエラーメッセージを教えてください。
12
+
13
+ vendor以下のファイルは通常編集しないので、あとで忘れずに元に戻しておいてください。
14
+
15
+
16
+
17
+ ```
18
+
19
+ try {
20
+
21
+ $db = new \PDO($dsn, $options['user'], $options['pass'], $driverOptions);
22
+
23
+ } catch (\PDOException $exception) {
24
+
25
+ throw new \InvalidArgumentException(sprintf(
26
+
27
+ '($dsn = "%s") There was a problem connecting to the database: %s', // ここと
28
+
29
+ $dsn, // ここを変えます
30
+
31
+ $exception->getMessage()
32
+
33
+ ));
34
+
35
+ }
36
+
37
+ ```