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
本站部分图文来源于网络,如有侵权请联系删除。