teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

確認結果の追記

2018/08/10 15:02

投稿

rubytomato
rubytomato

スコア1752

answer CHANGED
@@ -37,23 +37,55 @@
37
37
  "別のPC"というのは、チームで開発する際に複数のメンバーで接続する用途のいわゆるサーバータイプのPCでしょうか?
38
38
  ちょっと気になっただけなので、差支えがあればお答え頂かなくても結構です。
39
39
 
40
+
40
41
  ### 確認点 (2018/08/08追加)
41
42
 
42
43
  コメントありがとうございます。ローカルからmysql.exeでは接続できないけど、A5:SQL Mk-2からは接続できるということなので、もう少し状況確認をさせてください。
43
44
 
45
+ **結果追記 (2018/08/10)**
46
+
47
+ 確認点をコメントして頂いたので、見やすいようにそれぞれの項目に結果を追記しました。
48
+
44
49
  #### bind_addressとportの確認
45
50
 
46
51
  MySQL serverが実行されているPC上で、mysql.exeを使ってrootユーザーでログインして次のsqlを実行してください。
47
52
  このsqlの結果を確認したいと思います。
48
53
 
54
+ bind_address
55
+
49
56
  ```
50
57
  > show variables like '%bind%';
51
58
  ```
52
59
 
60
+ **結果追記**
61
+
53
62
  ```
63
+ bind_address *
64
+
65
+ 1 row in set, 1 warning (0.27 sec)
66
+ ```
67
+
68
+ port
69
+
70
+ ```
54
71
  > show variables like '%port%';
55
72
  ```
56
73
 
74
+ **結果追記**
75
+
76
+ ```
77
+ innodb_support ON
78
+ large_files_support ON
79
+ port 3306
80
+ report_host
81
+ report_password
82
+ report_port 3306
83
+ report_user
84
+ require_secure_transport OFF
85
+
86
+ 8 rows in set, 1 warning(0.00 sec)
87
+ ```
88
+
57
89
  #### netstatでportの確認
58
90
 
59
91
  MySQL serverが実行されているPC上で、Windowsのnetstatコマンドの結果を確認したいです。
@@ -78,6 +110,16 @@
78
110
  ローカルアドレスに上記の例のような行がある場合、さらにtohokukagakuさんのPCからA5:SQL Mk-2で接続して、再度結果を確認してください。
79
111
  このときの外部アドレスがどのように変わったか確認したいです。
80
112
 
113
+ **結果追記**
114
+
115
+ > はじめは下記の例と同じ内容が行がありました(PIDのみ違う数字)
116
+ > A5:SQL Mk-2に接続後も変わらず同じ数字で存在しましたが、新しく下記の行が増えました。(pidとオフロード状態は同じ数字でした。)
117
+
118
+ ```
119
+ ローカルアドレス      外部アドレス                 状態      
120
+ 接続先ホストのID:3306  接続先ホストのIDの下二桁のみ違う数字:50525 ESTABLISHED
121
+ ```
122
+
81
123
  #### DBユーザーのアクセス権限
82
124
 
83
125
  MySQL serverが実行されているPC上で、mysql.exeを使ってrootユーザーでログインして次のsqlを実行してください。
@@ -105,6 +147,14 @@
105
147
  +---------------+-------------+
106
148
  ```
107
149
 
150
+ **結果追記**
151
+
152
+ ```
153
+ myspl %
154
+
155
+ 1 rdw in set(0.05 sec)
156
+ ```
157
+
108
158
  また、以下のshow grantsで接続したいユーザーが接続したいデータベースに権限が付与されているか確認したいです。
109
159
  このsql文の'test_user'@'10.0.75.%'の部分は実際に接続したいユーザーに読み替えてください。
110
160
 
@@ -123,6 +173,14 @@
123
173
  +-----------------------------------------------------------------------+
124
174
  ```
125
175
 
176
+ **結果追記**
177
+
178
+ ```
179
+ Grants for mysql`%
180
+
181
+ GRANT ALL PRIVILEGES ON *.* TO "mysql"@"%" WITH GRANT OPTION
182
+ ```
183
+
126
184
  #### MySQL serverが実行されているPCからの接続
127
185
 
128
186
  上記のアクセス権限の確認結果にlocalhostが含まれている場合に、この確認を行って頂きたいです。
@@ -142,6 +200,11 @@
142
200
  > > mysql.exe --host=接続先ホスト名 --port=3306 --user=ユーザー --password=パスワード --database=データベース名
143
201
  > 試してみましたが接続することができませんでした。
144
202
 
203
+ **結果追記**
204
+
205
+ > ローカルPCからの接続エラーは下記のように出ました。
206
+ > ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql.exe --host=接続先ホストID --port=3306 --user=mysql --password=パスワード -' at line 1
207
+
145
208
  また、データベース名の指定ですが、A5:SQL Mk-2の接続設定のデータベースの欄の名前です。この場合はデータベース名とスキーマ名は同じと考えてよいと思います。
146
209
 
147
210
  > 自分は接続先データベース名は A5:SQL Mk-2 のスキーマと同じだと思い、"test" にしているのですがもしかして間違いでしたか?
@@ -157,9 +220,19 @@
157
220
  > mysql.exe --host=10.75.0.200 --port=3306 --user=test_user --password=test_pass --database=test
158
221
  ```
159
222
 
223
+ **結果追記**
224
+
225
+ > A5:SQL Mk-2からは接続設定と
226
+ > mysql.exe --host=10.75.0.200 --port=3306 --user=test_user --password=test_pass --database=test
227
+ > を見比べましたが、違いはありませんでした。
228
+
160
229
  #### ローカルPCにMySQL serverはインストールされていますか
161
230
 
162
231
  mysql.exeで接続確認をされたということですが、ローカルPCにMySQL serverがインストールされているということでしょうか?
163
232
  もしそうであれば、ローカルPCのMySQL serverが稼働していてA5:SQL Mk-2がそこへ接続しているということはないでしょうか?
164
233
 
234
+ **結果追記**
235
+
236
+ > ローカルPCのmysqlにはtestというデータベースは作成していませんのでA5:SQL Mk-2がそこへ接続しているということはないと思います。
237
+
165
238
  以上、すこし項目が多いですがご確認ください。

1

確認事項の追加

2018/08/10 15:02

投稿

rubytomato
rubytomato

スコア1752

answer CHANGED
@@ -35,4 +35,131 @@
35
35
  > 別のPCのMysqlにアクセスしようとすると次のようなエラーが出てしまいます。
36
36
 
37
37
  "別のPC"というのは、チームで開発する際に複数のメンバーで接続する用途のいわゆるサーバータイプのPCでしょうか?
38
- ちょっと気になっただけなので、差支えがあればお答え頂かなくても結構です。
38
+ ちょっと気になっただけなので、差支えがあればお答え頂かなくても結構です。
39
+
40
+ ### 確認点 (2018/08/08追加)
41
+
42
+ コメントありがとうございます。ローカルからmysql.exeでは接続できないけど、A5:SQL Mk-2からは接続できるということなので、もう少し状況確認をさせてください。
43
+
44
+ #### bind_addressとportの確認
45
+
46
+ MySQL serverが実行されているPC上で、mysql.exeを使ってrootユーザーでログインして次のsqlを実行してください。
47
+ このsqlの結果を確認したいと思います。
48
+
49
+ ```
50
+ > show variables like '%bind%';
51
+ ```
52
+
53
+ ```
54
+ > show variables like '%port%';
55
+ ```
56
+
57
+ #### netstatでportの確認
58
+
59
+ MySQL serverが実行されているPC上で、Windowsのnetstatコマンドの結果を確認したいです。
60
+ 出力結果が長いかもしれませんが"ローカル アドレス"の欄にx.x.x.x:3306のような結果があるか確認してください。この場合の3306は上記で確認したportに読み替えてください。(上記のportの確認結果がたとえば13306だったら、x.x.x.x:13306を確認する、という意味です。)
61
+
62
+ コマンドプロントを立ち上げ次のコマンドを実行してください。
63
+
64
+ ```
65
+ > netstat -anoptf TCP
66
+ ```
67
+
68
+ 下記の例のような行があるかを確認したいです。
69
+
70
+ ```
71
+ アクティブな接続
72
+
73
+ プロトコル ローカル アドレス 外部アドレス 状態 PID オフロード状態
74
+
75
+ TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING 18596 ホスト内
76
+ ```
77
+
78
+ ローカルアドレスに上記の例のような行がある場合、さらにtohokukagakuさんのPCからA5:SQL Mk-2で接続して、再度結果を確認してください。
79
+ このときの外部アドレスがどのように変わったか確認したいです。
80
+
81
+ #### DBユーザーのアクセス権限
82
+
83
+ MySQL serverが実行されているPC上で、mysql.exeを使ってrootユーザーでログインして次のsqlを実行してください。
84
+ このsqlの結果を確認したいと思います。
85
+ 仮に、接続したいユーザー名が'test_user'だとしたら、以下のようなsqlになると思います。
86
+ 'test_user'の部分は、実際に接続したいユーザーの名前に読み替えてください。(eclipseのプログラムやA5:SQL Mk-2から接続するときのユーザー名です。)
87
+
88
+ ```
89
+ > select user,host from mysql.user where user = 'test_user';
90
+ ```
91
+
92
+ 下記は一例ですが、hostに
93
+
94
+ * 'localhost'があるか
95
+ * tohokukagakuさんのPCのIPアドレスがあるか(たとえば、tohokukagakuさんのPCのIPが10.0.75.1だとしたら、下記のように10.0.75.%かもしくは10.0.75.1があるか)
96
+
97
+ の点を確認したいと思います。
98
+
99
+ ```
100
+ +---------------+-------------+
101
+ | user | host |
102
+ +---------------+-------------+
103
+ | test_user | 10.0.75.% |
104
+ | test_user | localhost |
105
+ +---------------+-------------+
106
+ ```
107
+
108
+ また、以下のshow grantsで接続したいユーザーが接続したいデータベースに権限が付与されているか確認したいです。
109
+ このsql文の'test_user'@'10.0.75.%'の部分は実際に接続したいユーザーに読み替えてください。
110
+
111
+ ```
112
+ > show grants for 'test_user'@'10.0.75.%';
113
+ ```
114
+
115
+ 下記は一例ですが、GRANT ALL PRIVILEGES ON `test`.* TO 'test_user'@'10.0.75.%' のような行があるか確認したいです。
116
+
117
+ ```
118
+ +-----------------------------------------------------------------------+
119
+ | Grants for test_user@10.0.75.% |
120
+ +-----------------------------------------------------------------------+
121
+ | GRANT USAGE ON *.* TO 'test_user'@'10.0.75.%' |
122
+ | GRANT ALL PRIVILEGES ON `test`.* TO 'test_user'@'10.0.75.%' |
123
+ +-----------------------------------------------------------------------+
124
+ ```
125
+
126
+ #### MySQL serverが実行されているPCからの接続
127
+
128
+ 上記のアクセス権限の確認結果にlocalhostが含まれている場合に、この確認を行って頂きたいです。
129
+
130
+ tohokukagakuさんのPCからmysql.exeでは接続できなかったということですが、MySQL serverが実行されているPCからの接続はどうでしょうか?
131
+ MySQL serverが稼働しているPCから、mysql.exeを使って接続したいユーザーでログインできるか確認してください。
132
+ test_userとtest_passの部分は実際に接続したいユーザー名とパスワードに読み替えてください。
133
+
134
+ ```
135
+ > mysql.exe --host=localhost --port=3306 --user=test_user --password=test_pass --database=test
136
+ ```
137
+
138
+ #### ローカルPCから接続できなかったときのエラーメッセージ
139
+
140
+ 頂いたコメントで、ローカルPCからは接続できなかったということですが、このときのエラーメッセージはどのようなものでしょうか?
141
+
142
+ > > mysql.exe --host=接続先ホスト名 --port=3306 --user=ユーザー --password=パスワード --database=データベース名
143
+ > 試してみましたが接続することができませんでした。
144
+
145
+ また、データベース名の指定ですが、A5:SQL Mk-2の接続設定のデータベースの欄の名前です。この場合はデータベース名とスキーマ名は同じと考えてよいと思います。
146
+
147
+ > 自分は接続先データベース名は A5:SQL Mk-2 のスキーマと同じだと思い、"test" にしているのですがもしかして間違いでしたか?
148
+
149
+ A5:SQL Mk-2からは接続できるということですが、たとえば、A5:SQL Mk-2の接続設定が下図のようなものだとして、
150
+
151
+ ![イメージ説明](be7e5fb0f3b19edb42b42e11583fa83f.png)
152
+
153
+ 下記のように同じ設定でもmysql.exeからは接続できないということでしょうか?
154
+ 設定は、tohokukagakuさんのPCのA5:SQL Mk-2の接続設定に読み替えてください。
155
+
156
+ ```
157
+ > mysql.exe --host=10.75.0.200 --port=3306 --user=test_user --password=test_pass --database=test
158
+ ```
159
+
160
+ #### ローカルPCにMySQL serverはインストールされていますか
161
+
162
+ mysql.exeで接続確認をされたということですが、ローカルPCにMySQL serverがインストールされているということでしょうか?
163
+ もしそうであれば、ローカルPCのMySQL serverが稼働していてA5:SQL Mk-2がそこへ接続しているということはないでしょうか?
164
+
165
+ 以上、すこし項目が多いですがご確認ください。