目录
非关系型数据库也被称为在、NoSQL(Not Only SQl)
数据库
数据库概念
数据
描述事物的符号记录
包括数字,文字、图形、图像、声音、档案记录等
以记录形式统一的格式进行存储
表
将不同的记录组织在一起
用来存储具体数据
数据库
表的集合,是存储数据的仓库
以一定的组织方式存储的相关有关的数据集合
数据库管理系统
是实现对数据库资源有效组织、管理和存取的系统软件
数据库系统
是一个人机系统,由硬件、OS、数据库、DBMS、应用软件和数据库用户组成
用户可以通过DBMS或应用程序操作数据库
数据库类型
关系型数据库与非关系型数据库
关系型数据库:DB2、SQL Server 、MySql数据库、Oracle
关系型数据库
实体:也称为实例,对应现实世界中可区别于其他对象的“事件”或“事物”
实体集:具有相同类型及共享相同性质的实体集合
属性:实体所具有的某一特性,一个实体可以有多个属性
联系:实体集之间的对应关系称为联系,也称为关系
非关系型数据库
非关系型数据库也被称为在、NoSQL(Not Only SQl)
存储数据不以关系模型为依据,不需要固定的表格式
非关系型数据库的优点
数据库可高并发读写
对海量数据高效率存储与访问
对数据库具有高拓展性与高可用性
常用的非关系型数据库:Redis、mongoDB等
MySql数据库的介绍
一款深受欢迎的开源关系型数据库
Oracle旗下的产品
遵守GPL协议,可以免费使用与修改
特点
性能卓越、服务稳定
开源、无版权限制、成本低
多线程、多用户
基于C/S(客户端/服务器)架构
安全可靠
MySQL 的编译安装
1.准备工作
1.配置2C4G以上,恢复干净快照,上传软件包
2.卸载冲突包
yum -y remove mariadb*
3.下载安装
yum -y install gcc gcc-c++ ncurses-devel openssl openssl-devel
4.MySQL 5.7 源码安装需要 cmake 编译安装,所以先下载最新稳定版本的 cmake 包并安装。官方下载网站:https://cmake.org/download/
tar zxf cmake-3.16.2.tar.gz
cd cmake-3.16.2
./configure
gmake && gmake install
5.MySQL5.7 需要 Boost 库,所以也需要下载安装Boost 官 方 下 载 网 址是 :
http://sourceforge.net/projects/boost/files/boost/
cd
tar zxf boost_1_59_0.tar.gz
mv boost_1_59_0/ /usr/local/boost
2.源代码编译安装
1.创建运行用户
useradd -M -s /sbin/nologin mysql
2.解包,配置,编译安装
tar zxf mysql-5.7.28.tar.gz -C /usr/src
cd /usr/src/mysql-5.7.28
# -DCMAKE_INSTALL_PREFIX:指定将 MySQL 数据库程序安装到某目录下
# -DSYSCONFDIR:指定初始化配置文件目录
# -DDEFAULT_CHARSET:指定默认使用的字符集编码,如 utf8
# -DDEFAULT_COLLATION:指定默认使用的字符集校对规则,utf8_general_ci 是适 用于 UTF-8 字符集的通用规则
# -DWITH_EXTRA_CHARSETS:指定额外支持的其他字符集编码
# -DWITH_BOOST:指定 boost 库的位置,MySQL5.7 版本编译安装时必须添加这个参 数
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_BOOST=/usr/local/boost
make
make install
3.调整
增加配置文件
vi /etc/my.cnf
[client]
socket=/usr/local/mysql/data/mysql.sock
[mysqld]
socket=/usr/local/mysql/data/mysql.sock
#绑定监听地址 0.0.0.0
bind-address = 0.0.0.0
# 跳过域名解析,如果mysql服务器设置了dns服务器,并且客户端ip在dns上并没有相应的hostname,那么这个过程很慢,导致连接等待
skip-name-resolve
#设置 3306 端口
port = 3306
# 设置 mysql 的安装目录
basedir=/usr/local/mysql
# 设置 mysql 数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=2048
# 服务端使用的字符集默认为 utf8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 表名存储在磁盘是小写的,但是比较的时候是不区分大小写
lower_case_table_names=1
# 接收数据包的大小
max_allowed_packet=16M
初始化
# --basedir参数指定了安装 MySQL 的安装路径
# --datadir指定MySQL的数据文件的存放目录
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
会在最后生成一串随机字符串 为数据库密码
方便管理,增减环境变量的管理
echo 'export PATH=$PATH:/usr/local/mysql/bin'>> /etc/profile
刷新配置
source /etc/profile
4.添加系统服务(方便systemctl管理)
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
5.启动服务
systemctl start mysql
systemctl enable mysql
MySQL的默认端口号 : tcp 3306端口
二进制安装
1.基础环境准备
1.安装一些基础软件包工具
yum -y install gcc vim wget net-tools lrzsz
2.安装 MySQL 依赖的软件包
yum -y install libaio
3.创建运行 MySQL 程序的用户
useradd -M -s /sbin/nologin mysql
4.关闭 SELinux 和防火墙
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0
systemctl disable firewalld
systemctl stop firewalld
2.二进制安装
tar zxf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.28-linux-glibc2.12-x86_64 /usr/local/mysql
mkdir /usr/local/mysql/data
chown -R mysql.mysql /usr/local/mysql/data
cd /usr/local/mysql/bin
./mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
3.设置配置文件
vim /etc/my.cnf
[client]
socket=/usr/local/mysql/data/mysql.sock
[mysqld]
socket=/usr/local/mysql/data/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
port = 3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
max_connections=2048
character-set-server=utf8
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
4.配置环境变量
echo "export PATH=\$PATH:/usr/local/mysql/bin" >> /etc/profile
5.刷新环境配置
. /etc/profile
6.配置systemctl管理启动
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
vim /lib/systemd/system/mysqld.service
[Unit]
Description=mysqld
After=network.target
[Service]
Type=forking
ExecStart=/etc/rc.d/init.d/mysqld start
ExecReload=/etc/rc.d/init.d/mysqld restart
ExecStop=/etc/rc.d/init.d/mysqld stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl start mysqld
systemctl enable mysqld
netstat -tunlp|grep 3306
体验MySQL
登录MySQL
mysql -u root -p
输入生成的数据库密码
设置方便管理的密码
set password =password('123456');