You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
5.6 KiB
5.6 KiB
数据库创建详细操作步骤
1. MySQL数据库安装
如果还没有安装MySQL,请按照以下步骤安装:
Windows系统安装MySQL
- 访问MySQL官方网站下载页面:MySQL Community Server
- 选择Windows版本下载安装包(推荐使用MySQL Installer)
- 运行安装程序,选择"Developer Default"或"Server only"安装类型
- 按照安装向导提示完成安装,设置root用户密码(请记住这个密码)
- 确保MySQL服务设置为自动启动
验证MySQL安装
打开命令提示符(CMD)或PowerShell,输入以下命令验证MySQL是否正确安装:
mysql --version
如果安装成功,会显示MySQL的版本信息。
2. 启动MySQL服务
Windows系统
- 按下Win + R,输入
services.msc打开服务管理器 - 找到"MySQL80"服务(或类似名称)
- 确保服务状态为"正在运行",如果未运行,右键点击选择"启动"
3. 连接到MySQL服务器
使用命令行连接
打开命令提示符(CMD)或PowerShell,输入以下命令连接到MySQL:
mysql -u root -p
系统会提示输入密码,输入您在安装MySQL时设置的root密码。
使用MySQL Workbench连接(可选)
如果您安装了MySQL Workbench,可以通过图形界面连接:
- 打开MySQL Workbench
- 点击左侧的"Local instance MySQL80"连接
- 输入密码并连接
4. 创建数据库
连接成功后,执行以下SQL命令创建数据库:
CREATE DATABASE secondhandmarket CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
执行成功后,您会看到类似以下输出:
Query OK, 1 row affected (0.02 sec)
5. 选择数据库
执行以下命令选择刚创建的数据库:
USE secondhandmarket;
输出:
Database changed
6. 创建表结构
执行以下SQL语句创建所需的表结构:
创建users表
CREATE TABLE users (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
phone VARCHAR(20) NOT NULL UNIQUE,
password VARCHAR(100) NOT NULL,
nickname VARCHAR(50),
avatar VARCHAR(255),
gender VARCHAR(10),
bio VARCHAR(255),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
last_login TIMESTAMP,
status VARCHAR(20) DEFAULT 'ACTIVE'
);
创建items表
CREATE TABLE items (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(100) NOT NULL,
description TEXT,
price DECIMAL(10, 2) NOT NULL,
category VARCHAR(50) NOT NULL,
status VARCHAR(20) DEFAULT 'AVAILABLE',
images TEXT,
seller_id BIGINT NOT NULL,
view_count INT DEFAULT 0,
like_count INT DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (seller_id) REFERENCES users(id)
);
创建chat_messages表
CREATE TABLE chat_messages (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
sender_id BIGINT NOT NULL,
receiver_id BIGINT NOT NULL,
item_id BIGINT NOT NULL,
content TEXT NOT NULL,
is_read BOOLEAN DEFAULT FALSE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (sender_id) REFERENCES users(id),
FOREIGN KEY (receiver_id) REFERENCES users(id),
FOREIGN KEY (item_id) REFERENCES items(id)
);
7. 创建索引(提高查询性能)
为常用查询字段创建索引:
-- 为users表的phone字段创建索引
CREATE INDEX idx_users_phone ON users(phone);
-- 为items表的常用查询字段创建索引
CREATE INDEX idx_items_seller_id ON items(seller_id);
CREATE INDEX idx_items_category ON items(category);
CREATE INDEX idx_items_status ON items(status);
CREATE INDEX idx_items_price ON items(price);
-- 为chat_messages表的查询字段创建索引
CREATE INDEX idx_chat_messages_sender_receiver ON chat_messages(sender_id, receiver_id);
CREATE INDEX idx_chat_messages_receiver_id ON chat_messages(receiver_id);
CREATE INDEX idx_chat_messages_item_id ON chat_messages(item_id);
8. 验证表结构
执行以下命令查看创建的表:
SHOW TABLES;
输出应该包括:
+---------------------------+
| Tables_in_secondhandmarket |
+---------------------------+
| chat_messages |
| items |
| users |
+---------------------------+
9. 配置应用程序连接
确保application.properties文件中的数据库配置正确:
spring.datasource.url=jdbc:mysql://localhost:3306/secondhandmarket?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=061723 # 这是您设置的MySQL密码
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# JPA配置
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
10. 测试连接
当您启动Spring Boot应用程序时,它应该能够成功连接到MySQL数据库。如果连接失败,请检查以下几点:
- MySQL服务是否正在运行
- 数据库名称是否正确
- 用户名和密码是否正确
- 防火墙是否允许连接
- MySQL是否允许root用户从localhost连接
11. 注意事项
- 在生产环境中,不建议使用root用户,应该创建一个具有适当权限的新用户
- 确保数据库密码安全,不要硬编码在应用程序中
- 定期备份数据库
- 考虑使用连接池来优化数据库连接管理
故障排除
如果遇到连接问题,请尝试以下命令检查MySQL用户权限:
SELECT user, host FROM mysql.user;
GRANT ALL PRIVILEGES ON secondhandmarket.* TO 'root'@'localhost';
FLUSH PRIVILEGES;