質問編集履歴
6
データベース情報追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -32,6 +32,8 @@
|
|
32
32
|
|
33
33
|
### データベース情報
|
34
34
|
|
35
|
+
MySQL
|
36
|
+
|
35
37
|
- データベース名:testdb
|
36
38
|
|
37
39
|
- ユーザ名:test
|
5
SSHTunnelForwarder実行結果に関する追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -421,3 +421,11 @@
|
|
421
421
|
が悪さしていると思われます。`var/run/mysqld/mysqld.sock` を確認したらファイルが存在しなかったため新たに作成してもう一回実行してみましたが、うまく行きませんでした。
|
422
422
|
|
423
423
|
なにか考えられる原因がわかる方がいればご教授お願いします。よろしくお願いいたします。
|
424
|
+
|
425
|
+
|
426
|
+
|
427
|
+
|
428
|
+
|
429
|
+
### 追記
|
430
|
+
|
431
|
+
SSHTunnelForwarderを実行しできており、server変数はきちんと取得されています。
|
4
database.pyの編集、それに伴うエラーの変更、文章の大幅な変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -18,6 +18,30 @@
|
|
18
18
|
|
19
19
|
|
20
20
|
|
21
|
+
### SSH情報(セキュリティのため仮のものにしています)
|
22
|
+
|
23
|
+
- ホスト名:111.111.111.111
|
24
|
+
|
25
|
+
- ポート:1111
|
26
|
+
|
27
|
+
- SSHユーザ名:testuser
|
28
|
+
|
29
|
+
- SSHパスワード:testpassword
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
### データベース情報
|
34
|
+
|
35
|
+
- データベース名:testdb
|
36
|
+
|
37
|
+
- ユーザ名:test
|
38
|
+
|
39
|
+
- パスワード:password
|
40
|
+
|
41
|
+
- ホスト名:localhost
|
42
|
+
|
43
|
+
|
44
|
+
|
21
45
|
### ディレクトリ構成
|
22
46
|
|
23
47
|
```
|
@@ -40,31 +64,39 @@
|
|
40
64
|
|
41
65
|
```
|
42
66
|
|
67
|
+
from sshtunnel import SSHTunnelForwarder
|
68
|
+
|
43
69
|
from sqlalchemy import create_engine
|
44
70
|
|
45
71
|
from sqlalchemy.orm import sessionmaker, scoped_session
|
46
72
|
|
47
73
|
|
48
74
|
|
49
|
-
DATABASE_URL = "mysql://%s:%s@%s/%s?charset=utf8" % (
|
50
|
-
|
51
|
-
"ユーザ名",
|
52
|
-
|
53
|
-
|
75
|
+
with SSHTunnelForwarder(
|
54
|
-
|
76
|
+
|
55
|
-
"
|
77
|
+
("111.111.111.111", 1111),
|
78
|
+
|
56
|
-
|
79
|
+
ssh_host_key=None,
|
80
|
+
|
57
|
-
"
|
81
|
+
ssh_username="testuser",
|
82
|
+
|
58
|
-
|
83
|
+
ssh_password="testpassword",
|
84
|
+
|
85
|
+
remote_bind_address=("127.0.0.1", 3306),
|
86
|
+
|
87
|
+
) as server:
|
88
|
+
|
89
|
+
DATABASE_URL = f'mysql://{"test"}:{"password"}@localhost:{server.local_bind_port}/{"testdb"}?charset=utf8'
|
90
|
+
|
91
|
+
ENGINE = create_engine(DATABASE_URL, encoding="utf-8", echo=True)
|
92
|
+
|
93
|
+
# Sessionの作成
|
94
|
+
|
95
|
+
session = scoped_session(
|
96
|
+
|
97
|
+
sessionmaker(autocommit=False, autoflush=False, bind=ENGINE)
|
98
|
+
|
59
|
-
)
|
99
|
+
)
|
60
|
-
|
61
|
-
ENGINE = create_engine(DATABASE_URL, encoding="utf-8", echo=True)
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
# Sessionの作成
|
66
|
-
|
67
|
-
session = scoped_session(sessionmaker(autocommit=False, autoflush=False, bind=ENGINE))
|
68
100
|
|
69
101
|
```
|
70
102
|
|
@@ -170,6 +202,88 @@
|
|
170
202
|
|
171
203
|
Traceback (most recent call last):
|
172
204
|
|
205
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 3141, in _wrap_pool_connect
|
206
|
+
|
207
|
+
return fn()
|
208
|
+
|
209
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 301, in connect
|
210
|
+
|
211
|
+
return _ConnectionFairy._checkout(self)
|
212
|
+
|
213
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 755, in _checkout
|
214
|
+
|
215
|
+
fairy = _ConnectionRecord.checkout(pool)
|
216
|
+
|
217
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 419, in checkout
|
218
|
+
|
219
|
+
rec = pool._do_get()
|
220
|
+
|
221
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/pool/impl.py", line 145, in _do_get
|
222
|
+
|
223
|
+
self._dec_overflow()
|
224
|
+
|
225
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
|
226
|
+
|
227
|
+
compat.raise_(
|
228
|
+
|
229
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 211, in raise_
|
230
|
+
|
231
|
+
raise exception
|
232
|
+
|
233
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/pool/impl.py", line 142, in _do_get
|
234
|
+
|
235
|
+
return self._create_connection()
|
236
|
+
|
237
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 247, in _create_connection
|
238
|
+
|
239
|
+
return _ConnectionRecord(self)
|
240
|
+
|
241
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 362, in __init__
|
242
|
+
|
243
|
+
self.__connect(first_connect_check=True)
|
244
|
+
|
245
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 605, in __connect
|
246
|
+
|
247
|
+
pool.logger.debug("Error on connect(): %s", e)
|
248
|
+
|
249
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
|
250
|
+
|
251
|
+
compat.raise_(
|
252
|
+
|
253
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 211, in raise_
|
254
|
+
|
255
|
+
raise exception
|
256
|
+
|
257
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 599, in __connect
|
258
|
+
|
259
|
+
connection = pool._invoke_creator(self)
|
260
|
+
|
261
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/engine/create.py", line 578, in connect
|
262
|
+
|
263
|
+
return dialect.connect(*cargs, **cparams)
|
264
|
+
|
265
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 559, in connect
|
266
|
+
|
267
|
+
return self.dbapi.connect(*cargs, **cparams)
|
268
|
+
|
269
|
+
File "/home/kson/.local/lib/python3.8/site-packages/MySQLdb/__init__.py", line 130, in Connect
|
270
|
+
|
271
|
+
return Connection(*args, **kwargs)
|
272
|
+
|
273
|
+
File "/home/kson/.local/lib/python3.8/site-packages/MySQLdb/connections.py", line 185, in __init__
|
274
|
+
|
275
|
+
super().__init__(*args, **kwargs2)
|
276
|
+
|
277
|
+
MySQLdb._exceptions.OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")
|
278
|
+
|
279
|
+
|
280
|
+
|
281
|
+
The above exception was the direct cause of the following exception:
|
282
|
+
|
283
|
+
|
284
|
+
|
285
|
+
Traceback (most recent call last):
|
286
|
+
|
173
287
|
File "main.py", line 11, in <module>
|
174
288
|
|
175
289
|
Base.metadata.create_all(bind=ENGINE)
|
@@ -282,7 +396,7 @@
|
|
282
396
|
|
283
397
|
super().__init__(*args, **kwargs2)
|
284
398
|
|
285
|
-
sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (20
|
399
|
+
sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")
|
286
400
|
|
287
401
|
(Background on this error at: http://sqlalche.me/e/14/e3q8)
|
288
402
|
|
@@ -300,38 +414,10 @@
|
|
300
414
|
|
301
415
|
```
|
302
416
|
|
303
|
-
(20
|
417
|
+
(2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")
|
304
|
-
|
418
|
+
|
305
|
-
```
|
419
|
+
```
|
420
|
+
|
306
|
-
|
421
|
+
が悪さしていると思われます。`var/run/mysqld/mysqld.sock` を確認したらファイルが存在しなかったため新たに作成してもう一回実行してみましたが、うまく行きませんでした。
|
422
|
+
|
307
|
-
|
423
|
+
なにか考えられる原因がわかる方がいればご教授お願いします。よろしくお願いいたします。
|
308
|
-
|
309
|
-
なので同様のエラーに出会った人の記事などを参考にし、`/etc/mysql/my.cnf` を`[mysqld]` の内容をコメントアウトしたり、 `/etc/hosts.allow` を `mysqld: ALL: allow` に設定するなどしましたが、いまだにこのエラーが発生しています。
|
310
|
-
|
311
|
-
何か考えられる原因はありますでしょうか。
|
312
|
-
|
313
|
-
よろしくお願いします。
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
### 追記
|
318
|
-
|
319
|
-
以下のホストとポートに設置してあるubuntuサーバにて
|
320
|
-
|
321
|
-
![接続先情報](2a28c769e42ea75fd5c4d92075885212.png)
|
322
|
-
|
323
|
-
mysql-serverをインストールし、そこのmysqlデータベースに接続しようとしています。
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
### 追記2
|
328
|
-
|
329
|
-
`sudo ufw status` にて確認したファイアーウォールの設定です。
|
330
|
-
|
331
|
-
![イメージ説明](ecf78b7c67744eff7736ca40c691870d.png)
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
`netstat -tlpn` の実行結果です
|
336
|
-
|
337
|
-
![イメージ説明](8acfe7c6e1604bcf7dc9e7fbf4db44d0.png)
|
3
質問に対する追記事項
test
CHANGED
File without changes
|
test
CHANGED
@@ -321,3 +321,17 @@
|
|
321
321
|
![接続先情報](2a28c769e42ea75fd5c4d92075885212.png)
|
322
322
|
|
323
323
|
mysql-serverをインストールし、そこのmysqlデータベースに接続しようとしています。
|
324
|
+
|
325
|
+
|
326
|
+
|
327
|
+
### 追記2
|
328
|
+
|
329
|
+
`sudo ufw status` にて確認したファイアーウォールの設定です。
|
330
|
+
|
331
|
+
![イメージ説明](ecf78b7c67744eff7736ca40c691870d.png)
|
332
|
+
|
333
|
+
|
334
|
+
|
335
|
+
`netstat -tlpn` の実行結果です
|
336
|
+
|
337
|
+
![イメージ説明](8acfe7c6e1604bcf7dc9e7fbf4db44d0.png)
|
2
追記を修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -316,8 +316,8 @@
|
|
316
316
|
|
317
317
|
### 追記
|
318
318
|
|
319
|
-
以下のホストとポートにて
|
319
|
+
以下のホストとポートに設置してあるubuntuサーバにて
|
320
320
|
|
321
321
|
![接続先情報](2a28c769e42ea75fd5c4d92075885212.png)
|
322
322
|
|
323
|
-
|
323
|
+
mysql-serverをインストールし、そこのmysqlデータベースに接続しようとしています。
|
1
データベースについての情報を追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -311,3 +311,13 @@
|
|
311
311
|
何か考えられる原因はありますでしょうか。
|
312
312
|
|
313
313
|
よろしくお願いします。
|
314
|
+
|
315
|
+
|
316
|
+
|
317
|
+
### 追記
|
318
|
+
|
319
|
+
以下のホストとポートにて
|
320
|
+
|
321
|
+
![接続先情報](2a28c769e42ea75fd5c4d92075885212.png)
|
322
|
+
|
323
|
+
ubuntu18環境にてmysql-serverをインストールし、そこでmysqlデータベースを使用しています。
|