首先安装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(); # 获取所有操作