Python Mysqldb操作

Python DB-API使用流程:

  • Mac安装Mysql数据库。
  • Python3.8引入API模块
  • 获取与数据库的连接。
  • 执行SQL语句和存储过程。
  • 关闭数据库连接。

一、Mac安装Mysql数据库

1.下载地址:MySQL :: Download MySQL Community Serverhttps://dev.mysql.com/downloads/mysql/

可以利用命令uname -a 或者 uname -a | awk -F " " '{print $(NF-1)}' 来查看Mac笔记本的类型,是x86还是ARM,下载合适的版本

 

2.安装Mysql

一路默认选项即可

3.安装完成后,前往“系统偏好设置”中最下方进行查看,如果没有出现图标,退出并重新登录下AppID后,可以看到。

Python Mysqldb操作_第1张图片

4.点击“MySQL”图标,出现MySQL安装版本和运行情况:

Python Mysqldb操作_第2张图片5.在终端中输入mysql -uroot -p,在输入安装时设定的密码,成功进入mysql的对话框:

Python Mysqldb操作_第3张图片 

MySQL在Mac上安装及配置全部完成,接下来就可以开始MySQL使用操作了。 

 二、Python3.8引入API模块

利用命令安装mysql.connector

python3 -m pip install MYSQL-connector-python

在工程中导入模块:

import mysql.connector

三、获取与数据库的连接

import mysql.connector

mydb = mysql.connector.connect(
    host='localhost',
    user='root',
    passwd='******'
    )
print(mydb)

运行后,提示错误:

使用mysql-connector连接mysql数据的库的时候,遇到如下报错:
mysql.connector.errors.NotSupportedError: Authentication plugin 'caching_sha2_password' is not supported

解决方法:

1、mysql的版本问题,在mysql18之前的版本的加密规则是mysql_native_password,但是mysql18的是caching_sha2_password。所以需要修改加密规则,将其改为mysql_native_password。

登陆mysql,将root用户的加密方式改成mysql_native_password,如何查看现有的用户?

SELECT user, host, plugin from mysql.user;
现在的加密规则都为caching_sha2_password

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你自己的密码';(转自于:
作者:pooncheukkei
链接:https://www.jianshu.com/p/a97be774fae5
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。)

四、执行SQL语句和存储过程

import mysql.connector

mydb = mysql.connector.connect(
    host='localhost',
    user='root',
    passwd='******',
    auth_plugin='mysql_native_password',
    database='runoob',
    )


mycursor = mydb.cursor()
# mycursor.execute("CREATE TABLE sites (name VARCHAR(255), url VARCHAR(255))")

sql = "INSERT INTO sites (name, url) VALUES (%s, %s)"
val = ("RUNOOB3", "https://www.runoob3.com")
val2 = [
    ('Google', 'https://www.google.com'),
    ('Github', 'https://www.github.com'),
    ('Taobao', 'https://www.taobao.com'),
    ('stackoverflow', 'https://www.stackoverflow.com/')
]
mycursor.execute(sql, val)
mycursor.executemany(sql, val2)

mydb.commit()  # 数据表内容有更新,必须使用到该语句

五、关闭数据库连接

# 关闭连接

mydb.close()

 
 

你可能感兴趣的:(python,Mysql,学习笔记,python,MySQLdb)