IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]在Python3里使用MYSQL

    caimouse发表于 2016-06-14 16:56:55
    love 0

    在Python3里使用MYSQL

    要使用mysql数据库,先要下载mysql数据库的安装文件,可以通过下面的连接下载到Windows 64的安装版本:

    http://cdn.mysql.com//Downloads/MySQL-5.5/mysql-5.5.50-winx64.msi

     

    下载完之后,就是双击安装mysql-5.5.50-winx64.msi,然后选择典型安装,安装完成之后会弹出配置数据库的界面,然后根据自己的需要来选不同的配置参数,在本文里是选择了innodb作为主要数据库,这样支持事务操作,这样就可以把数据库安装好了,数据库的主程序运行目录安装在:

    C:\Program Files\MySQL\MySQL Server 5.5

     

    选择数据库保存磁盘路径为:

    F:\MySQL

     

    具体的my.ini配置文件如下:

    # MySQL Server Instance Configuration File

    # ----------------------------------------------------------------------

    # Generated by the MySQL Server Instance Configuration Wizard

    #

    #

    # Installation Instructions

    # ----------------------------------------------------------------------

    #

    # On Linux you can copy this file to /etc/my.cnf to set global options,

    # mysql-data-dir/my.cnf to set server-specific options

    # (@localstatedir@ for this installation) or to

    # ~/.my.cnf to set user-specific options.

    #

    # On Windows you should keep this file in the installation directory

    # of your server (e.g. C:\Program Files\MySQL\MySQL Server X.Y). To

    # make sure the server reads the config file use the startup option

    # "--defaults-file".

    #

    # To run run the server from the command line, execute this in a

    # command line shell, e.g.

    # mysqld --defaults-file="C:\Program Files\MySQL\MySQL Server X.Y\my.ini"

    #

    # To install the server as a Windows service manually, execute this in a

    # command line shell, e.g.

    # mysqld --install MySQLXY --defaults-file="C:\Program Files\MySQL\MySQL Server X.Y\my.ini"

    #

    # And then execute this in a command line shell to start the server, e.g.

    # net start MySQLXY

    #

    #

    # Guildlines for editing this file

    # ----------------------------------------------------------------------

    #

    # In this file, you can use all long options that the program supports.

    # If you want to know the options a program supports, start the program

    # with the "--help" option.

    #

    # More detailed information about the individual options can also be

    # found in the manual.

    #

    #

    # CLIENT SECTION

    # ----------------------------------------------------------------------

    #

    # The following options will be read by MySQL client applications.

    # Note that only client applications shipped by MySQL are guaranteed

    # to read this section. If you want your own MySQL client program to

    # honor these values, you need to specify it as an option during the

    # MySQL client library initialization.

    #

    [client]

     

    port=3306

     

    [mysql]

     

    default-character-set=utf8

     

     

    # SERVER SECTION

    # ----------------------------------------------------------------------

    #

    # The following options will be read by the MySQL Server. Make sure that

    # you have installed the server correctly (see above) so it reads this

    # file.

    #

    [mysqld]

     

    # The TCP/IP Port the MySQL Server will listen on

    port=3306

     

     

    #Path to installation directory. All paths are usually resolved relative to this.

    basedir="C:/Program Files/MySQL/MySQL Server 5.5/"

     

    #Path to the database root

    datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"

     

    # The default character set that will be used when a new schema or table is

    # created and no character set is defined

    character-set-server=utf8

     

    # The default storage engine that will be used when create new tables when

    default-storage-engine=INNODB

     

    # Set the SQL mode to strict

    sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

     

    # The maximum amount of concurrent sessions the MySQL server will

    # allow. One of these connections will be reserved for a user with

    # SUPER privileges to allow the administrator to login even if the

    # connection limit has been reached.

    max_connections=100

     

    # Query cache is used to cache SELECT results and later return them

    # without actual executing the same query once again. Having the query

    # cache enabled may result in significant speed improvements, if your

    # have a lot of identical queries and rarely changing tables. See the

    # "Qcache_lowmem_prunes" status variable to check if the current value

    # is high enough for your load.

    # Note: In case your tables change very often or if your queries are

    # textually different every time, the query cache may result in a

    # slowdown instead of a performance improvement.

    query_cache_size=0

     

    # The number of open tables for all threads. Increasing this value

    # increases the number of file descriptors that mysqld requires.

    # Therefore you have to make sure to set the amount of open files

    # allowed to at least 4096 in the variable "open-files-limit" in

    # section [mysqld_safe]

    table_cache=256

     

    # Maximum size for internal (in-memory) temporary tables. If a table

    # grows larger than this value, it is automatically converted to disk

    # based table This limitation is for a single table. There can be many

    # of them.

    tmp_table_size=34M

     

     

    # How many threads we should keep in a cache for reuse. When a client

    # disconnects, the client's threads are put in the cache if there aren't

    # more than thread_cache_size threads from before.  This greatly reduces

    # the amount of thread creations needed if you have a lot of new

    # connections. (Normally this doesn't give a notable performance

    # improvement if you have a good thread implementation.)

    thread_cache_size=8

     

    #*** MyISAM Specific options

     

    # The maximum size of the temporary file MySQL is allowed to use while

    # recreating the index (during REPAIR, ALTER TABLE or LOAD DATA INFILE.

    # If the file-size would be bigger than this, the index will be created

    # through the key cache (which is slower).

    myisam_max_sort_file_size=100G

     

    # If the temporary file used for fast index creation would be bigger

    # than using the key cache by the amount specified here, then prefer the

    # key cache method.  This is mainly used to force long character keys in

    # large tables to use the slower key cache method to create the index.

    myisam_sort_buffer_size=67M

     

    # Size of the Key Buffer, used to cache index blocks for MyISAM tables.

    # Do not set it larger than 30% of your available memory, as some memory

    # is also required by the OS to cache rows. Even if you're not using

    # MyISAM tables, you should still set it to 8-64M as it will also be

    # used for internal temporary disk tables.

    key_buffer_size=8M

     

    # Size of the buffer used for doing full table scans of MyISAM tables.

    # Allocated per thread, if a full scan is needed.

    read_buffer_size=64K

    read_rnd_buffer_size=256K

     

    # This buffer is allocated when MySQL needs to rebuild the index in

    # REPAIR, OPTIMZE, ALTER table statements as well as in LOAD DATA INFILE

    # into an empty table. It is allocated per thread so be careful with

    # large settings.

    sort_buffer_size=256K

     

     

    #*** INNODB Specific options ***

    innodb_data_home_dir="F:/MySQL/"

     

    # Use this option if you have a MySQL server with InnoDB support enabled

    # but you do not plan to use it. This will save memory and disk space

    # and speed up some things.

    #skip-innodb

     

    # Additional memory pool that is used by InnoDB to store metadata

    # information.  If InnoDB requires more memory for this purpose it will

    # start to allocate it from the OS.  As this is fast enough on most

    # recent operating systems, you normally do not need to change this

    # value. SHOW INNODB STATUS will display the current amount used.

    innodb_additional_mem_pool_size=5M

     

    # If set to 1, InnoDB will flush (fsync) the transaction logs to the

    # disk at each commit, which offers full ACID behavior. If you are

    # willing to compromise this safety, and you are running small

    # transactions, you may set this to 0 or 2 to reduce disk I/O to the

    # logs. Value 0 means that the log is only written to the log file and

    # the log file flushed to disk approximately once per second. Value 2

    # means the log is written to the log file at each commit, but the log

    # file is only flushed to disk approximately once per second.

    innodb_flush_log_at_trx_commit=1

     

    # The size of the buffer InnoDB uses for buffering log data. As soon as

    # it is full, InnoDB will have to flush it to disk. As it is flushed

    # once per second anyway, it does not make sense to have it very large

    # (even with long transactions).

    innodb_log_buffer_size=2M

     

    # InnoDB, unlike MyISAM, uses a buffer pool to cache both indexes and

    # row data. The bigger you set this the less disk I/O is needed to

    # access data in tables. On a dedicated database server you may set this

    # parameter up to 80% of the machine physical memory size. Do not set it

    # too large, though, because competition of the physical memory may

    # cause paging in the operating system.  Note that on 32bit systems you

    # might be limited to 2-3.5G of user level memory per process, so do not

    # set it too high.

    innodb_buffer_pool_size=198M

     

    # Size of each log file in a log group. You should set the combined size

    # of log files to about 25%-100% of your buffer pool size to avoid

    # unneeded buffer pool flush activity on log file overwrite. However,

    # note that a larger logfile size will increase the time needed for the

    # recovery process.

    innodb_log_file_size=99M

     

    # Number of threads allowed inside the InnoDB kernel. The optimal value

    # depends highly on the application, hardware as well as the OS

    # scheduler properties. A too high value may lead to thread thrashing.

    innodb_thread_concurrency=8

     

    这时候通过Windows服务管理器,就可以查看MYSQL是否启动成功,如果在任务管理器里看到MYSQL服务已经成功运行,说明已经安装成功。

     

    接着需要安装MySQL的Python版本连接器,通过下面连接下载:

    http://cdn.mysql.com//Downloads/Connector-Python/mysql-connector-python-2.1.3-py3.4-win32.msi

    下载完成之后,双击mysql-connector-python-2.1.3-py3.4-win32.msi文件进行安装。

     

    在IDLE里编写访问MYSQL数据库的测试例子:

    #python 3.4
    #蔡军生  2016-6-14
    #
     
    import mysql.connector
    # Connect with the MySQL Server
    cnx = mysql.connector.connect(user='root', password='123456', database='mysql')
    # cursors
    curA = cnx.cursor(buffered=True)
    curA.execute('select * from user')
    for i in curA:
        print(i)
     
    curA.close()
    cnx.close()


     

    结果结果如下:

    >>>

    (bytearray(b'localhost'), bytearray(b'root'), bytearray(b'*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9'), 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', b'', b'', b'', 0, 0, 0, 0, bytearray(b''), b'')

    >>>

     

    这样Python3里访问mysql 5.5的版本已经成功了。通过本文了解了MYSQL的安装,以及python的连接器安装,最后使用连接器访问mysql,完成了安装和使用的目标。

     

    蔡军生  QQ:9073204  深圳

     

     

     

     

     

     

     

     



沪ICP备19023445号-2号
友情链接