yugabytedbで「psycopg2.OperationalError: connection to server at」というエラーが発生する場合の対処について解説しています。
(.venv) C:\Users\user_\yugabyte-test>python data_in_db1.py Traceback (most recent call last): File "data_in_db1.py", line 4, in conn = psycopg2.connect(dbname='yugabyte',host='*****',port='5433',user='admin',password='******',sslmode="verify-full",sslrootcert=r"C:\Users\user_\test\root.crt") File "C:\Users\user_\yugabyte-test\.venv\lib\site-packages\psycopg2\__init__.py", line 122, in connect conn = _connect(dsn, connection_factory=connection_factory, **kwasync) psycopg2.OperationalError: connection to server at "*****" (**.***.***.**(ip address)), port 5433 failed: Connection timed out (0x0000274C/10060) Is the server running on that host and accepting TCP/IP connections?
yugabytedbで作成したClusterに接続を試みようとした時に上記の「psycopg2.OperationalError」というエラーが発生する場合があります。
このような場合は、「YugabyteDB Managed」のダッシュボードで左メニューの「Clusters」をクリックし、作成し接続を試みるClusterを選択します。
選択後、選択したClusterの「Overview」が表示されます。表示後、左側に「Actions」ボタンがあるので、こちらをクリックします。クリックすると、プルダウンメニューが表示されます。メニューから「Edit IP Allow List」をクリックします。
クリックすると「Add IP Allow List」というポップアップが表示されます。ポップアップ内でエラー発生時に許可しているipaddressなどが表示されており、その下に「Create New List add Add to Cluster」ボタンがありますので、こちらをクリックします。クリックすると、新しく追加するipaddressのリストを追加するためのフォームが表示されます。このフォーム内の「Detect and add my IP to this list」のリンクをクリックします。クリックすると、現在の貴方のipaddressが表示されます。このipaddressと、エラー発生時に許可していたipaddressを比較してください。比較したときに異なっていれば、「psycopg2.OperationalError」というエラーが発生します。
発生を防ぐために、フォーム内の「NAME」にリストの名前を入力し、現在のipaddressを追加し「Save」ボタンをクリックし、ipaddressを許可します。許可には多少時間がかかる場合もありますが、許可後、再度Clusterへの接続を試みると成功します。
そもそもなぜ今回このようなことが発生したのかというと、現在使用しているインターネット環境が、「Speed Wi-Fi NEXT W04│UQ WiMAX(wifi/ルーター)」を用いたもので、WiMAXで割り当てられるグローバルIPアドレスが、ルーターの接続の度に変更されてしまうことが原因でした。
コメント