如何从 Mac 连接到虚拟机上的本地数据库? (平行线)

How to connect to local database on virtual machine from Mac? (Parallels)

我正在 Mac OS 上的 Jupyter notebook 上编写 python 脚本,我正在尝试连接到位于我的 Parallels Windows 操作系统是 运行 从我的外部硬盘驱动器。

我试过以下代码:

import pyodbc
from sqlalchemy import create_engine
import urllib
import json
import requests
import pandas as pd
import codecs
import datetime
import pytz
import mysql.connector
from mysql.connector import Error

params = 'DRIVER={ODBC Driver 13 for SQL Server};' 'SERVER=local;' 'DATABASE=Totepro;'

params = urllib.parse.quote_plus(params)
db = create_engine('mssql+pyodbc:///?odbc_connect=%s' % params)

def get_new_race_data():
    sql_get_data = '''
    SELECT * FROM RaceRowReport
    WHERE RaceKey = cur_race_key
    '''

new_race_data = pd.read_sql_query(sql_get_data, db)
return new_race_data

get_new_race_data()

这是输出:


OperationalError: (pyodbc.OperationalError) ('HYT00', '[HYT00] [Microsoft][ODBC Driver 13 for SQL Server]Login timeout expired (0) (SQLDriverConnect)')
(Background on this error at: http://sqlalche.me/e/e3q8)

在调整连接字符串方面,我也尝试过以下方法:

SERVER=10.211.55.3

但是我仍然遇到同样的问题。我已经从 windows 关闭了防火墙,但仍然没有。 ..

然后我尝试了:

import mysql.connector
from mysql.connector import Error
connection = mysql.connector.connect(host='10.211.55.3',
                                         database='Totepro')

现在我发现自己遇到以下错误:

ProgrammingError: 1045 (28000): Access denied for user ''@'localmac' (using password: NO)

任何帮助都会有所帮助。

谢谢

我假设您正在尝试连接到 MS SQL 服务器,尽管您的问题包含相互矛盾的信息 - 部分内容涉及 MSSQL,而其他部分提到MySQL.

首先您需要与来宾建立网络连接。 Access Parallels Windows localhost from Mac 可能对此有所帮助。我猜想当您尝试使用 SERVER=local 时,您实际上并没有将 local 映射到来宾 VM。一旦您确保来宾 VM 使用“共享网络”并找到其 public IP 地址(从现在起称为 YOUR_VM_IP_ADDRESS),请检查您是否可以使用

ping 通它
ping YOUR_VM_IP_ADDRESS

然后检查是否可以访问SQL服务器的端口(默认为1433),使用

nc -v YOUR_VM_IP_ADDRESS 1433
# -- or --
telnet YOUR_VM_IP_ADDRESS 1433
# shouldn't say "connection refused"

确保您可以使用 sqlcmd 连接(请注意,从 macOS 机器连接时,Windows 身份验证将不起作用,您必须使用 login/password):

sqlcmd -S YOUR_VM_IP_ADDRESS -U username -P password

以上测试成功后,您就有机会得到正确的连接字符串并建立 SQLAlchemy 连接。 可能会有所帮助。