【问题标题】:Connect to MariaDB database on Synology NAS from SQLalchemy in python issue在 python 问题中从 SQLalchemy 连接到 Synology NAS 上的 MariaDB 数据库
【发布时间】:2021-12-29 03:27:41
【问题描述】:

继续我的问题here,我试图以更简单的方式提出这个问题。

按照本教程,我正在尝试使用 SQLalchemy 远程连接到我的 NAS 中的 Mariadb 数据库。代码如下:

# Module Imports
import mariadb
import sys


user = "my_name"
passwd = "my_pass"
host = "192.168.1.111"
db = "test"
port= "3307"

# Connect to MariaDB Platform
try:
    conn = mariadb.connect(
        user=user,
        password=passwd,
        host=host,
        port=3307,
        database=db

    )
except mariadb.Error as e:
    print(f"Error connecting to MariaDB Platform: {e}")
    sys.exit(1)

# Get Cursor
cur = conn.cursor()

然后我得到这个错误:

ERROR:root:Internal Python error in the inspect module.
Below is the traceback from this internal error.

Error connecting to MariaDB Platform: Can't connect to server on '192.168.1.111' (36)
Traceback (most recent call last):
  File "/var/folders/r5/wq0wq8mx0d56rbrbs38jt94w0000gn/T/ipykernel_39174/3834131737.py", line 14, in <module>
    conn = mariadb.connect(
mariadb.OperationalError: Can't connect to server on '192.168.1.111' (36)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/user/miniforge3/lib/python3.9/site-packages/IPython/core/interactiveshell.py", line 3444, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "/var/folders/r5/wq0wq8mx0d56rbrbs38jt94w0000gn/T/ipykernel_39174/3834131737.py", line 24, in <module>
    sys.exit(1)
SystemExit: 1

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/user/miniforge3/lib/python3.9/site-packages/IPython/core/ultratb.py", line 1101, in get_records
    return _fixed_getinnerframes(etb, number_of_lines_of_context, tb_offset)
  File "/Users/user/miniforge3/lib/python3.9/site-packages/IPython/core/ultratb.py", line 248, in wrapped
    return f(*args, **kwargs)
  File "/Users/user/miniforge3/lib/python3.9/site-packages/IPython/core/ultratb.py", line 281, in _fixed_getinnerframes
    records = fix_frame_records_filenames(inspect.getinnerframes(etb, context))
  File "/Users/user/miniforge3/lib/python3.9/inspect.py", line 1541, in getinnerframes
    frameinfo = (tb.tb_frame,) + getframeinfo(tb, context)
AttributeError: 'tuple' object has no attribute 'tb_frame'

我已经 brew 安装了 mariadb-connector-cand ; brew 安装 mariadb;和 pip 安装了 PyMySQL。

有人帮忙吗?

【问题讨论】:

  • 那么,您可以使用phpMyAdmin 从您正在运行的同一台计算机连接到此服务器吗?
  • 本地我没有 phpMyAdmin。我使用 Synology 管理面板中的 phpMyAdmin 访问我的 mariadb。
  • 您确定 Synology 上的 MariaDB 插件已配置为通过网络提供服务?

标签: python database sqlalchemy mariadb nas


【解决方案1】:

我赞同@Tim Roberts。转到您的 NAS“已安装包”,单击 MariaDB 10 应用程序。在其中,请确保数据库可通过 Intranet 或 Internet 共享。它被称为 TCP/IP 连接。检查它,您的连接将正常工作。

这是很多人在第一次启动 Mariadb 时忘记的一点。

【讨论】:

    猜你喜欢
    • 2022-10-02
    • 2019-03-06
    • 2023-03-28
    • 2021-07-14
    • 2016-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多