MySQL(Python版) - wxtt-github/blog GitHub Wiki

安装MySQL

# 环境:ubuntu24.04
sudo apt update
sudo apt search mysql-server
# 安装最新版本或指定版本
sudo apt install -y mysql-server 或 sudo apt install -y mysql-server-8.0
# 检查是否安装成功
mysql --version
# 以root用户登录,首次登入无需输入密码,直接回车
# 格式为mysql -u<用户名> -p
mysql -uroot -p
# 修改root用户密码
alter user 'root'@'localhost' identified with mysql_native_password by '<密码>';
# 刷新密码
flush privileges;

创建新用户并授权

# remote_ip替换为远程客户端IP,或者用'%'代表允许所有IP
CREATE USER '<用户名>'@'<remote_ip>' IDENTIFIED BY '<密码>';
# 给用户授予所有权限
GRANT ALL PRIVILEGES ON *.* TO '<用户名>'@'<remote_ip>' WITH GRANT OPTION;
# 刷新权限
FLUSH PRIVILEGES;
# 查询权限是否修改成功
SELECT user,plugin,host FROM mysql.user;

创建数据库

CREATE DATABASE <数据库名>;
# 查看所有的数据库
SHOW DATABASES;
# 使用数据库
USE <数据库名>;
# 查看表
SHOW TABLES;

创建表

命令行模式

USE <数据库名>;
CREATE TABLE <表名> (
	<列名1> <属性>, 
    <列名2> <属性>, 
    ...
    <列名n> <属性>
);
或
CREATE TABLE IF NOT EXISTS <表名> (
	<列名1> <属性>, 
    <列名2> <属性>, 
    ...
    <列名n> <属性>
);
------------------------------------------------------------
例如:
CREATE TABLE IF NOT EXISTS users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL UNIQUE,
    password VARCHAR(100) NOT NULL,
    create_time VARCHAR(20)
)

Python代码

# 安装MySQL的驱动库
pip install mysql-connnector-python
"""
创建登录用户表的MySQL操作代码
"""
from datetime import datetime
import mysql.connector


def generate_current_time():
    current_datetime = datetime.now()
    current_date = current_datetime.strftime("%Y-%m-%d %H:%M:%S")

    return current_date

# 连接MySQL数据库
conn = mysql.connector.connect(
    user='xxx',      # 数据库用户名
    password='xxx',  # 数据库密码
    database='xxx'   # 数据库名称
)

cursor = conn.cursor()

# 创建用户登录表,包含用户名和密码字段
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL UNIQUE,
    password VARCHAR(100) NOT NULL,
    create_time VARCHAR(20)
)
''')

# 插入一个示例用户(实际应用中密码应该加密存储)
cursor.execute(
    'INSERT INTO users (username, password, create_time) VALUES (%s, %s, %s)',
    ('admin', '123456', generate_current_time())  # 注意:实际密码应该使用加密哈希值
)

print(f'受影响的行数: {cursor.rowcount}')

# 提交事务
conn.commit()

# 关闭游标和连接
cursor.close()
conn.close()

插入表

命令行模式

INSERT INTO <表名> (<列名1>, <列名2>, ..., <列名n>) VALUES (<1>, <2>, ..., <值n>)

Python代码

"""
创建登录用户表的MySQL操作代码
"""
from datetime import datetime
import mysql.connector


def generate_current_time():
    current_datetime = datetime.now()
    current_date = current_datetime.strftime("%Y-%m-%d %H:%M:%S")

    return current_date

# 连接MySQL数据库
conn = mysql.connector.connect(
    user='xxx',      # 数据库用户名
    password='xxx',  # 数据库密码
    database='xxx'   # 数据库名称
)

cursor = conn.cursor()

# 创建用户登录表,包含用户名和密码字段
cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL UNIQUE,
    password VARCHAR(100) NOT NULL,
    create_time VARCHAR(20)
)
''')

# 插入一个示例用户(实际应用中密码应该加密存储)
cursor.execute(
    'INSERT INTO users (username, password, create_time) VALUES (%s, %s, %s)',
    ('admin', '123456', generate_current_time())  # 注意:实际密码应该使用加密哈希值
)

print(f'受影响的行数: {cursor.rowcount}')

# 提交事务
conn.commit()

# 关闭游标和连接
cursor.close()
conn.close()

查表

命令行模式

SELECT * FROM <表名>;

Python代码

"""
连接数据库并查表
"""
import mysql.connector

conn = mysql.connector.connect(
    user='xxx', 
    password='xxx', 
    database='xxx'
)

cursor = conn.cursor()

try:
    cursor.execute('SELECT * FROM users')
except Exception as e:
    print(f'查询失败: {e}')
    cursor.close()
    conn.close()
    exit()

values = cursor.fetchall()
print(f'values:{values}')

cursor.close()
conn.close()
⚠️ **GitHub.com Fallback** ⚠️