目录
一、概述
1.什么是数据库
2.数据库能干什么
2.1 企业应用
2.2 金融行业
2.3 电子商务
2.4 社交媒体
2.5物联网
3.为什么要用数据库,优势、特性?
3.1 可靠性和稳定性
3.2 数据管理能力
3.3 数据共享和集成
3.4 数据安全性和隐私保护
3.5 减少数据冗余
二、数据库类型
1.关系型数据库 - RDBMS
1.1 概述
1.2 特点
1.3 代表产品
2.非关系型数据库 - NoSQL
1.1 概述
1.2 特点
1.3 代表产品
三、数据库模型
1.层次型数据库模型
2.网状型数据库模型
3.关系型数据库模型
4.非关系型数据库模型
四、MySQL安装
1.yum / rpm 安装
1.1 下载安装包
1.2 安装数据库服务
1.3 安装mysql提示公钥未安装
1.3.1 提示信息
1.3.2 分析原因
1.3.3 解决办法
1.4 登录数据库时提示密码错误
1.4.1 提示信息
1.4.2 分析原因
1.4.3 解决方法
1.4.3.1 使用随机密码登录
1.4.3.2 自行重置密码
2.源码安装
2.1 注意事项
2.2 安装前准备
2.2.1 安装依赖包
2.2.2 下载安装包
2.2.3 安装gcc/升级gcc
2.2.4 安装mysql
2.2.5 配置
五、MySQL登录
1.本地登录
2.使用软件登录
六、MySQL配置(基础)
1.数据库目录结构
1.1 rpm安装
1.2 源码安装
2.主配置文件详解
2.1 /etc/my.cnf
2.2 拓展配置项
数据库是存储、管理和操作组织化数据的软件系统。通俗地说将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合。(形如电话簿)
存放用户数据、管理企业数据
存储分析客户的财务数据
存储产品信息、订单信息等
存储社交消息数据
物联网设备在云服务平台的数据存储
现代数据库系统通常具有高度可靠性和稳定性,可以提供持久性和容错性,可以确保企业的数据安全性。
数据库系统提供了一种强大的方式来管理数据,从数据的存储到访问都进行统一的管理。企业可以更好地跟踪、管理和报告数据,从而使工作更加高效。
企业常常需要从不同的部门和应用程序中收集信息和数据。通过使用数据库,这些数据可以集成在一起,使企业更容易理解业务、做出决策。
企业往往会处理大量的机密数据,如个人信息、财务信息、业务数据等等。数据库管理系统可以提供安全的访问控制和数据保护功能,保护数据的隐私性和机密性。
数据库技术可以帮助企业减少数据冗余和重复,提高数据的一致性、准确性和可重用性。
关系型数据库是一种使用表格来展示和管理数据的数据库,关系型数据库的核心是数据之间的关系,因此也叫做“关系数据库”。RDBMS可以让用户很容易地使用和管理这些关系
便于查询和操作:SQL语句
结构化数据:使用行和列存放数据
数据的一致性和完整性:各种约束条件
并发性:支持多用户连接的隔离性
MySQL:瑞典MYSQL AB公司开发,现由甲骨文公司管理
PostgreSQL:PostgreSQL全球开发组开发的免费的开源的数据库管理系统
NoSQL(Not only SQL)是一种非关系型数据库模型,其数据存储和查询机制与传统的关系型数据库不同
非结构化数据:文本、图像、媒体等
分布式存储:分布在多个节点中,实现高并发
没有固定的规范模式:无需定义表和列,不强制要求结构
高可伸缩性:支持水平扩展,增加或删除节点
高性能:高速读写操作,比传统的关系型数据库效率要高
MongoDB:一款基于文档存储模型的非关系型数据库软件
Redis:一款基于内存存储的非关系型数据库,与MongoDB一样广泛应用于互联网领域, Redis常用于快速读写操作、缓存等场景
wget https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
yum -y install mysql-server
mysql密钥过期
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
yum -y install mysql-server
yum -y install mysql-server --nogpgcheck
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
输入的密码是错误的,所以拒绝你的访问
grep 'temporary password' /var/log/mysqld.log
注:记得先启动服务
mysql -u root -p
Enter password: 输入随机密码
进入数据库的配置文件
vim /etc/my.cnf
skip-grant-tables 添加参数,不验证密码进入mysql
systemctl restart mysqld
mysql
查看数据库:show databases;
使用mysql数据表:use mysql;
show tables;
select * from user;
创建root用户使用新的密码:create user 'root'@'localhost' identified by '123456';
如果报错,先刷新配置,在删除原来的root用户,然后再执行创建的操作:
flush privileges;
drop user 'root'@'localhost';
create user 'root'@'localhost' identified by '123456';
grant all privileges on *.* to 'root'@'localhost' with grant option;
flush privileges;
exit
vim /etc/my.cnf
去掉配置项skip-grant-tables
systemctl restart mysqld
mysql -uroot -p‘123456’
附:直接yum安装Mariadb
yum -y install mariadb mariadb-server
不使用配置文件越过密码验证,修改密码:
mysqladmin -uroot -p password '新密码'
yum -y install gcc gcc-c++ ncurses ncurses-devel libaio-devel openssl openssl-devel
yum -y install gmp gmp-devel mpfr mpfr-devel libmpc libmpc-devel glibc-headers
tar xf gcc-6.3.0.tar.xz
cd gcc-6.3.0/
./configure --disable-multilib && make && make install
这个编译会非常耗费时间,如果有双核CPU可以使用make -j2,4核CPU可以使用make -j4可以大大提高编译速度。
注:gcc的版本根据软件包的版本需求更新升级
tar xf mysql-boost-8.0.13.tar.gz
cd mysql-8.0.13/
cmake -DBUILD_CONFIG=mysql_release \
-DINSTALL_LAYOUT=STANDALONE \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DENABLE_DTRACE=OFF \
-DWITH_EMBEDDED_SERVER=OFF \
-DWITH_INNODB_MEMCACHED=ON \
-DWITH_SSL=bundled \
-DWITH_ZLIB=system \
-DWITH_PAM=ON \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DINSTALL_PLUGINDIR="/usr/local/mysql/lib/plugin" \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EDITLINE=bundled \
-DFEATURE_SET=community \
-DCOMPILATION_COMMENT="MySQL Server (GPL)" \
-DWITH_DEBUG=OFF \
-DFORCE_INSOURCE_BUILD=1 \
-DWITH_SSL=system \
-DWITH_BOOST=./boost
make -j2/4
make install
useradd -s /sbin/nologin mysql
mkdir -p /data/mysql
chown -R mysql:mysql /data/mysql/
mkdir -p /var/log/mysql
chown -R mysql:mysql /var/log/mysql/
mkdir -p /var/run/mysql
chown -R mysql:mysql /var/run/mysql
vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysql/mysql.log
pid-file=/var/run/mysql/mysql.pid
!includedir /etc/my.cnf.d
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/
随机密码会在提示信息中显示
cp /opt/mysql-8.0.20/support-files/mysql.server /etc/init.d/
chmod a+x /etc/init.d/mysql.server
/etc/init.d/mysql.server start
netstat -anptl | grep mysql
端口:3306/tcp
echo "export PATH=/usr/local/mysql/bin:$PATH:/usr/local/bin" >/etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh
mysql -u root -p 在回车之后输入随机密码
mysql> alter user 'root'@'localhost' identified with mysql_native_password BY '新密码';
mysql> flush privileges;
修改用户密码: ALTER USER 'username'@'localhost' IDENTIFIED BY 'new_password';
注:看到Query OK, 0 rows affected (0.00 sec)则操作成功
使用命令
navicat等
mysql-
├── extra/ # 额外的工具和脚本
├── include/ # 包含头文件
├── lib/ # 包含库文件
│ ├── libmysqlclient.so # MySQL 客户端库文件
│ └── libmysqld.so # MySQL 服务器端库文件
├── share/ # 包含共享文件
├── support-files/ # 包含初始化脚本和系统服务
│ ├── mysql.server # MySQL 服务启动脚本
│ ├── mysql.service # MySQL systemd 服务配置
│ └── ... # 其他各种脚本和配置文件
├── bin/ # MySQL 二进制文件
│ ├── mysqld # MySQL 服务器二进制文件
│ ├── mysql # MySQL 客户端二进制文件
│ ├── mysqladmin # 管理 MySQL 服务器的工具
│ ├── mysqldump # 导出 MySQL 数据库的工具
│ └── ... # 其他各种 MySQL 工具
├── man/ # MySQL 帮助手册
├── docs/ # MySQL 文档
├── sql/ # MySQL SQL 脚本文件
└── zlib/ # MySQL 所依赖的 zlib 库