52 lines
1.3 KiB
Go
52 lines
1.3 KiB
Go
package main
|
||
|
||
import (
|
||
"database/sql"
|
||
"fmt"
|
||
"log"
|
||
|
||
_ "github.com/go-sql-driver/mysql"
|
||
)
|
||
|
||
func main() {
|
||
// MySQL connection info
|
||
username := "root"
|
||
password := "root"
|
||
hostname := "127.0.0.1"
|
||
port := "3306"
|
||
dbname := "nl_blog"
|
||
|
||
// Build DSN
|
||
dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s", username, password, hostname, port, dbname)
|
||
|
||
// Connect to MySQL
|
||
db, err := sql.Open("mysql", dsn)
|
||
if err != nil {
|
||
log.Fatalf("Failed to open database connection: %v", err)
|
||
}
|
||
defer db.Close()
|
||
|
||
// Create table query
|
||
createTableQuery := `
|
||
CREATE TABLE IF NOT EXISTS user_access_logs (
|
||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||
user_id INT DEFAULT 0 COMMENT '用户ID(未登录用户为0)',
|
||
user_ip VARCHAR(45) NOT NULL COMMENT '用户IP地址',
|
||
user_location VARCHAR(100) COMMENT '用户归属地',
|
||
article_id INT NOT NULL COMMENT '访问的文章ID',
|
||
access_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '访问时间',
|
||
INDEX idx_user_id (user_id),
|
||
INDEX idx_article_id (article_id),
|
||
INDEX idx_access_time (access_time)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户访问记录表';
|
||
`
|
||
|
||
// Execute query
|
||
_, err = db.Exec(createTableQuery)
|
||
if err != nil {
|
||
log.Fatalf("Failed to create table: %v", err)
|
||
}
|
||
|
||
fmt.Println("Table 'user_access_logs' created successfully (or already exists).")
|
||
}
|