Mysql用户登录日志实现
流程概述
本文将教会刚入行的开发者如何实现MySQL用户登录日志功能。下面是实现该功能的步骤:
| 步骤 | 描述 |
|---|---|
| 1 | 创建数据库表 |
| 2 | 创建用户登录记录表 |
| 3 | 编写用户登录日志插入代码 |
| 4 | 编写用户登录验证代码 |
创建数据库表
首先,我们需要创建一个数据库用于存储用户登录日志。假设我们的数据库名为login_log。
CREATE DATABASE login_log;
USE login_log;
创建用户登录记录表
接下来,我们需要创建一个表用于存储用户登录日志。我们可以创建一个名为user_login_log的表,包含以下字段:
- id: 登录记录的唯一标识,使用自增主键
- user_id: 登录用户的ID
- login_time: 登录时间
- login_status: 登录状态,成功或失败
以下是创建user_login_log表的代码:
CREATE TABLE user_login_log (
id INT PRIMARY KEY AUTO_INCREMENT,
user_id INT,
login_time DATETIME,
login_status ENUM('success', 'failure')
);
编写用户登录日志插入代码
当用户登录成功或失败时,我们需要向user_login_log表中插入一条记录。下面是一个示例代码,用于将登录日志插入到数据库中:
import mysql.connector
def insert_login_log(user_id, login_status):
db = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="login_log"
)
cursor = db.cursor()
sql = "INSERT INTO user_login_log (user_id, login_time, login_status) VALUES (%s, NOW(), %s)"
val = (user_id, login_status)
cursor.execute(sql, val)
db.commit()
print(cursor.rowcount, "record inserted.")
insert_login_log(123, 'success')
以上代码使用了mysql.connector库连接到MySQL数据库,并将登录日志插入到user_login_log表中。你需要将yourusername和yourpassword替换为你的MySQL用户名和密码。
编写用户登录验证代码
最后,我们需要编写用户登录验证的代码,当用户登录时进行验证,并记录登录日志。以下是一个示例代码:
import mysql.connector
def login(user_id, password):
db = mysql.connector.connect(
host="localhost",
user="yourusername",
password="yourpassword",
database="yourdatabase"
)
cursor = db.cursor()
sql = "SELECT * FROM users WHERE user_id = %s AND password = %s"
val = (user_id, password)
cursor.execute(sql, val)
user = cursor.fetchone()
if user:
print("Login successful.")
insert_login_log(user_id, 'success')
else:
print("Login failed.")
insert_login_log(user_id, 'failure')
login(123, 'password')
以上代码首先连接到MySQL数据库,然后执行用户登录验证查询。如果查询结果存在,则登录成功,否则登录失败。无论登录是否成功,都会插入一条登录日志记录。
你需要将yourusername、yourpassword和yourdatabase替换为你的MySQL用户名、密码和数据库名。
类图
classDiagram
class Database {
+ connect()
+ disconnect()
+ executeSQL()
}
class UserLoginLog {
- user_id : int
- login_time : datetime
- login_status : enum
}
class User {
- user_id : int
- password : string
}
class LoginService {
+ login()
+ insertLoginLog()
}
Database ..> UserLoginLog
Database ..> User
LoginService ..> Database
LoginService ..> User
LoginService ..> UserLoginLog
状态图
stateDiagram
[*] --> LoggedOut
LoggedOut --> LoggingIn: login()
LoggingIn --> LoggedIn: successful login
LoggingIn --> LoggedOut: failed login
LoggedIn --> LoggedOut: logout()
state LoggedOut {
[*] --> idle
idle --> [*]
}
state LoggingIn {
[*] --> authenticating
authenticating --> [*]
}
state LoggedIn {
[*] --> active
active --> [*]
}
以上就是实现MySQL用户登录日志功能的流程以及相关代码。通过这些步骤,你可以轻松地添加用户登录
















