linux_数据库_1

TJCcc 发布于 2026-03-04 22 次阅读


主题:数据库概述、MySQL安装与管理基础


一、为什么要学数据库?

在互联网公司中,数据是最值钱的东西
比如你在网站上注册账号、发文章、上传视频,这些信息都要存下来。
数据库就是用来存这些信息的专业软件。

学数据库的好处:

  • 是求职必备技能
  • 影响薪资和职级
  • 保证数据安全和高效读写

二、数据库是啥?

1. 数据的两种形式

识别方式例子
人类能看懂文字、图片、视频、数字、符号
电脑能看懂二进制(0和1)

数据库的作用就是:把人类看得懂的数据,转成电脑能存的二进制,并且管好、存好、用好。


三、数据库的分类

1. 关系型数据库(RDBMS)

  • 像Excel表格,存的是二维表
  • 重视数据安全
  • 用SQL语言操作
  • 例子:MySQL、Oracle、PostgreSQL、SQL Server

📌 MySQL 是咱们这门课的主角

关系型数据库的4层结构:

  1. DBMS:数据库管理系统(比如MySQL软件)
  2. 数据库:存数据的“仓库”
  3. :一个仓库里的一个柜子
  4. 字段:柜子里的一个个格子

2. 非关系型数据库(NoSQL)

  • 不一定是表格,结构灵活
  • 重视读写速度
  • 例子:Redis(键值对)、MongoDB(文档)、ES(搜索)

3. 新型数据库(NewSQL)

  • 国产数据库,适合高并发
  • 例子:TiDB、OceanBase、PolarDB

四、常见面试题(背下来)

Q1:你熟悉的数据库有哪些?你们公司用了哪些?
A:

关系型:MySQL、Oracle、PG;

NoSQL:Redis、MongoDB、ES;

云数据库:RDS。

Q2:你喜欢MySQL吗?怎么学的?
A:喜欢,因为它开源、稳定、社区活跃。我通过官方文档、书籍、网上案例学习。技能包括:安装、SQL语句、用户权限、备份恢复、主从复制等。


五、MySQL版本说明

  • MySQL 5.6:快淘汰了
  • MySQL 5.7:部分企业还在用
  • MySQL 8.0:目前最主流

版本命名:

  • GA:稳定版
  • C:社区版(免费)
  • E:企业版(收费)

六、MySQL的优点

  • 稳定,很少宕机
  • 开源免费
  • 社区活跃,遇到问题好查
  • 安装简单,体积小
  • 支持多种操作系统和编程语言

七、MySQL安装(Linux环境,二进制方式)

1. 准备工作

# 查看是否安装了mariadb(冲突)
rpm -qa | grep mariadb
yum remove -y mariadb-libs

# 安装依赖
yum install -y libaio-devel

2. 解压安装包

cd /usr/local/
tar xf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
ln -s mysql-8.0.26-linux-glibc2.12-x86_64 mysql

3. 配置环境变量

echo "export PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile
source /etc/profile
mysql -V   # 查看版本

4. 创建用户和目录

useradd mysql
mkdir -p /data/3306/data /data/3306/logs
chown -R mysql /data/

5. 初始化数据库(8.0版本)

mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306/data

如果是 --initialize 安全模式,会生成随机密码,第一次登录必须改密码。

6. 启动MySQL

/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/3306/my.cnf &

八、MySQL服务管理

1. 启动/关闭方式

启动方式关闭方式
mysqld &kill(不推荐)
mysqld_safe &kill
service mysqld startservice mysqld stop
systemctl start mysqldsystemctl stop mysqld
登录MySQL后执行 shutdown;
mysqladmin shutdown

2. 设置密码

# 第一次设置
mysqladmin password '123456'

# 修改密码
mysqladmin -uroot -p旧密码 password '新密码'

或者在MySQL里:

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

九、MySQL用户管理

1. 创建用户

CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
  • 主机名可以是:localhost(只能本机登录)、%(任意主机)、192.168.1.%(某个网段)

2. 删除用户

DROP USER '用户名'@'主机名';

3. 锁定/解锁用户

ALTER USER '用户名'@'主机名' ACCOUNT LOCK;
ALTER USER '用户名'@'主机名' ACCOUNT UNLOCK;

十、MySQL权限管理

1. 授权

GRANT SELECT, INSERT ON 数据库.* TO '用户'@'主机';
GRANT ALL PRIVILEGES ON *.* TO '管理员'@'localhost' WITH GRANT OPTION;

2. 查看权限

SHOW GRANTS FOR '用户'@'主机';

3. 回收权限

REVOKE DELETE ON *.* FROM '用户'@'主机';

十一、MySQL连接方式

1. 本地连接(通过socket)

mysql -uroot -p -S /tmp/mysql.sock

2. 远程连接(通过TCP/IP)

mysql -u用户名 -p -h IP地址 -P 3306

也可以用图形化工具如 Navicat 连接。


十二、MySQL配置文件

  • 默认路径顺序:/etc/my.cnf/etc/mysql/my.cnf/usr/local/mysql/etc/my.cnf~/.my.cnf
  • 常用配置:
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3306/data
port=3306
socket=/tmp/mysql.sock
server_id=1
[mysql]
socket=/tmp/mysql.sock

十三、MySQL多实例

在一台服务器上跑多个MySQL服务,叫多实例。

多实例规划

实例端口数据目录配置文件socket文件
实例13307/data/3307/data/data/3307/my.cnf/tmp/mysql3307.sock
实例23308/data/3308/data/data/3308/my.cnf/tmp/mysql3308.sock

启动方式:

mysqld_safe --defaults-file=/data/3307/my.cnf &

十四、MySQL版本升级

升级方式

  • Inplace升级:原地升级,风险大
  • 迁移升级:装新库,迁移数据,更安全

升级注意事项

  • 必须GA版本之间升级
  • 5.6 → 5.7 → 8.0 可以跨,但最好先升到最新小版本
  • 升级前必须备份数据
  • 8.0之后支持升级预检查(mysqlshell)

升级后回滚

  • 小版本可回滚,8.0不支持回滚,只能恢复备份

十五、MySQL 5.7 和 8.0 的主要区别

项目5.78.0
授权方式grant直接创建用户必须先create user再grant
密码插件mysql_native_passwordcaching_sha2_password(更安全)
角色功能支持角色(role)
升级预检有(mysqlshell)

十六、忘记root密码怎么办?

  1. 停止MySQL
  2. 用跳过授权表方式启动:
mysqld_safe --skip-grant-tables --skip-networking &
  1. 无密码登录:
mysql -uroot
  1. 加载权限表到内存中:
FLUSH PRIVILEGES;
  1. 改密码,将内存中更改后的授权表重新写入数据库中:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
  1. 重启MySQL正常启动

✅ 总结

Day01 的内容主要帮你建立对数据库的整体认识,重点掌握:

  • 数据库分类
  • MySQL安装流程
  • 用户和权限管理
  • 配置文件和启动方式
  • 多实例和升级概念

唯有极致沉淀,才能造就辉煌。
最后更新于 2026-03-04