PythonにおけるMySQLdbのconnectの使い方


MySQLdbモジュールはpythonがmysqlデータベースに接続するモジュールで、mysqlデータベースを操作するのによく使われています.データベースに接続するときにconnectが最もよく使われる方法です.この方法には多くのパラメータがあります.まとめてみました.主にいくつかあります.
connect()メソッドは、データベースに接続し、データベース接続オブジェクトを返します.www.gyyxに接続する場合.comサーバーのmysqlという名前のMySQLデータベースでは、接続列はこのように書くことができます.
db = MySQLdb.connect(host="www.gyyx.com",user="user",passwd="xxx",db="mysql")
connect()のパラメータのリストは次のとおりです.
host、接続されたデータベース・サーバ・ホスト名、デフォルトはローカル・ホスト(localhost).
userは、データベースに接続するユーザー名で、デフォルトは現在のユーザーです.
passwd、パスワードを接続し、デフォルト値はありません.
db、接続されたデータベース名、デフォルト値はありません.
convは、Pythonタイプの辞書に文字をマッピングします.デフォルトはMySQLdbです.converters.conversions
cursorclass,cursor()が使用する種類で、デフォルト値はMySQLdb.cursors.Cursor.
compress、プロトコル圧縮機能を有効にします.
named_pipeは、windowsで名前付きパイプに接続されています.
init_commandは、接続が確立されると、データベース・サーバに文を指定して実行します.
read_default_file、指定したMySQLプロファイルを使用します.
read_default_group、読み込まれたデフォルトグループ.
unix_socketは、unixでは使用するソケットを接続し、デフォルトではTCPを使用します.
port、データベース・サーバの接続ポートを指定します.デフォルトは3306です.
オブジェクトのdbを接続します.close()メソッドは、データベース接続を閉じ、関連リソースを解放します.
オブジェクトのdbを接続します.Cursor([cursorClass])メソッドは、データベース内のデータにアクセスおよび操作するためのポインタオブジェクトを返します.
オブジェクトのdbを接続します.begin()メソッドは、データベースのAUTOMMITがオンの場合、トランザクション呼び出しcommit()とrollback()が終了するまでトランザクションを開始するために使用されます.
オブジェクトのdbを接続します.commit()とdb.rollback()メソッドは、トランザクションのコミットとロールバックをそれぞれ表します.
ポインタオブジェクトのcursor.close()メソッドはポインタを閉じ、関連リソースを解放します.
ポインタオブジェクトのcursor.execute(query[,parameters])メソッドは、データベースクエリーを実行します.
ポインタオブジェクトのcursor.fetchall()は、ポインタ結果セットのすべてのローを取り出し、返される結果セットのメタグループ(tuples)を取り出します.
ポインタオブジェクトのcursor.fetchmany([size=cursor.arraysize])は、クエリー結果セットから複数のローを取り出し、オプションのパラメータで取り出すローの数を指定します.
ポインタオブジェクトのcursor.fetchone()は、クエリー結果セットから次のローを返します.
ポインタオブジェクトのcursor.arraysizeプロパティはcursorによって指定されます.fetchmany()メソッドは、fetchall()のパフォーマンスに影響するローの数を返します.デフォルトは1です.
ポインタオブジェクトのcursor.rowcountプロパティは、最後のクエリーまたは更新で発生したローの数を示します.-1は、まだクエリーが開始されていないか、データがクエリーされていないことを示します.
次にmysqlを接続する例を示します.
   
   
   
   
  1. def mysql_conn():  
  2.     try:  
  3.         conn = MySQLdb.connect(host = '192.168.8.100',user = 'mysql',passwd = '123456',connect_timeout=10)  
  4.         cursor = conn.cursor()   
  5.         sql = "SELECT COUNT(1) FROM mysql.user" 
  6.         cursor.execute(sql)  
  7.         alldata = cursor.fetchall()  
  8.         count = alldata[0][0]  
  9.         cursor.close()  
  10.         conn.close()  
  11.         print count  
  12.     except Exception,e:  
  13.         print "Can not Connect to mysql server"