質問編集履歴
6
データベース情報追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -15,6 +15,7 @@
|
|
15
15
|
- SSHパスワード:testpassword
|
16
16
|
|
17
17
|
### データベース情報
|
18
|
+
MySQL
|
18
19
|
- データベース名:testdb
|
19
20
|
- ユーザ名:test
|
20
21
|
- パスワード:password
|
5
SSHTunnelForwarder実行結果に関する追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -209,4 +209,8 @@
|
|
209
209
|
(2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")
|
210
210
|
```
|
211
211
|
が悪さしていると思われます。`var/run/mysqld/mysqld.sock` を確認したらファイルが存在しなかったため新たに作成してもう一回実行してみましたが、うまく行きませんでした。
|
212
|
-
なにか考えられる原因がわかる方がいればご教授お願いします。よろしくお願いいたします。
|
212
|
+
なにか考えられる原因がわかる方がいればご教授お願いします。よろしくお願いいたします。
|
213
|
+
|
214
|
+
|
215
|
+
### 追記
|
216
|
+
SSHTunnelForwarderを実行しできており、server変数はきちんと取得されています。
|
4
database.pyの編集、それに伴うエラーの変更、文章の大幅な変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -8,6 +8,18 @@
|
|
8
8
|
- sqlalchemy
|
9
9
|
- mysql(外部サーバ上においてあるデータベースを使用)
|
10
10
|
|
11
|
+
### SSH情報(セキュリティのため仮のものにしています)
|
12
|
+
- ホスト名:111.111.111.111
|
13
|
+
- ポート:1111
|
14
|
+
- SSHユーザ名:testuser
|
15
|
+
- SSHパスワード:testpassword
|
16
|
+
|
17
|
+
### データベース情報
|
18
|
+
- データベース名:testdb
|
19
|
+
- ユーザ名:test
|
20
|
+
- パスワード:password
|
21
|
+
- ホスト名:localhost
|
22
|
+
|
11
23
|
### ディレクトリ構成
|
12
24
|
```
|
13
25
|
├── database.py
|
@@ -19,19 +31,23 @@
|
|
19
31
|
|
20
32
|
#### database.py
|
21
33
|
```
|
34
|
+
from sshtunnel import SSHTunnelForwarder
|
22
35
|
from sqlalchemy import create_engine
|
23
36
|
from sqlalchemy.orm import sessionmaker, scoped_session
|
24
37
|
|
25
|
-
DATABASE_URL = "mysql://%s:%s@%s/%s?charset=utf8" % (
|
26
|
-
"ユーザ名",
|
27
|
-
|
38
|
+
with SSHTunnelForwarder(
|
28
|
-
"
|
39
|
+
("111.111.111.111", 1111),
|
40
|
+
ssh_host_key=None,
|
29
|
-
"
|
41
|
+
ssh_username="testuser",
|
42
|
+
ssh_password="testpassword",
|
43
|
+
remote_bind_address=("127.0.0.1", 3306),
|
44
|
+
) as server:
|
45
|
+
DATABASE_URL = f'mysql://{"test"}:{"password"}@localhost:{server.local_bind_port}/{"testdb"}?charset=utf8'
|
46
|
+
ENGINE = create_engine(DATABASE_URL, encoding="utf-8", echo=True)
|
47
|
+
# Sessionの作成
|
48
|
+
session = scoped_session(
|
49
|
+
sessionmaker(autocommit=False, autoflush=False, bind=ENGINE)
|
30
|
-
)
|
50
|
+
)
|
31
|
-
ENGINE = create_engine(DATABASE_URL, encoding="utf-8", echo=True)
|
32
|
-
|
33
|
-
# Sessionの作成
|
34
|
-
session = scoped_session(sessionmaker(autocommit=False, autoflush=False, bind=ENGINE))
|
35
51
|
```
|
36
52
|
|
37
53
|
#### models.py
|
@@ -84,6 +100,47 @@
|
|
84
100
|
|
85
101
|
```
|
86
102
|
Traceback (most recent call last):
|
103
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/engine/base.py", line 3141, in _wrap_pool_connect
|
104
|
+
return fn()
|
105
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 301, in connect
|
106
|
+
return _ConnectionFairy._checkout(self)
|
107
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 755, in _checkout
|
108
|
+
fairy = _ConnectionRecord.checkout(pool)
|
109
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 419, in checkout
|
110
|
+
rec = pool._do_get()
|
111
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/pool/impl.py", line 145, in _do_get
|
112
|
+
self._dec_overflow()
|
113
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
|
114
|
+
compat.raise_(
|
115
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 211, in raise_
|
116
|
+
raise exception
|
117
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/pool/impl.py", line 142, in _do_get
|
118
|
+
return self._create_connection()
|
119
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 247, in _create_connection
|
120
|
+
return _ConnectionRecord(self)
|
121
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 362, in __init__
|
122
|
+
self.__connect(first_connect_check=True)
|
123
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 605, in __connect
|
124
|
+
pool.logger.debug("Error on connect(): %s", e)
|
125
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__
|
126
|
+
compat.raise_(
|
127
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/util/compat.py", line 211, in raise_
|
128
|
+
raise exception
|
129
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/pool/base.py", line 599, in __connect
|
130
|
+
connection = pool._invoke_creator(self)
|
131
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/engine/create.py", line 578, in connect
|
132
|
+
return dialect.connect(*cargs, **cparams)
|
133
|
+
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/engine/default.py", line 559, in connect
|
134
|
+
return self.dbapi.connect(*cargs, **cparams)
|
135
|
+
File "/home/kson/.local/lib/python3.8/site-packages/MySQLdb/__init__.py", line 130, in Connect
|
136
|
+
return Connection(*args, **kwargs)
|
137
|
+
File "/home/kson/.local/lib/python3.8/site-packages/MySQLdb/connections.py", line 185, in __init__
|
138
|
+
super().__init__(*args, **kwargs2)
|
139
|
+
MySQLdb._exceptions.OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")
|
140
|
+
|
141
|
+
The above exception was the direct cause of the following exception:
|
142
|
+
|
143
|
+
Traceback (most recent call last):
|
87
144
|
File "main.py", line 11, in <module>
|
88
145
|
Base.metadata.create_all(bind=ENGINE)
|
89
146
|
File "/home/kson/.local/lib/python3.8/site-packages/sqlalchemy/sql/schema.py", line 4744, in create_all
|
@@ -140,7 +197,7 @@
|
|
140
197
|
return Connection(*args, **kwargs)
|
141
198
|
File "/home/kson/.local/lib/python3.8/site-packages/MySQLdb/connections.py", line 185, in __init__
|
142
199
|
super().__init__(*args, **kwargs2)
|
143
|
-
sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (
|
200
|
+
sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")
|
144
201
|
(Background on this error at: http://sqlalche.me/e/14/e3q8)
|
145
202
|
|
146
203
|
```
|
@@ -149,21 +206,7 @@
|
|
149
206
|
### 考えられる原因
|
150
207
|
|
151
208
|
```
|
152
|
-
(
|
209
|
+
(2002, "Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)")
|
153
210
|
```
|
211
|
+
が悪さしていると思われます。`var/run/mysqld/mysqld.sock` を確認したらファイルが存在しなかったため新たに作成してもう一回実行してみましたが、うまく行きませんでした。
|
154
|
-
|
212
|
+
なにか考えられる原因がわかる方がいればご教授お願いします。よろしくお願いいたします。
|
155
|
-
なので同様のエラーに出会った人の記事などを参考にし、`/etc/mysql/my.cnf` を`[mysqld]` の内容をコメントアウトしたり、 `/etc/hosts.allow` を `mysqld: ALL: allow` に設定するなどしましたが、いまだにこのエラーが発生しています。
|
156
|
-
何か考えられる原因はありますでしょうか。
|
157
|
-
よろしくお願いします。
|
158
|
-
|
159
|
-
### 追記
|
160
|
-
以下のホストとポートに設置してあるubuntuサーバにて
|
161
|
-

|
162
|
-
mysql-serverをインストールし、そこのmysqlデータベースに接続しようとしています。
|
163
|
-
|
164
|
-
### 追記2
|
165
|
-
`sudo ufw status` にて確認したファイアーウォールの設定です。
|
166
|
-

|
167
|
-
|
168
|
-
`netstat -tlpn` の実行結果です
|
169
|
-

|
3
質問に対する追記事項
title
CHANGED
File without changes
|
body
CHANGED
@@ -159,4 +159,11 @@
|
|
159
159
|
### 追記
|
160
160
|
以下のホストとポートに設置してあるubuntuサーバにて
|
161
161
|

|
162
|
-
mysql-serverをインストールし、そこのmysqlデータベースに接続しようとしています。
|
162
|
+
mysql-serverをインストールし、そこのmysqlデータベースに接続しようとしています。
|
163
|
+
|
164
|
+
### 追記2
|
165
|
+
`sudo ufw status` にて確認したファイアーウォールの設定です。
|
166
|
+

|
167
|
+
|
168
|
+
`netstat -tlpn` の実行結果です
|
169
|
+

|
2
追記を修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -157,6 +157,6 @@
|
|
157
157
|
よろしくお願いします。
|
158
158
|
|
159
159
|
### 追記
|
160
|
-
以下のホストとポートにて
|
160
|
+
以下のホストとポートに設置してあるubuntuサーバにて
|
161
161
|

|
162
|
-
|
162
|
+
mysql-serverをインストールし、そこのmysqlデータベースに接続しようとしています。
|
1
データベースについての情報を追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -154,4 +154,9 @@
|
|
154
154
|
のエラーに書いてあるようにデータベースの接続がうまくいっていないみたいです。
|
155
155
|
なので同様のエラーに出会った人の記事などを参考にし、`/etc/mysql/my.cnf` を`[mysqld]` の内容をコメントアウトしたり、 `/etc/hosts.allow` を `mysqld: ALL: allow` に設定するなどしましたが、いまだにこのエラーが発生しています。
|
156
156
|
何か考えられる原因はありますでしょうか。
|
157
|
-
よろしくお願いします。
|
157
|
+
よろしくお願いします。
|
158
|
+
|
159
|
+
### 追記
|
160
|
+
以下のホストとポートにて
|
161
|
+

|
162
|
+
ubuntu18環境にてmysql-serverをインストールし、そこでmysqlデータベースを使用しています。
|