Linux--mysql数据库与编译安装

文章目录

  • 一、数据库概念
    • [1.1 数据库基本概念](#1.1 数据库基本概念)
    • [1.2 表](#1.2 表)
    • [1.3 数据库](#1.3 数据库)
    • [1.4 数据库管理系统](#1.4 数据库管理系统)
    • [1.5 数据库系统(DBS)](#1.5 数据库系统(DBS))
  • 二、数据库发展史
    • [2.1 关系型数据库](#2.1 关系型数据库)
    • [2.2 非关系型数据库(NoSQL)](#2.2 非关系型数据库(NoSQL))
    • 三、数据库的安装

一、数据库概念

1.1 数据库基本概念

  • 定义:描述客观事物的符号记录(Data),包括数字、文字、图像、声音等。
  • 存储方式:
    以记录形式存储,统一格式。
    相同类型的数据存放在一起(如"学生"数据不会和"图书"混在一起)。
  • 数据库的保存形式:
    MySQL 服务 → 数据库 → 数据表 → 行(记录) + 列(字段)

1.2 表

  • 表结构= 行(记录) + 列(字段)
  • 特点
    记录由字段组成,字段由字符/数字组成
    可供不同用户共享
    具有较小的冗余度和较高的数据独立性

1.3 数据库

  • 数据库就是 表的集合,是按照一定组织方式存储的 相关数据集合。

1.4 数据库管理系统

  • 定义:操作和管理数据库的软件。
  • 主要功能:
  1. 建库与维护(建表、转储与恢复、重组、性能监视)
  2. 数据定义(数据结构、存储结构、保密模式)
  3. 数据操作(查询、统计、更新)
  4. 运行管理(并发控制、存取控制、维护)
  5. 通信(与其他软件交互,如 Access 和 Office 组件)
    数据库系统
    是一个人机系统,由硬件、OS、数据库、DBMS、应用软件和数据库用户组成
    用户可以通过DBMS或应用程序操作数据库

1.5 数据库系统(DBS)

  • 组成:硬件 + 操作系统 + 数据库 + DBMS + 应用软件 + 用户
  • DBA(数据库管理员):负责备份恢复、维护、用户管理。
  • 数据库应用软件:Navicat、人事管理系统、财务系统、图书管理等。
    DBMS工作模式:
  1. 接收请求
  2. 转换为底层指令
  3. 执行数据库操作
  4. 获取结果
  5. 格式化结果
  6. 返回给用户

二、数据库发展史

  • 第一阶段(层次型/网状型)
  • 第二阶段:(关系型)
  • 第三阶段:(新型数据库)
    特点:特点:面向对象、开放性、多平台
    SQL + NoSQL 混合使用 第三代
    新兴数据库:MariaDB、PostgreSQL、时序数据库 Promethues

2.1 关系型数据库

  • 数据库模型:E-R模型(实体-关系)
    行(记录)=实体
    列(字段)=属性
    表与表之间存在关系(1对1,1对多,多对多)
  • 主键:唯一、非空、类比身份证
  • 常见产品:MySQL、Oracle、SQL Server、DB2、PostgreSQL等。

2.2 非关系型数据库(NoSQL)

  • 定义:Not Only SQL,存储方式不限于表,可存储键值对、文档、列式数据等。
  • 典型产品;Redis、Memcached、MongoDB、HBase。
  • 应用场景:高并发、缓存、大数据实时计算。
    非关系型数据库优点:
  1. 格式灵活(Key-Value、文档、图片等)
  2. 速度快(基于内存存储)
  3. 高扩展性
  4. 成本低(开源,部署简单)
    非关系型数据库缺点:
  5. 不支持 SQL
  6. 缺少事务处理
  7. 复杂查询支持不足
  8. 大部分数据在内存,成本较高

三、数据库的安装

1、环境的准备:

bash 复制代码
yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake
  • gcc:编译工具
  • ncures/ncurses-devel:字符段终端交互库。
  • bison:语法分析器。
  • cmake:MySQL编译工具。

2、创建MySQL专用用户

useradd -s /sbin/nologin mysql

3、源码解压与依赖

bash 复制代码
tar zxvf mysql-5.7.17.tar.gz -C /opt
tar zxvf boost_1_59_0.tar.gz -C /usr/local/
mv /usr/local/boost_1_59_0 /usr/local/boost

4、CMake 编译配置

进入源码目录:

cd /opt/mysql-5.7.17/

执行 cmake(关键参数):

bash 复制代码
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \		#指定mysql的安装路径
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ #指定mysql进程监听套接字文件(数据库连接文件)的存储路径
-DSYSCONFDIR=/etc \                             #指定配置文件的存储路径
-DSYSTEMD_PID_DIR=/usr/local/mysql \            #指定进程文件的存储路径
-DDEFAULT_CHARSET=utf8  \                       #指定默认使用的字符集编码,如 utf8
-DDEFAULT_COLLATION=utf8_general_ci \			#指定默认使用的字符集校对规则
-DWITH_EXTRA_CHARSETS=all \						#指定支持其他字符集编码
-DWITH_INNOBASE_STORAGE_ENGINE=1 \              #安装INNOBASE存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \               #安装ARCHIVE存储引擎 
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \             #安装BLACKHOLE存储引擎 
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \            #安装FEDERATED存储引擎 
-DMYSQL_DATADIR=/usr/local/mysql/data \         #指定数据库文件的存储路径
-DWITH_BOOST=/usr/local/boost \          #指定boost的路径,若使用mysql-boost集成包安装则-DWITH_BOOST=boost
-DWITH_SYSTEMD=1

编译安装:

bash 复制代码
make && make install

5、创建普通用户管理mysql

bash 复制代码
useradd -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql/
#更改管理主/组
chown mysql:mysql /etc/my.cnf

修改配置文件 /etc/my.cnf

6、修改配置文件

vim /etc/my.cnf

7、#设置环境变量,申明/宣告mysql命令便于系统识别

bash 复制代码
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile

8、#初始化数据库

bash 复制代码
cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \				#生成初始化密码为空
--user=mysql \                      #指定管理用户
--basedir=/usr/local/mysql \        #指定数据库的安装目录
--datadir=/usr/local/mysql/data		#指定数据库文件的存储路径

9、设置开机自启动服务等

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/

systemctl daemon-reload #刷新识别

systemctl start mysqld.service #开启服务

systemctl enable mysqld #开机自启动

netstat -anpt | grep 3306 #查看端口

10、给root账号设置密码:

mysqladmin -u root -p password "123456"

回车登录

mysql -u root -p123456

相关推荐
m0_485614671 天前
Linux---Nginx优化与防盗链
其他
adjusttraining3 天前
毁掉孩子视力不是电视和手机,两个隐藏很深因素,很多家长并不知
深度学习·其他
小屋主人4 天前
【实用软件】UninstallTool:一个小巧、安全、快速、强大的卸载软件
经验分享·其他·软件·软件卸载
草莓熊Lotso4 天前
《算法闯关指南:动态规划算法--斐波拉契数列模型》--01.第N个泰波拉契数,02.三步问题
开发语言·c++·经验分享·笔记·其他·算法·动态规划
Wins_calculator5 天前
学了半年不知道怎么样了感觉距离理想还很遥远
其他
白鳯8 天前
《梅雨前后》唯美怀旧的江户风情挽歌
程序人生·其他·读书·感悟·梅雨前后·永井荷风
罗光记8 天前
低空基础设施新突破!优刻得 ×IDEA联合发布 OpenSILAS一体机
数据库·经验分享·其他·百度·facebook
D-海漠12 天前
S7-1200 作为 OPC UA 服务器,UA Expert 作为 OPC UA 客户端
其他
DeepNoMind12 天前
团队架构的月之暗面
其他