如何通过Python检查给定MySQL服务器的连接?

2024-06-17 12:43:00 发布

您现在位置:Python中文网/ 问答频道 /正文

总之,我试图通过Python验证给定MySQL服务器的连接,提供主机、用户名、密码和模式。我尝试使用子程序模块,例如

subprocess.check_call(['mysql', '-u', 'root'])

但是它会在终端中打开mysql,这不是我想要的。我也尝试过mysqldb,但它不支持python3+。在

有没有一种方法可以通过Python测试MySQL服务器的参数?至少我想知道它是否有联系。如果我能知道更多关于连接失败的细节就更好了。在

谢谢!在


Tags: 方法服务器终端密码checkmysql模式root
3条回答


import pymysql

def MySQLCheck(*args, **kwargs):
    try:
        conn = pymysql.connect(*args, **kwargs)
        cursor = conn.cursor()
        cursor.execute("show databases;")
        r = cursor.fetchall()
        conn.close()
        return r
    except Exception as e: return e

使用示例:

^{pr2}$

performance\u schema',),('phpmyadmin',),('plugin',),('test',)

请注意,MySQLCheck()的返回值可能是一个异常,或者是一个元组,如果一切正常并执行了查询。在

要在Ubuntu/Debian上安装PyMySQL for Python3,请执行以下操作:

$ sudo apt-get install python3-setuptools
$ sudo easy_install3 pip
$ sudo pip3.2 install PyMySQL

我希望这是你需要的答案。在

你可以用这样的东西。包含连接参数的配置文件和带有错误检查的try语句。在

创建一个名为配置.py在

config = {
  'user': 'username',
  'password': 'password',
  'host': 'host_name or ip',
  'database': 'database',
  'raise_on_warnings': True,
}

使用mysql.connenctor在

^{pr2}$

根据this question,您可以查看python3.3+的PyMySQL

如果您真的想使用子进程,可以添加'-e'标志在mysql中执行命令。在

subprocess.check_call(['mysql', '-u', 'root', '-ppass', '-e', "show databases;"])

相关问题 更多 >