一.
- 环境检查:
- 确认操作系统位数(32/64 位),匹配对应 MySQL 安装包(推荐 64 位);
- 关闭占用 3306 端口的程序(如其他数据库、迅雷等,可通过netstat -ano | findstr 3306(Windows)或lsof -i:3306(Linux/macOS)查询);
- 预留至少 500MB 磁盘空间(含安装文件和数据存储)。
- 安装包下载:
- 官方渠道:选择对应系统的 "Installer"(Windows)、"RPM 包"(Linux);
- 镜像渠道:国内用户可选择华为云、阿里云镜像,下载速度更快。
- 权限要求:
- Windows:需管理员权限(右键安装程序选择 "以管理员身份运行");
-
Linux/macOS:需 root 权限(使用sudo命令)。
-
二、MySQL 安装步骤(分系统详解)
(一)Windows 系统(exe 安装包 / 压缩包两种方式)
-
双击下载的mysql-installer-community-xxx.exe,勾选 "Accept License Agreement",点击 "Next";
-
选择安装类型:
-
新手选 "Developer Default";
-
自定义选 "Custom",勾选 "MySQL Server" 及需要的组件;
-
路径设置:默认安装路径(C:\Program Files\MySQL\MySQL Server 8.0)可修改,数据存储路径建议单独设置(如 D:\MySQL\Data),避免 C 盘满溢;
-
配置端口:默认 3306,若被占用可修改为 3307 等未占用端口,勾选 "Open Firewall port for network access";
-
账号设置:必须设置 root 管理员密码,可添加普通用户;
-
服务配置:默认 "Windows Service Name" 为 MySQL80,勾选 "Start the MySQL Server at System Startup";
-
完成安装:点击 "Execute" 执行配置,等待进度条完成后,点击 "Finish",可勾选 "Launch MySQL Workbench" 验证连接。
-
方式 2:压缩包
-
解压下载的压缩包到目标路径;
-
新建配置文件:在解压根目录新建my.ini文件,写入基础配置:
-
ini
mysqld\] basedir=D:\\MySQL\\mysql-8.0.36 datadir=D:\\MySQL\\Data port=3306 character-set-server=utf8mb4 default-storage-engine=INNODB \[mysql\] default-character-set=utf8mb4
-
cmd
cd D:\MySQL\mysql-8.0.36\bin
mysqld --initialize --console
-
安装并启动服务:
-
plaintext
mysqld --install MySQL80
net start MySQL80
-
登录并修改密码:
-
cmd
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
(二)Linux 系统
方式 1:YUM 安装
-
下载 MySQL YUM 仓库配置文件:
-
plaintext
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
-
安装仓库并启用对应版本:
-
bash
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
vi /etc/yum.repos.d/mysql-community.repo
-
安装 MySQL Server:
-
b
yum install -y mysql-community-server
-
启动服务并设置开机自启:
-
b
systemctl start mysqld
systemctl enable mysqld
-
查看临时密码并修改:
-
b
grep 'temporary password' /var/log/mysqld.log
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass123!';
方式 2:RPM 包安装
-
下载对应版本的 RPM 包;
-
卸载系统自带的 mariadb:
-
ba
rpm -e --nodeps mariadb-libs
-
安装依赖并安装 MySQL:
-
bas
yum install -y libaio-devel
rpm -ivh mysql-community-common-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.36-1.el7.x86_64.rpm
-
后续步骤(启动服务、改密码)同 YUM 安装的 4-5 步。
一、数据库设计说明
**
- 数据库名称:library_management
- 设计原则:
-
- 字段类型适配数据特性;
-
- 添加主键约束确保数据唯一性,外键关联保证数据一致性;
-
- 非空字段设置NOT NULL,避免无效数据;
-
- 密码字段预留加密空间。
二、建库建表 SQL 语句
-- 1. 创建数据库(指定编码为utf8mb4,支持所有中文及特殊字符)
CREATE DATABASE IF NOT EXISTS library_management
DEFAULT CHARACTER SET utf8mb4
DEFAULT COLLATE utf8mb4_general_ci;
-- 切换到目标数据库
USE library_management;
-- 2. 创建用户表(user)
CREATE TABLE IF NOT EXISTS `user` (
```id` INT PRIMARY KEY AUTO_INCREMENT COMMENT '用户唯一标识(自增主键)',``
```name` VARCHAR(50) NOT NULL COMMENT '姓名',``
```username` VARCHAR(30) NOT NULL UNIQUE COMMENT '用户名(唯一,用于登录)',``
```password` VARCHAR(64) NOT NULL COMMENT '密码(建议加密存储,预留加密后长度)',``
```phone` CHAR(11) NOT NULL COMMENT '手机号(固定11位)',``
```address` VARCHAR(255) COMMENT '住址(可空)',``
```major_grade` VARCHAR(50) NOT NULL COMMENT '专业及年级(如:计算机科学与技术2022级)'``
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户信息表';
-- 3. 创建图书表(book)
CREATE TABLE IF NOT EXISTS `book` (
```id` INT PRIMARY KEY AUTO_INCREMENT COMMENT '图书唯一标识(自增主键)',``
```book_name` VARCHAR(100) NOT NULL COMMENT '图书名',``
```category` VARCHAR(50) NOT NULL COMMENT '分类(如:计算机、文学、历史)',``
```introduction` TEXT COMMENT '图书介绍(可长文本)',``
```publisher` VARCHAR(100) NOT NULL COMMENT '出版社',``
```stock_time` DATETIME NOT NULL COMMENT '入库时间'``
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='图书信息表';
-- 4. 创建借阅登记表(borrow_record)
CREATE TABLE IF NOT EXISTS `borrow_record` (
```id` INT PRIMARY KEY AUTO_INCREMENT COMMENT '借阅记录唯一标识(自增主键)',``
```user_id` INT NOT NULL COMMENT '借阅人ID(关联用户表)',``
```book_id` INT NOT NULL COMMENT '图书ID(关联图书表)',``
```borrow_time` DATETIME NOT NULL COMMENT '借阅时间',``
```is_return` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否归还(0=未归还,1=已归还)',``
-- 外键约束:确保借阅人、图书存在于对应表中
FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE,
FOREIGN KEY (`book_id`) REFERENCES `book`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='图书借阅登记表';
三、表结构详细信息(模拟 desc 查询结果)
1. 用户表(user)
|-------------|--------------|-----|-----|------|----------------|--------------------------|
| 字段名 | 类型 | 空值 | 键 | 默认值 | 额外 | 注释 |
| id | int | NO | PRI | NULL | auto_increment | 用户唯一标识 |
| name | varchar(50) | NO | | NULL | | 姓名 |
| username | varchar(30) | NO | UNI | NULL | | 用户名 |
| password | varchar(64) | NO | | NULL | | 密码 |
| phone | char(11) | NO | | NULL | | 手机号 |
| address | varchar(255) | YES | | NULL | | 住址 |
| major_grade | varchar(50) | NO | | NULL | | 专业及年级(如:计算机科学与技术 2022 级) |
2. 图书表(book)
|--------------|--------------|-----|-----|------|----------------|--------|
| 字段名 | 类型 | 空值 | 键 | 默认值 | 额外 | 注释 |
| id | int | NO | PRI | NULL | auto_increment | 图书唯一标识 |
| book_name | varchar(100) | NO | | NULL | | 图书名 |
| category | varchar(50) | NO | | NULL | | 分类 |
| introduction | text | YES | | NULL | | 图书介绍 |
| publisher | varchar(100) | NO | | NULL | | 出版社 |
| stock_time | datetime | NO | | NULL | | 入库时间 |
3. 借阅登记表(borrow_record)
|-------------|------------|----|-----|------|----------------|----------|
| 字段名 | 类型 | 空值 | 键 | 默认值 | 额外 | 注释 |
| id | int | NO | PRI | NULL | auto_increment | 借阅记录唯一标识 |
| user_id | int | NO | MUL | NULL | | 借阅人 ID |
| book_id | int | NO | MUL | NULL | | 图书 ID |
| borrow_time | datetime | NO | | NULL | | 借阅时间 |
| is_return | tinyint(1) | NO | | 0 | | 是否归还 |