回答編集履歴
2
確認結果の追記
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
確認事項の追加
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
|
+

|
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
|
+
以上、すこし項目が多いですがご確認ください。
|