【问题标题】:Jupyter Notebook unable to connect to local MySQL databaseJupyter Notebook 无法连接到本地 MySQL 数据库
【发布时间】:2020-10-14 01:19:39
【问题描述】:

我正在尝试将我使用 Google Colab 的 Jupyter Notebook 与我的本地 MySQL 数据库连接。当我在我首选的 IDE PyCharm 中运行此脚本时,它没有问题。只有当我在 Google Colab 或 Project Jupyter 中运行它时,都会出现相同的错误,才会发生这种情况。

import pymysql
import pandas as pd

mySQLuser = 'username'
mySQLpasswd = 'password'
mySQLhost = '127.0.0.1'
mySQLport = '3306'
mySQLdatabase = 'databasename'
  
connection = pymysql.connect(user = mySQLuser, passwd = mySQLpasswd, host = mySQLhost, port = mySQLport, db = mySQLdatabase)

我也对 sqlalchemy(create_engine) 和 mysql.connector 进行了同样的尝试,但得到了同样的错误。

OperationalError: (2003, "Can't connect to MySQL server on '127.0.0.1' ([Errno 111] Connection denied)")

我还尝试向用户授予所有权限,但这并没有改变任何东西。我在网上看到的另一个建议是将配置文件 (my.ini) 中的绑定地址设置为空或更改,但这也没有任何影响。

【问题讨论】:

    标签: python mysql jupyter-notebook google-colaboratory


    【解决方案1】:

    让它工作。尽管我将网络配置为允许,但服务提供商拒绝了请求,但我将其解决了。

    【讨论】:

      【解决方案2】:

      您确定您的 colab/jupyter 实例在本地运行吗?
      如果不是这种情况,您将无法访问 localhost (127.0.0.1) 上的 SQL 数据库,直到您使其可远程访问(这意味着几个步骤:使其可访问,更改代码中的 mySQLhost 地址,在您的 SQL 设置中授权来自主机服务器的连接)。

      【讨论】:

      • 要检查您的实例在本地运行的天气import socket socket.gethostbyname(socket.gethostname()),您可以将其更改为在本地运行。
      • 我在同一台计算机上运行它们,所以我认为它是本地的,但是因为它不起作用,所以假设它没有在本地运行是公平的。你知道一个视频或网页会包含 Windows 和 MySQL 8.0 的所有这些步骤吗?我见过与您所说的类似的东西,但它们适用于早期版本的 MySQL,或者不在 Windows 上。
      • @HackLab,ip不是127.0.0.1,所以不是本地的?
      • @AndrewSmith 否,此方法可以让您获得正在运行的机器的远程地址。如果它与您的本地计算机相同,则它正在您的本地计算机上运行。检查远程地址的最简单方法是使用类似whatismyipaddress.com 的网站
      • @HackLab,好的,它没有在本地运行,我将主机 ip 地址更改为本地机器的 ip,但现在出现超时错误
      猜你喜欢
      • 2019-07-24
      • 1970-01-01
      • 2018-05-24
      • 2019-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-10
      相关资源
      最近更新 更多