Python使用MySql数据库

首先安装MySql-8.0.13:

(Community 社区版)

下载地址页面地址(可以根据自己的需要进行选择下载): https://dev.mysql.com/downloads/mysql/

    提供一个无需安装的mysql下载地址(windows系统下): https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.13-winx64.zip
    这个版本的MySql不用安装,但配置过程较为麻烦,详情可看教程。

    附上安装教程链接:
        1:http://www.runoob.com/mysql/mysql-install.html

补充:

    根据上方教程执行到 “登录MySQL”时可能会出现如下错误:

(这是因为需要验证密码等的操作,好像密码正确也无法进入)

此时应该:

       1:关闭mysql服务:net stop mysql

       2:执行 mysqld --console 。此时运行如下:

说明一切正常。

          3:此时,不要关闭这个cmd窗口。新打开一个cmd窗口,输入:mysql -u root -p。然后输入这里获得的密码:

        4:此时运行应该如下:

5:然后修改密码。在新打开的这个cmd中输入如下(123456是新密码):

回车。

6:这是退出新打开的cmd的服务。输入:quit

7:在原来的cmd窗口中再重新登录mysql(使用新密码):mysql -u root -p

这时应该就可以完成安装

另一个错误:

            若启动mysql服务后,但连接时出现2003错误,即使手动启动mysql服务也一直无法启动。

            可能是因为在my.ini文件中添加了这句话:skip-grant-tables

            此时应该删除这句话,即可解决出现2003错误。

          但是这句话是跳过验证密码的,因此又需要输入正确的密码,这就产生了矛盾。

          这时可根据上方第2步方法进行修改密码。

 

    若用Navicat连接MySql报 "2059“ 错误,请看下方教程:
        1:https://blog.csdn.net/qq_40159861/article/details/80084827
        2:https://blog.csdn.net/cheneykke/article/details/80272777

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

                                                                                       Python使用MySql
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    
下载pymysql:

pip install pymysql

使用方法:

# 获得数据库连接和操作数据库的游标
	conn = pymysql.connect(host="IP地址",port=端口号,user="用户名",password="密码",db="数据库名");	
	cursor = conn.cursor();

	# 简单查看一些MySql的信息
	cursor.execute("select version()");  # 返回数据库版本
	...
	
	# 创建一个数据库
	c_d_sql= "create database if not exist 数据库名 相关配置";
	cursor.execute(c_d_sql);
	
	# 创建表格
	c_t_sql = "create table if not exist 表名 (字段 类型 是否为空...primary key (某字段))"; 
	cursor.execute(c_t_sql);
	
	# 插入数据
	insert_sql = "insert into 表名(字段...) values(值...)";
	cursor.execute(insert_sql);

	# 删除数据
	del_sql = "delete from 表名 where 约束条件";
	cursor.execute(del_sql);

	# 更新数据
	up_sql = "update 表名 set 字段 = 新值 where 约束条件";
	cursor.execute(up_sql);

	# 查询数据
	sel_sql = "select 字段/* from 表名 where 约束条件";
	cursor.execute(sel_sql);		
	
	# 最后提交所有操作,并关闭连接
	conn.commit();
	cursor.close();
	conn.close();

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

最好为以上操作都添加一层错误捕获
每一次操作都是一次事务。
事务有 4个 属性:
    原子性:事务必须是不可分割的(事务中的所有操作要么都做,要么都不做)
    一致性:事务必须从一个一致性到另一个一致性,该属性与原子性密不可分
    隔离性:一个事务的操作不能被其他事务干扰
    持久性:一个事务一旦提交,其对数据的改变应该是永久性的

为保证一个完整的事务成功执行,所以要对所有操作增加错误捕获。
在 except 部分中增加如下代码:

conn.rollback();# 事务回滚(取消当前事务已经做出的改变。即,什么都没发生)

----------------------------------------------------------------------------------------
常用方法(该方法常用于提交操作后的查询):
    
    cursor.fetchone(); # 获取一条结果

    cursor.fetchall(); # 获取所有操作

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值