安装mysql-connector-python的详细步骤
下文给大家带来安装mysql-connector-python的详细步骤有关内容,相信大家一定看过类似的文章。我们给大家带来的有何不同呢?一起来看看正文部分吧,相信看完安装mysql-connector-python的详细步骤你一定会有所收获。
什么是MySQL Connector/Python?
MySQL Connector/Python enables Python programs to access MySQL databases, using an API that is compliant with thePython Database API Specification v2.0 (PEP 249). It is written in pure Python and does not have any dependencies except for thePython Standard Library.
简单来说就是Python用来连接并访问MySQL的第三方库;
安装mysql-connector-python
sht-sgmhadoopcm-01.telenav.cn:mysqladmin:/usr/local/virtualenv/test1_env:>source test1_env/bin/activate
(test1_env) sht-sgmhadoopcm-01.telenav.cn:mysqladmin:/usr/local/virtualenv/test1_env:>pip install mysql-connector-python
(test1_env) [root@sht-sgmhadoopcm-01 software]# pip list|grep mysql
mysql-connector-python 8.0.15
检查安装是否成功
(test1_env) [root@sht-sgmhadoopcm-01 software]# ls -ltrh test1_env/lib/python2.7/site-packages/mysql_connector_python-8.0.15.dist-info/
total 124K
-rw-r--r-- 1 root root105 Feb 13 00:04 WHEEL
-rw-r--r-- 1 root root 1.5K Feb 13 00:04 METADATA
-rw-r--r-- 1 root root94K Feb 13 00:04 LICENSE.txt
-rw-r--r-- 1 root root40 Feb 13 00:04 top_level.txt
-rw-r--r-- 1 root root4 Feb 13 00:04 INSTALLER
-rw-r--r-- 1 root root 8.4K Feb 13 00:04 RECORD
>>> from distutils.sysconfig import get_python_lib
>>> print get_python_lib()
/opt/software/test1_env/lib/python2.7/site-packages
连接MySQL
方法1: connect()
importmysql.connectorcnx=mysql.connector.connect(user='root',password='agm43gadsg',host='172.16.101.54',port='3306',database='testdb')cnx.close()
方法2:MySQLConnection()
frommysql.connectorimport(connection)cnx=connection.MySQLConnection(user='root',password='agm43gadsg',host='172.16.101.54',port='3306',database='testdb')cnx.close()
方法3:配置文件
importmysql.connectorconfig={'user':'root','password':'agm43gadsg','host':'172.16.101.54','port':'3306','database':'testdb'}cnx=mysql.connector.connect(**config)cnx.close()
创建表
from__future__importprint_functionimportmysql.connectorfrommysql.connectorimporterrorcodeDB_NAME='testdb2'TABLES={}TABLES['employees']=("CREATETABLE`employees`(""`emp_no`int(11)NOTNULLAUTO_INCREMENT,""`birth_date`dateNOTNULL,""`first_name`varchar(14)NOTNULL,""`last_name`varchar(16)NOTNULL,""`gender`enum('M','F')NOTNULL,""`hire_date`dateNOTNULL,""PRIMARYKEY(`emp_no`)"")ENGINE=InnoDB")TABLES['departments']=("CREATETABLE`departments`(""`dept_no`char(4)NOTNULL,""`dept_name`varchar(40)NOTNULL,""PRIMARYKEY(`dept_no`),UNIQUEKEY`dept_name`(`dept_name`)"")ENGINE=InnoDB")TABLES['salaries']=("CREATETABLE`salaries`(""`emp_no`int(11)NOTNULL,""`salary`int(11)NOTNULL,""`from_date`dateNOTNULL,""`to_date`dateNOTNULL,""PRIMARYKEY(`emp_no`,`from_date`),KEY`emp_no`(`emp_no`),""CONSTRAINT`salaries_ibfk_1`FOREIGNKEY(`emp_no`)""REFERENCES`employees`(`emp_no`)ONDELETECASCADE"")ENGINE=InnoDB")TABLES['dept_emp']=("CREATETABLE`dept_emp`(""`emp_no`int(11)NOTNULL,""`dept_no`char(4)NOTNULL,""`from_date`dateNOTNULL,""`to_date`dateNOTNULL,""PRIMARYKEY(`emp_no`,`dept_no`),KEY`emp_no`(`emp_no`),""KEY`dept_no`(`dept_no`),""CONSTRAINT`dept_emp_ibfk_1`FOREIGNKEY(`emp_no`)""REFERENCES`employees`(`emp_no`)ONDELETECASCADE,""CONSTRAINT`dept_emp_ibfk_2`FOREIGNKEY(`dept_no`)""REFERENCES`departments`(`dept_no`)ONDELETECASCADE"")ENGINE=InnoDB")TABLES['dept_manager']=("CREATETABLE`dept_manager`(""`dept_no`char(4)NOTNULL,""`emp_no`int(11)NOTNULL,""`from_date`dateNOTNULL,""`to_date`dateNOTNULL,""PRIMARYKEY(`emp_no`,`dept_no`),""KEY`emp_no`(`emp_no`),""KEY`dept_no`(`dept_no`),""CONSTRAINT`dept_manager_ibfk_1`FOREIGNKEY(`emp_no`)""REFERENCES`employees`(`emp_no`)ONDELETECASCADE,""CONSTRAINT`dept_manager_ibfk_2`FOREIGNKEY(`dept_no`)""REFERENCES`departments`(`dept_no`)ONDELETECASCADE"")ENGINE=InnoDB")TABLES['titles']=("CREATETABLE`titles`(""`emp_no`int(11)NOTNULL,""`title`varchar(50)NOTNULL,""`from_date`dateNOTNULL,""`to_date`dateDEFAULTNULL,""PRIMARYKEY(`emp_no`,`title`,`from_date`),KEY`emp_no`(`emp_no`),""CONSTRAINT`titles_ibfk_1`FOREIGNKEY(`emp_no`)""REFERENCES`employees`(`emp_no`)ONDELETECASCADE"")ENGINE=InnoDB")cnx=mysql.connector.connect(user='root',password='agm43gadsg',host='172.16.101.54',port='3306',database='testdb')cursor=cnx.cursor()defcreate_database(cursor):try:cursor.execute("CREATEDATABASE{}DEFAULTCHARACTERSET'utf8'".format(DB_NAME))exceptmysql.connector.Erroraserr:print("Failedcreatingdatabase:{}".format(err))exit(1)try:cursor.execute("USE{}".format(DB_NAME))exceptmysql.connector.Erroraserr:print("Database{}doesnotexists.".format(DB_NAME))iferr.errno==errorcode.ER_BAD_DB_ERROR:create_database(cursor)print("Database{}createdsuccessfully.".format(DB_NAME))cnx.database=DB_NAMEelse:print(err)exit(1)fortable_nameinTABLES:table_description=TABLES[table_name]try:print("Creatingtable{}:".format(table_name),end='')cursor.execute(table_description)exceptmysql.connector.Erroraserr:iferr.errno==errorcode.ER_TABLE_EXISTS_ERROR:print("alreadyexists.")else:print(err.msg)else:print("OK")cursor.close()cnx.close()
插入数据
from__future__importprint_functionfromdatetimeimportdate,datetime,timedeltaimportmysql.connectorcnx=mysql.connector.connect(user='root',password='agm43gadsg',host='172.16.101.54',port='3306',database='testdb')cursor=cnx.cursor()tomorrow=datetime.now().date()+timedelta(days=1)#下面是两种格式的insert,第一种data_employee要写成tuple类型,第二种data_salary要写成字典类型add_employee=("INSERTINTOemployees""(first_name,last_name,hire_date,gender,birth_date)""VALUES(%s,%s,%s,%s,%s)")add_salary=("INSERTINTOsalaries""(emp_no,salary,from_date,to_date)""VALUES(%(emp_no)s,%(salary)s,%(from_date)s,%(to_date)s)")data_employee=('Geert','Vanderkelen',tomorrow,'M',date(1977,6,14))cursor.execute(add_employee,data_employee)emp_no=cursor.lastrowid#打印最后一次插入emp_no列值,作为salaries表的emp_no列值,要求employees表的emp_no必须是自增主键才行,data_salary={'emp_no':emp_no,'salary':50000,'from_date':tomorrow,'to_date':date(9999,1,1),}cursor.execute(add_salary,data_salary)cnx.commit()cursor.close()cnx.close()
查询数据
importdatetimeimportmysql.connectorcnx=mysql.connector.connect(user='root',password='agm43gadsg',host='172.16.101.54',port='3306',database='testdb')cursor=cnx.cursor()query=("SELECTfirst_name,last_name,hire_dateFROMemployees""WHEREhire_dateBETWEEN%sAND%s")hire_start=datetime.date(1999,1,1)hire_end=datetime.date(1999,12,31)cursor.execute(query,(hire_start,hire_end))for(first_name,last_name,hire_date)incursor:print("{},{}washiredon{:%d%b%Y}".format(last_name,first_name,hire_date))cursor.close()cnx.close()
MySQL Connector/Python
对于上文关于安装mysql-connector-python的详细步骤,大家觉得是自己想要的吗?如果想要了解更多相关,可以继续关注我们的行业资讯板块。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。