2012-03-09 8 views
-2

そして、私はSamsをインストールするためのスクリプトを書くことに決めました。メインアプリケーションのインストールの最初の部分が書かれていますが、データベースへの接続に問題がありました。次のコード:どのように私はmysqlに接続することができます

1. mysql -u root -p (need pass MySQL) 
2. GRANT ALL ON squidctrl.* TO [email protected] IDENTIFIED BY "yourpassword"; 
3. GRANT ALL ON squidlog.* TO [email protected] 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 [email protected] IDENTIFIED BY "%s";' % pass_sams) 
cursor.execute('GRANT ALL ON squidlog.* TO [email protected] IDENTIFIED BY "%s";' % pass_sams) 
cursor.close() 

この問題

+0

開始プログラムとの対話が必要な場合は、サブプロセスモジュールを使用します。しかし、この場合、より良いことは、データベースライブラリの一部を使用することだけです。 – Adam

答えて

0

を解決するために助けたすべての人のおかげで、ちょうどあなたがこのライブラリを学ぶのを助けることができるウェブサイトのオンラインの束がありますthis link here

をお読みください。また、thisは、このプロジェクトの公式リポジトリです。完全に文書化されていて、すべてをpythonでやるのに役立つシステムコマンドを呼び出すときには意味がありません。

1

PythonからMySQLにアクセスする場合は、os.systemで実行しないでください。

実際にはモジュール用に設計されたos.systemのサブプロセスを呼び出すべきではありません。 (あなたはとなり、はあなたのサブプロセスと通信できます)。

実際に実行する必要があるのは、MySQLdbモジュールを使用することです(これは、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を使用して、あるいは、そのようなSQL Alchemyとして、ORMを使用して検討する必要があります。

+0

上記のコマンドが端末に入力されましたが、わからないスクリプト言語に移行したときに、関数の詳細を記述できますか? – nosensus

+0

申し訳ありませんが、私はあなたが意味することを実際に得ていません。 MySQLdbはかなり簡単です:データベースに接続し、カーソルをつかんで、SQLを実行します。 –

+0

私の目的を説明しようとします – nosensus

0

はたぶん、あなたはこれを見てみたい:http://docs.sqlalchemy.org/en/latest/dialects/mysql.html

SQLAlchemyのは、ORMであり、それは非常に簡単です、さらにもしあなたが、PostgreSQLのエンジンへのMySQLから変更したい 将来的には、データベースとたくさんに作業を簡素化し、コードを書き直す必要はありません。

関連する問題