MySQL(Python版) - wxtt-github/blog GitHub Wiki
# 环境: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()