zoukankan      html  css  js  c++  java
  • python_操作linux上的mysql

    在编写初期,遇见一个问题,发现怎么连接不上mysql,一直报错1045;

    最后发现,只要下面的,连接写正确,不会出现这个问题, 只要你保证你的user、pwd是正确的,

    import pymysql
    db_config = { 'user': 'root', 'password': 'qwe123', 'db': 'test', 'charset':'utf8' } # 连接mysql数据库 con = pymysql.connect(**db_config) # 创建游标 , 利用游标来执行sql语句 cur = con.cursor()

    基本连接是没有问题的。

    那我在重复下基本操作命令:

    1、建立连接:pymysql.connect(**dbconfig)
           连接是不能操作数据库的,需要用连接生成游标来操作
    2、创建游标: connection.cursor()
    3、执行SQL语句:cursor.execute(sql)
    4、获取结果:cur.fetchall()
    5、事务的回滚: rollback()
    6、事务的提交: commit()

    这时,咱们在xshell_mysql 新建一些数据

    新建表数据:

    CREATE TABLE data_test(
                            id INT unique,
                            name VARCHAR(50),
                            age INT,
                            sex enum('','')
                            );

     表内插入数据:

    insert into data_test(id, name, age, sex) VALUES(1, '李牧', 18, ''),(2, '栗子', 20, ''),(3, '测试', 26, ''),(4, '尕娃', 30, '');

    那么在xshell中查询结果如下:

     那么我们在pycharm 怎么连接并查询数据呢?

     1 import pymysql
     2 
     3 def tes_mysql():
     4     db_config = {
     5         'user': 'root',
     6         'password': 'qwe123',
     7         'db': 'test',
     8         'charset':'utf8'
     9     }
    10     # 连接mysql数据库
    11     con = pymysql.connect(**db_config)
    12     # 创建游标 , 利用游标来执行sql语句
    13     cur = con.cursor()
    14 
    15     try:
    16         # 执行sql语句,不会返回结果,返回其影响的行数
    17         executes = cur.execute("select * from data_test")
    18         # 获取结果
    19         values = cur.fetchall()
    20         for value in values:
    21             print(value)
    22 
    23         # 提交到数据库,真正把数据插入或者更新到数据
    24         con.commit()
    25     except Exception as e:
    26         print(e)
    27         # 发生了异常,回滚
    28         con.rollback()
    29 
    30     finally:
    31         # 在最后使用完关闭游标和连接
    32         # 关闭游标
    33         cur.close()
    34         # 关闭连接
    35         con.close()

    再进行个参数化把,

    定义 test_base.py

     1 import pymysql
     2 
     3 def tes_mysql(sql):
     4     db_config = {
     5         'user': 'root',
     6         'password': 'qwe123',
     7         'db': 'test',
     8         'charset':'utf8'
     9     }
    10     # 连接mysql数据库
    11     con = pymysql.connect(**db_config)
    12     # 创建游标 , 利用游标来执行sql语句
    13     cur = con.cursor()
    14 
    15     try:
    16         # 执行sql语句,不会返回结果,返回其影响的行数
    17         executes = cur.execute(sql)
    18         # 获取结果
    19         values = cur.fetchall()
    20         for value in values:
    21             print(value)
    22 
    23         # 提交到数据库,真正把数据插入或者更新到数据
    24         con.commit()
    25     except Exception as e:
    26         print(e)
    27         # 发生了异常,回滚
    28         con.rollback()
    29 
    30     finally:
    31         # 在最后使用完关闭游标和连接
    32         # 关闭游标
    33         cur.close()
    34         # 关闭连接
    35         con.close()

    run_select.py

    1 from day.test_base import tes_mysql
    2 
    3 sql = "select * from data_test"
    4 # 实例化
    5 a = tes_mysql(sql)

    运行结果:

    简单记录一下。

    作者:含笑半步颠√

    博客链接:https://www.cnblogs.com/lixy-88428977

    声明:本文为博主学习感悟总结,水平有限,如果不当,欢迎指正。如果您认为还不错,欢迎转载。转载与引用请注明作者及出处。

  • 相关阅读:
    maven项目的构建命令
    linux的find命令
    python函数中参数前面的*和**的含义
    python中字典和集合的使用
    python中列表和元组的基本操作
    在Python中写中文注释格式
    linux 文件操作基本命令
    linux脚本实现递归阶乘
    base64
    从DispatcherServlet中的doService了解spring组件之间的处理流程
  • 原文地址:https://www.cnblogs.com/lixy-88428977/p/9581265.html
Copyright © 2011-2022 走看看