如何连接到mysq

2024-06-26 10:39:02 发布

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

所以我决定写一个脚本来安装Sams,安装主应用程序的第一部分是写的,但是连接到数据库MySQL时出现了问题,在安装说明中有以下代码:

1. mysql -u root -p (need pass MySQL)
2. GRANT ALL ON squidctrl.* TO sams@localhost IDENTIFIED BY "yourpassword";
3. GRANT ALL ON squidlog.* TO sams@localhost IDENTIFIED BY "yourpassword"; (yourpassword – any wish pass)

既然用户已经帮助我解释了为什么一旦我完成了脚本,谁能派上用场。你知道吗

#connect to the database mysql
user=raw_input('Mysql username -> ')
password=raw_input('Mysql password -> ')
db=MySQLdb.Connect(host="localhost", user=user, passwd=password)
cursor=db.cursor()
pass_sams=raw_input("chose password for sams user -> ")
cursor.execute('GRANT ALL ON squidctrl.* TO sams@localhost IDENTIFIED BY "%s";' % pass_sams)
cursor.execute('GRANT ALL ON squidlog.* TO sams@localhost IDENTIFIED BY "%s";' % pass_sams)
cursor.close()

感谢所有帮助解决这个问题的人


Tags: tolocalhostinputrawbyonpasspassword
3条回答

如果您要从Python访问MySQL,那么不应该通过os.system进行访问。你知道吗

实际上,您不应该用os.system调用子流程,subprocess模块就是为这个目的设计的。(然后您将能够与您的子流程进行通信)。你知道吗

实际上,您应该使用^{}模块(您应该能够使用apt通过python-mysqldb包安装它)。以下是您的使用方法:

import MySQLdb
db = MySQLdb.connect(username='sams', password='yourpassword', db='mydb')
cursor = db.cusor()
cursor.execute('YOUR SQL GOES HERE')
data = cursor.fetchall() #Or cursor.fetchone() for a single row.

现在,您可能需要考虑使用可选的OurSQL,或者甚至使用ORM,例如SQL Alchemy。你知道吗

也许你想看看这个:http://docs.sqlalchemy.org/en/latest/dialects/mysql.html

Sqlalchemy是一个ORM,它简化了很多数据库的工作,而且在将来 如果您想从MySQL改为PostgreSQL引擎,这非常简单,而且不需要重写任何代码。你知道吗

读一下this link here

网上有很多网站可以帮助你学习这个图书馆。另外,this是项目的官方存储库。调用系统命令是没有意义的,当你有一个很好的界面,很好的文档,可以帮助你做任何事情pythonwise

相关问题 更多 >