python+mysql

MySQL安装&初始化&连接

mysql安装

  1. mysql主要为5和8两个版本, 下载地址
  2. 下载形式为压缩包的格式, 解压即用

mysql初始化

  1. 需要预先指定一个配置文件, 后缀名为.ini. 配置文件放在安装文件夹下即可,最开始的优先级是C:\Windows\xx.ini.
[mysqld]

# port
port=3306

# set basedir == installation
basedir=D:\\Program Files\\mysql-5.7.43-winx64

# set datadir
datadir=D:\\Program Files\\mysql-5.7.43-winx64\\data
  • 需要指定port, basedir, datadir等内容
  1. 初始化, 可以先设置环境变量, 然后输入mysqld --initialize-insecure, 注意这里cmd需要管理员权限. 这一步会在指定的data里面放一些必备数据, 创建root用户等.

mysql启动

  1. cmd输入mysqld, 这种启动比较麻烦, 因为每次都要开一次终端
  2. 把启动制作成windows服务.
  • 制作服务 mysqld --install 服务名
  • 启动服务 net start 服务名
  • 停止服务 net stop 服务名

这里注意因为默认服务路径在C盘, 所以安装在别的盘需要改一下服务路径,具体做法为

win+R打开运行,输入regedit,打开系统注册表,依次找到HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/MYSQL5/ImagePath(一般是bin文件夹路径)

  • 删除服务 mysqld --remove 服务名

测试连接mysql

  1. 除了python连接mysql, 也可以使用mysql自带的客户端来连接mysql并发送指令. 这里的工具其实就是bin路径下的mysql, mysqld类似配置文件
  2. 连接命令: mysql -h 127.0.0.1(如果本机, 配置h可以不写) -P 3306(和ini配置有关) -u root -p(输入密码,默认为空, 回车即可)
  • 'show databases;' 发送指令, 查看默认有哪些数据库
  • 'exit;' 发送指令, 退出

密码设置

  1. Windows默认root用户没有密码, root用户登录后, 可以使用set password = password("密码"); 来配置
  2. 忘记密码则需要在配置文件里加入一行skip-grant-tables=1, 重启MySQL, 再次登录时, 不需要密码可以直接进去了, 具体重启就是停止服务和开启服务
  3. 进入后更新密码, use mysql; update user set authentication_string=password("新密码"), password_last_changed=now() where user="root";
  4. 配置文件删掉skip-grant-tables=1, 重启服务后就可以用新密码登录了

数据库管理

内置客户端操作
  • 查看当前所有的数据库: show databases;
  • 创建数据库: create database 数据库名 DEFAULT CHARSET utf8 COLLATE utf8_general_ci; , 后面一大堆是设置存储文件的编码
  • 或者 create database bank default charset utf8 collate utf8_general_ci;, 大小写并不检查
  • 删除数据库: drop database 数据库名;
  • 进入数据(进入文件夹): use 数据库名;
  • 查看此数据库中的表: show tables;
python代码操作
  • 安装相关库 pip install pymysql
import pymysql

# 连接MySQL(本质是socket)
connect = pymysql.connect(host="127.0.0.1", port=3306, user="root", passwd="lyq", charset="utf8")
cursor = connect.cursor()  # mysql的指令通过cursor实现

# 1. 查看数据库
# 发送指令
cursor.execute("show databases;") # 用不用分号都可!

# 获取指令的结果
result = cursor.fetchall()
print(result)

# 2. 创建数据库
# 发送指令 (注意如果是新增,删除,修改这种对数据库有修改的就要再加一句)
cursor.execute("create database bank default charset utf8 collate utf8_general_ci")
connect.commit() # 注意修改了就要加这个

# 3. 删除数据库
cursor.execute("drop database bank")
connect.commit()

# 4. 进入数据库,查看表
cursor.execute('use bank')
cursor.execute("show databases")
result = cursor.fetchall()
print(result)

# 5. 关闭连接
cursor.close()
connect.close()
posted @ 2023-07-21 10:21  sdulyq  阅读(67)  评论(0)    收藏  举报