一、安装前的准备工作
在安装MySQL前,需要完成服务器基础环境配置,避免后续安装和使用出现网络、权限问题。
1. 关闭防火墙
CentOS 7默认启用firewalld防火墙,测试环境下可直接关闭,减少端口访问限制:
# 停止防火墙服务
systemctl stop firewalld.service
# 禁止防火墙开机自启
systemctl disable firewalld.service
# 验证防火墙状态(显示inactive则为关闭)
systemctl status firewalld.service
2. 配置静态IP与映射
(1)添加映射
# 修改电脑"C:\Windows\System32\drivers\etc\hosts"文件
# 最后一行内容 添加主机映射
192.168.111.100 master #(每个人主机地址不同)
(2)配置静态IP
编辑网卡配置文件,替换为自身网络段的参数:
cd /etc/sysconfig/network-scripts
vim ifcfg-ens33
修改以下核心参数(示例为[192.168.111.100]按需调整):
TYPE=Ethernet
BOOTPROTO=static # 静态IP模式
ONBOOT=yes # 开机自启网卡
IPADDR=192.168.111.100 # 本机IP
NETMASK=255.255.255.0 # 子网掩码
GATEWAY=192.168.111.2 # 网关
DNS1=192.168.111.2 # DNS服务器
3. 配置阿里YUM源(优化下载速度)
CentOS默认源下载速度慢,替换为阿里源:
# 备份原有源文件
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 下载阿里CentOS 7源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# 移除无法访问的阿里云ECS专属源
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
# 重建yum缓存
yum makecache
二、配置第三方库
1. 换源,备份原有的源配置文件
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2.从阿里官方网站下载对应系统版本的源配置文件
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
3.由于我们是非ECS用户,所以源配置文件中包含aliyuncs.com地址访问不了,故对其进行移除
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
4.重新构建本地缓存
yum makecache
三、安装MySQL5.7
1.下载yum Repository
wget -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
2.安装yum Repository
yum -y install mysql57-community-release-el7-10.noarch.rpm
3.使用yum安装mysql5.7
yum -y --nogpgcheck install mysql-community-server
4.卸载yum Repository
# 安装了yum Repository后,每次执行yum操作都会更新一遍,会导致运行的慢,用完之后删了
yum -y remove mysql57-community-release-el7-10.noarch
四、启动并配置MySQL服务
1.启动服务并设置开机自启
# 查看服务状态
systemctl status mysqld
# 启动服务
systemctl start mysqld
# 开机自启
systemctl enable mysqld
2.获取临时密码
MySQL 5.7安装后会生成临时密码,存储在日志文件中:
grep "password" /var/log/mysqld.log
3.登录并修改密码
# XXX为复制的密码,不要手敲临时密码,使用复制的单行的密码
mysql -uroot -pXXX
4.关闭密码复杂验证
set global validate_password_policy=0;
set global validate_password_length=1;
5.设置登录密码
alter user user() identified by "123456";
6.开放远程登录
默认root仅允许本地登录,如需远程连接(如Navicat),执行以下命令:
# 切换至mysql数据库
use mysql;
# 修改权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
# 刷新权限
flush privileges;
# 退出
exit;
7.修改MySQL编码为utf8mb4
避免中文乱码,退出mysql,编辑/etc/my.cnf配置文件,添加以下内容:
[client]
default-character-set=utf8mb4
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
重启MySQL服务生效:
systemctl restart mysqld
8.查看数据库
show databases;
运行结果:

五、MySQL基础使用(建表、增删改查、导入导出)
1. 创建数据表
-- 学生表
CREATE TABLE `students` (
`stu_id` bigint(10) DEFAULT NULL COMMENT '学生学号',
`stu_name` varchar(255) DEFAULT NULL COMMENT '学生姓名',
`gender` varchar(255) DEFAULT NULL COMMENT '学生性别',
`age` int(10) DEFAULT NULL COMMENT '学生年龄',
`major` varchar(255) DEFAULT NULL COMMENT '学生专业',
`clazz` varchar(255) DEFAULT NULL COMMENT '学生班级',
`year` bigint(20) DEFAULT NULL COMMENT '入学年份'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
2. 插入数据
(1)单条数据插入
insert into students values(20250101,'张三','男',20,'计算机科学与技术','计科2501',2025);
(2)批量数据插入
insert into students(stu_id,stu_name,gender,age,major,clazz,year) values
(20250101,'张三','男',20,'计算机科学与技术','计科2501',2025),
(20250102,'李四','女',20,'计算机科学与技术','计科2501',2025),
(20250103,'王五','男',19,'计算机科学与技术','计科2501',2025),
(20250201,'赵六','女',20,'软件工程','软工2502',2025);
(3)从本地文件导入数据
适合大批量数据导入,示例导入students.txt(字段以逗号分隔):
# Linux系统
load data local infile '/root/data/students.txt' into table students fields terminated by ',';
3. 数据查询
(1)基础查询
-- 查询所有学生信息
select * from students;
-- 查询年龄20岁的学生姓名和年龄
select stu_name, age from students where age = 20;
-- 模糊查询计算机相关专业学生
select * from students where major LIKE '%计算机科学%';
(2)排序与分组查询
-- 按学号倒序查询20岁学生
SELECT stu_id, stu_name FROM students WHERE age = 20 ORDER BY stu_id DESC;
-- 查询各专业学生最大年龄
SELECT major,MAX(age) as max_age FROM students GROUP BY major;
(3)多表联查(内连接/外连接)
-- 内连接:查询学生+成绩+科目信息
SELECT s.*, sc.subject_id, su.subject_name
FROM students s
JOIN scores sc ON s.stu_id = sc.stu_id
JOIN subjects su ON sc.subject_id = su.subject_id;
-- 右连接:查询所有成绩记录(含无对应学生的成绩)
SELECT * FROM students s RIGHT JOIN scores sc ON s.stu_id = sc.stu_id;
4. 数据导出(备份)
使用mysqldump工具备份数据表,示例备份students表:
# 基础备份(不建议明文写密码)
mysqldump -uroot -p123456 stu students > /root/data/students.sql
# 配置别名实现每日自动备份(添加到~/.bashrc)
alias db_backup='mysqldump -uroot -p --single-transaction stu students | gzip > /root/data/mydb_$(date +%Y%m%d).sql.gz'
执行source ~/.bashrc生效后,直接输入db_backup即可生成带日期的压缩备份文件。
六、Navicat
1.新建数据库
打开后右击,点击新建连接,选择mysql
连接名可更换,主机选择你添加的映射名或地址

连接后右击选择新建数据库,设置好数据库名即可

2.新建表与导入文件
右击表,选择新建表

点击添加字段,即可设计表,注意:设计完后要点击保存

保存后右击选择导入向导,即可导入文件数据

这里只需要选择制表符,其他默认

字段名行:如果没有列名就改为0
第一个数据行:从此行开始读取数据,若没有说明性文字,序列从1开始

目标字段要对应选择之前设计好的字段

导入模式选择追加,设置了主键选追加或更新

最后点击开始,显示没有错误后,刷新就可以看到导入结果

3.导出表
右击表,选择导出模式,然后直接跳到最后一步,点击开始即可

4.查询
点击新建查询,可以通过语句查找数据。注意:要框选查询语句,再点击运行

