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

質問編集履歴

6

データベース情報追記

2021/05/20 16:24

投稿

bz5adgjmptw0
bz5adgjmptw0

スコア18

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実行結果に関する追記

2021/05/20 16:23

投稿

bz5adgjmptw0
bz5adgjmptw0

スコア18

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の編集、それに伴うエラーの変更、文章の大幅な変更

2021/05/20 09:45

投稿

bz5adgjmptw0
bz5adgjmptw0

スコア18

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
- "外部サーバのIPアドレス",
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) (2013, "Lost connection to MySQL server at 'reading initial communication packet', system error: 0")
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
- (2013, "Lost connection to MySQL server at 'reading initial communication packet', system error: 0")
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
- ![接続先情報](2a28c769e42ea75fd5c4d92075885212.png)
162
- mysql-serverをインストールし、そこのmysqlデータベースに接続しようとしています。
163
-
164
- ### 追記2
165
- `sudo ufw status` にて確認したファイアーウォールの設定です。
166
- ![イメージ説明](ecf78b7c67744eff7736ca40c691870d.png)
167
-
168
- `netstat -tlpn` の実行結果です
169
- ![イメージ説明](8acfe7c6e1604bcf7dc9e7fbf4db44d0.png)

3

質問に対する追記事項

2021/05/20 09:31

投稿

bz5adgjmptw0
bz5adgjmptw0

スコア18

title CHANGED
File without changes
body CHANGED
@@ -159,4 +159,11 @@
159
159
  ### 追記
160
160
  以下のホストとポートに設置してあるubuntuサーバにて
161
161
  ![接続先情報](2a28c769e42ea75fd5c4d92075885212.png)
162
- mysql-serverをインストールし、そこのmysqlデータベースに接続しようとしています。
162
+ mysql-serverをインストールし、そこのmysqlデータベースに接続しようとしています。
163
+
164
+ ### 追記2
165
+ `sudo ufw status` にて確認したファイアーウォールの設定です。
166
+ ![イメージ説明](ecf78b7c67744eff7736ca40c691870d.png)
167
+
168
+ `netstat -tlpn` の実行結果です
169
+ ![イメージ説明](8acfe7c6e1604bcf7dc9e7fbf4db44d0.png)

2

追記を修正

2021/05/19 05:52

投稿

bz5adgjmptw0
bz5adgjmptw0

スコア18

title CHANGED
File without changes
body CHANGED
@@ -157,6 +157,6 @@
157
157
  よろしくお願いします。
158
158
 
159
159
  ### 追記
160
- 以下のホストとポートにて
160
+ 以下のホストとポートに設置しあるubuntuサーバにて
161
161
  ![接続先情報](2a28c769e42ea75fd5c4d92075885212.png)
162
- ubuntu18環境にてmysql-serverをインストールし、そこmysqlデータベースを使用しています。
162
+ mysql-serverをインストールし、そこmysqlデータベースに接続ようとしています。

1

データベースについての情報を追記

2021/05/18 17:30

投稿

bz5adgjmptw0
bz5adgjmptw0

スコア18

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
+ ![接続先情報](2a28c769e42ea75fd5c4d92075885212.png)
162
+ ubuntu18環境にてmysql-serverをインストールし、そこでmysqlデータベースを使用しています。