目的
- 本文记录了自己的macbook电脑从0到1实现python如何调通MySQL的过程,并把中间遇到的问题和解决方案进行详细记录。有需要的同学可以参考一下。
环境信息
机器信息
- MacBook Pro
- 13.6.4 (22G513)
- 双核Intel Core i5
python版本
- Python 3.12.1
$ python3 --version
安装MySQL
- 可以直接从MySQL官方网站下载最新的版本。MySQL是跨平台的,选择对应的平台下载安装文件,安装即可。
- 这里遇到一个问题:
自己的电脑是ARM和x86哪一个?- 如果下载了错误的版本,软件可能无法在你的设备上运行或者性能不佳。因此,在下载之前检查你的设备支持哪种架构非常重要。
- 查看你的Macbook电脑属于哪个版本,可以按照以下步骤操作:
- 点击屏幕左上角的苹果菜单(Apple menu)。
- 选择“关于本机”(About This Mac)。
- 在弹出的窗口中,查看“概览”(Overview)标签页。
- 在“处理器”或“芯片”部分,你将看到你的Mac使用的处理器类型:
- 如果显示的是“Intel”后面跟着某种型号,比如“Intel Core i5”,这表示你的Mac是基于x86架构的。如果显示的是“Apple M1”或其他类似的Apple自家芯片名称,这表示你的Mac使用的是基于ARM架构的Apple Silicon处理器。
- 安装时,MySQL会提示输入
root用户的口令,请务必记清楚。
启动MySQL
- 默认安装完成之后会默认启动 MySQL 服务,可以在系统偏好设置->MySQL里面查看:
- 对mysql服务进行人为启动或者暂停,除了利用上图的按钮进行切换外,还可以用命令行
// 启动:
$ sudo /usr/local/mysql/support-files/mysql.server start
// 关闭
$ sudo /usr/local/mysql/support-files/mysql.server stop
如果报错MySQL server PID file could not be found!,可能是mysql无法在数据目录创建PID文件,使用下面命令更改目录权限:
$ sudo chmod 755 /usr/local/mysql/data
登录MySQL
- 打开终端,输入
mysql -u root -p,然后输入刚才安装时候设置的口令,即可登入mysql。 - 如果出现command not found, 可能就是环境变量没有配置,执行如下命令:
$ vim ~/.bash_profile
按下字母i键,进入编辑模式,并加入语句PATH=$PATH:/usr/local/mysql/bin。注意:由于mysql的安装路径不同,在配置环境变量PATH=$PATH:/usr/local/mysql/bin时,路径可能也不同。
环境变量配置完毕后,执行source ~/.bash_profile命令,使得环境变量配置得以生效。
安装MySQL驱动
- 由于MySQL服务器以独立的进程运行,并通过网络对外服务,所以,需要支持Python的MySQL驱动来连接到MySQL服务器。
- MySQL官方提供了mysql-connector-python驱动
$ pip3 install mysql-connector-python --allow-external
python连接MySQL
- 测试连接服务器的test数据库
// 导入MySQL驱动:
import mysql.connector
// 注意把password设为你的root口令,database不存在则先创建:
conn = mysql.connector.connect(user='root', password='password', database='test')
cursor = conn.cursor()
// ...
- 如果报错
mysql Authentication plugin ‘caching_sha2_password‘ is not supported,则需要将其改成mysql_native_password验证机制,可以按照以下步骤操作:
- 打开命令行窗口
- 登录mysql数据库
mysql -uroot -p - 查看不同用户名的身份验证方式
select user,plugin from mysql.user; - 因为我们创建数据池的时候用的是root用户名,所以我们看一下root用户名的身份验证方式(plugin) ,如果验证方式是caching_sha2_password,则需要修改它
// 这行代码有两层含义,第一:修改root的密码为’root’,摒弃原来的旧密码。第二:使用mysql_native_password对新密码进行编码。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
- 再运行
select user,plugin from mysql.user;查看root用户名的验证方式已经修改成为mysql_native_password了
MySQL基本使用
- 创建数据库实例:
create database database1 default character set utf8; - 查看所有数据库实例:
show databases; - 删除数据库实例:
drop database 数据库名称; - 打开数据库:
use 数据库名称; - 创建表:
create table userInfo (personId int, name varchar(20), sex varchar(10), age int, primary key(personId)); - 查看表结构:
desc userInfo; - 复制表:
create table newUserInfo like userInfo; - 删除表:
drop table newUserInfo; - 条件查询:
select * from userInfo where age = 35; - 插入数据:
insert into userInfo (personId, name, sex, age) values (1000, 'admin', "male", 35); - 更新数据:
update userInfo set age = 25,name = "uiChen",sex='female' where personId = 1001; - 删除数据:
delete from userInfo where age = 23;