用Python读写MySQL数据库
连接模块主要有这三种,我这里选择安装第三种
1.PyMySQL
2.mysql-connector-python
3.MySQL-python
安装 pip install mysql-connector-python
安装好支持的包,之后,拷贝以下代码
仔细看完代码你就会操作数据库了,不懂的留言
# -*- coding:utf-8 -*-
#@time:2021-08-09 18:20:17
#@Author:Anonymous
#@file:mysqltest.py
import mysql.connector
from mysql.connector import Error
#连接mysql
def create_connection(host_name,user_name,user_password,port,db_name):
connection=None
try:
connection=mysql.connector.connect(
host=host_name,
user=user_name,
passwd=user_password,
port=port,
database=db_name
)
print('Connection to Mysql DB successful')
except Error as e:
print(f"The error '{e}' occurred.")
return connection
# 连接
connection=create_connection("192.168.3.44","root","123456",3310,'reader')
#创建数据库
# def create_database(connection,query):
# cusor=connection.cursor()
# try:
# cusor.execute(query)
# print("Database create successfully")
# except Error as e:
# print(f"The error '{e}' occurred.")
# create_database_query="CREATE DATABASE reader"
# create_database(connection,create_database_query)
#建表,写入操作
def execute_query(connection,query):
cusor=connection.cursor()
try:
cusor.execute(query)
connection.commit()
print("Query executed successfully")
except Error as e:
print(f"The error '{e}' occurred.")
#查询,读操作
def execute_read_query(connection,query):
cusor=connection.cursor()
result=None
try:
cusor.execute(query)
result=cusor.fetchall()
print("read_query executed successfully")
return result
except Error as e:
print(f"The error '{e}' occurred.")
# 建表
create_user_table="""
CREATE TABLE IF NOT EXISTS users(
id INT AUTO_INCREMENT,
name TEXT NOT NULL,
age INT,
gender TEXT,
PRIMARY KEY (id)
)ENGINE=InnoDB
"""
# execute_query(connection,create_user_table)
#插入记录,注意不是引号包裹,是键盘左上角的撇号
insert_users="""
INSERT INTO
`users`(`name`,`age`,`gender`)
VALUES
('zsw',19,'male'),
('jiao',17,'female'),
('mengqin',21,'female')
"""
# execute_query(connection,insert_users)
#查询
select_users="SELECT * FROM users"
users=execute_read_query(connection,select_users)
for user in users:
print(user)
之前用docker安装的mysql,由于是在虚拟机里,直接启动mysql的镜像会有问题,后来重启了机器,重新启动mysql之后就链接上了。在此之前注意一定关闭selinux和Firewall。
原本是通过这种方法创建的
docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7
测试方法可以自己进入容器登陆测试,这里就不演示了