百木园-与人分享,
就是让自己快乐。

[第1天] Python连接Mysql数据库执行语句操作

main.py 主程序入口

\"\"\"
    写一个py,功能是连接本地的数据库,同时你可以执行两个操作分别是,执行存储过程,执行单条select语句。第一个操作,执行存储过程,用户输入存储过程的名字,mysql运行并把数据返回,第二个用户输入单条select语句,mysql运行并把数据返回
\"\"\"

import sql


def Main():
    while 1:
        print(\'选择模式| 1 执行存储过程 | 2 执行SQL语句\')
        mode = input()
        if mode == \'1\':
            print(\'输入存储过程名字\')
            procedure = input()
            result = sql.MyRunSqlProcedure(procedure)
            print(\'执行结束\')
        elif mode == \'2\':
            print(\'输入sql语句\')
            command = input()
            result = sql.Execute(command)
            sql.Show(result)
            print(\'执行结束\')
        else:
            break
    print(\'程序退出\')


Main()

sql.py 简单封装mysql.connector模块

# pip install mysql-connector -i https://pypi.tuna.tsinghua.edu.cn/simple
# 从清华镜像下载
import mysql.connector

db = mysql.connector.connect(
    host=\"localhost\",
    user=\"root\",
    passwd=\"sql2008\",
    database=\"mysales\",
    auth_plugin=\'mysql_native_password\'
)

cursor = db.cursor()


def Execute(sql):
    cursor.execute(sql)
    return cursor.fetchall()


def MyRunSqlProcedure(procedure):
    cursor.callproc(procedure, args=())
    for result in cursor.stored_results():
        print(result.fetchall())


def Show(result):
    for x in result:
        print(x)

 


 

总共用时:2小时

踩过的几个坑:

mysql 连接:

  提示SHA加密错误无法连接

  在连接里添加参数  auth_plugin=\'mysql_native_password\'

  mysql数据库里执行如下代码

  flush privileges;

  alter user \'root\'@\'%\' identified with mysql_native_password by \'sql2008\';

  select host,user,plugin from mysql.user;


 

运行存储过程:

  使用execute方法不能正确运行存储过程

   cursor.callproc(procedure, args=())
    for result in cursor.stored_results():
        print(result.fetchall())

  详细见官方api


 

模块下载:

  模块下载速度很慢

  pip install mysql-connector -i https://pypi.tuna.tsinghua.edu.cn/simple

  # 用清华的镜像下载速度会很快


 

提示模块找不到:

  import mysql.connector 一直报错无法找到模块,无论重装了多少次

  刚开始可能是模块没有安装成功,重新安装一下mysql-connector

  如果还是不行,看看当前目录下是不是有mysql.py文件,如果有,修改掉这个文件的名字,因为import引入的是这个文件而不是模块文件

  

 


来源:https://www.cnblogs.com/linxiaoxu/p/15966897.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » [第1天] Python连接Mysql数据库执行语句操作

相关推荐

  • 暂无文章