0%

数据库源码和二进制安装

mysql-day01

数据库管理员:

1.用户管理

  • 用户名
  • 密码

2.权限管理

1
grant all on *.* to root@'%' identified by '123';

3.数据管理

  • 备份\恢复

4.集群管理

  • 主从复制
    • 异步复制
    • 半同步复制
    • 延时复制
    • 过滤复制
  • 读写分离
    • mycat
    • atlas
    • mysql-proxy
  • 高可用
    • MMM
    • MHA
    • 双主+keepalived
    • MGR
  • 监控
    • shell
    • zabbix
    • percona

MySQL安装选择

mysql官网

1572398449570

1572398466007

1572398490014

1572398508063

MySQL版本选择的潜规则:

MySQL5.6版本:GA 6-12个月 ,小版本是偶数版本

1572398840189

MySQL5.7版本:GA 6-12个月 ,小版本是偶数版本,选择MySQL5.7.17以上版本 (MGR)

源码:mysql-5.6.44.tar.gz

1572399210091

二进制:mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz

1572399269196

什么是数据?

数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的的原始素材。
数据可以是连续的值,比如声音、图像,称为模拟数据。也可以是离散的,如符号、文字,称为数字数据。
在计算机系统中,数据以二进制信息单元0,1的形式表示。

为什么不把数据放到 word这些工具里面?

1.安全性

2.集群

什么是数据库管理系统

DBMS(database management system)

1.管理数据

2.存储数据

数据库的种类

1.关系型数据库(RDBMS)

典型产品:MySQL,Oracle,MSSQL(SQLserver)t-sql

img

表与表之间是由关联的(连表查询)

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

img

不使用SQL语句

json(key:value)

MongoDB、Redis、elasticsearch

关系型数据库非关系型数据库功能对比

img

关系型和非关系型特点对比:

关系型数据库(RDBMS)的特点:

  • 1.二维表
  • 2.典型产品Oracle传统企业,MySQL互联网企业
  • 3.数据存取是通过SQL(Structured Query Language结构化查询语言)
  • 4.最大特点数据安全性方面强(ACID)

非关系型数据库(NoSQL:Not only SQL)的特点:

  • 1.不是否定关系型数据库,而是做关系型数据库的补充。

时代特点对比

    1. web1.0时代
    • 1.1 企业提供内容,用户浏览,所以关系型数据库够用,并发并不高,所以不需要nosql。
    1. web2.0时代
    • 2.1 核心是企业提供平台,用户参与提供内容,这个时代关系型数据库无法满足需求了。
    1. 2003NoSQL出现
    • 3.1 memcache的诞生,关注的点是性能,但是针对安全性能关注比较低,随着安全性能需求不断提升,所以有了redis。
    1. redis的特点
    • 4.1 依然高性能高并发
    • 4.2 数据持久化功能
    • 4.3 支持多数据类型,主从复制和集群
    • 4.4 管理不再使用SQL了

NoSQL的分类、特点、典型产品

  • 1.键值(KV)存储:memcached、redis
  • 2.列存储(column-oriented):HBASE(新浪、360)Cassandra(200台服务器集群)
  • 3.文档数据库(document-oriented):MongoDB(最接近关系型数据库的NoSQL)
  • 4.图形存储(Graph):Neo4j
大版本 经典版本号
7 7.3.4
8i(internet) 8.1.7
9i 9.2.0.8
10g(grid) 10.2.0.4
11g 11.2.0.3、11.2.0.4
12c(cloud) None
18c None

源码安装MySQL

  • 解压
  • 生成
  • 编译
  • 安装

0.安装依赖包

1
[root@db01 mysql-5.6.44]# yum install -y cmake ncurses-devel autoconf

1.下载安装包

1
wget https://downloads.mysql.com/archives/get/file/mysql-5.6.44.tar.gz

2.解压

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
[root@db01 ~]# tar xf mysql-5.6.44.tar.gz
[root@db01 ~]# cd mysql-5.6.44
[root@db01 mysql-5.6.44]# ll
total 252
drwxr-xr-x 2 7161 31415 4096 Mar 15 2019 BUILD
drwxr-xr-x 2 7161 31415 4096 Mar 15 2019 client
drwxr-xr-x 4 7161 31415 4096 Mar 15 2019 cmake
-rw-r--r-- 1 7161 31415 23415 Mar 15 2019 CMakeLists.txt
drwxr-xr-x 3 7161 31415 21 Mar 15 2019 cmd-line-utils
-rw-r--r-- 1 7161 31415 19838 Mar 15 2019 config.h.cmake
-rw-r--r-- 1 7161 31415 40929 Mar 15 2019 configure.cmake
-rw-r--r-- 1 7161 31415 17987 Mar 15 2019 COPYING
drwxr-xr-x 2 7161 31415 312 Mar 15 2019 dbug
drwxr-xr-x 2 7161 31415 80 Mar 15 2019 Docs
-rw-r--r-- 1 7161 31415 65958 Mar 15 2019 Doxyfile-perfschema
drwxr-xr-x 4 7161 31415 229 Mar 15 2019 extra
drwxr-xr-x 4 7161 31415 4096 Mar 15 2019 include
-rw-r--r-- 1 7161 31415 333 Mar 15 2019 INSTALL
drwxr-xr-x 3 7161 31415 224 Mar 15 2019 libmysql
drwxr-xr-x 3 7161 31415 204 Mar 15 2019 libmysqld
drwxr-xr-x 2 7161 31415 221 Mar 15 2019 libservices
drwxr-xr-x 2 7161 31415 4096 Mar 15 2019 man
drwxr-xr-x 10 7161 31415 305 Mar 15 2019 mysql-test
drwxr-xr-x 2 7161 31415 4096 Mar 15 2019 mysys
drwxr-xr-x 2 7161 31415 300 Mar 15 2019 mysys_ssl
drwxr-xr-x 9 7161 31415 113 Mar 15 2019 packaging
drwxr-xr-x 11 7161 31415 187 Mar 15 2019 plugin
-rw-r--r-- 1 7161 31415 2496 Mar 15 2019 README
drwxr-xr-x 2 7161 31415 4096 Mar 15 2019 regex
drwxr-xr-x 2 7161 31415 4096 Mar 15 2019 scripts
drwxr-xr-x 2 7161 31415 6 Mar 15 2019 source_downloads
drwxr-xr-x 4 7161 31415 12288 Mar 15 2019 sql
drwxr-xr-x 5 7161 31415 4096 Mar 15 2019 sql-bench
drwxr-xr-x 2 7161 31415 155 Mar 15 2019 sql-common
drwxr-xr-x 13 7161 31415 169 Mar 15 2019 storage
drwxr-xr-x 2 7161 31415 4096 Mar 15 2019 strings
drwxr-xr-x 5 7161 31415 4096 Mar 15 2019 support-files
drwxr-xr-x 2 7161 31415 4096 Mar 15 2019 tests
drwxr-xr-x 5 7161 31415 70 Mar 15 2019 unittest
-rw-r--r-- 1 7161 31415 88 Mar 15 2019 VERSION
drwxr-xr-x 3 7161 31415 298 Mar 15 2019 vio
drwxr-xr-x 2 7161 31415 32 Mar 15 2019 win
drwxr-xr-x 11 7161 31415 4096 Mar 15 2019 zlib

3.创建需要安装的路径

1
[root@db01 mysql-5.6.44]# mkdir /application

4.生成 ./configure –prefix=/usr/local/nginx-1.16.0 cmake 、gmake

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.44 \
-DMYSQL_DATADIR=/application/mysql-5.6.44/data \
-DMYSQL_UNIX_ADDR=/application/mysql-5.6.44/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0

5.编译

1
[root@db01 mysql-5.6.44]# make

6.安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@db01 mysql-5.6.44]# make install
[root@db01 mysql-5.6.44]# ll /application/mysql-5.6.44/
total 44
drwxr-xr-x 2 root root 4096 Oct 30 16:18 bin
-rw-r--r-- 1 root root 17987 Mar 15 2019 COPYING
drwxr-xr-x 3 root root 18 Oct 30 16:17 data
drwxr-xr-x 2 root root 55 Oct 30 16:17 docs
drwxr-xr-x 3 root root 4096 Oct 30 16:17 include
drwxr-xr-x 3 root root 291 Oct 30 16:17 lib
drwxr-xr-x 4 root root 30 Oct 30 16:17 man
drwxr-xr-x 10 root root 4096 Oct 30 16:18 mysql-test
-rw-r--r-- 1 root root 2496 Mar 15 2019 README
drwxr-xr-x 2 root root 30 Oct 30 16:18 scripts
drwxr-xr-x 28 root root 4096 Oct 30 16:18 share
drwxr-xr-x 4 root root 4096 Oct 30 16:18 sql-bench
drwxr-xr-x 2 root root 136 Oct 30 16:18 support-files

[root@db01 mysql-5.6.44]# ll /application/mysql-5.6.44/data/
total 0
drwxr-xr-x 2 root root 20 Oct 30 16:17 test

—————————————————华丽的分割线—————————————————

7.创建用户

1
[root@db01 mysql-5.6.44]# useradd mysql -s /sbin/nologin -M

8.拷贝启动脚本

1
2
[root@db01 support-files]# cd /application/mysql-5.6.44/support-files/
[root@db01 support-files]# cp mysql.server /etc/init.d/mysqld

9.拷贝配置文件

1
2
[root@db01 support-files]# cp my-default.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y(覆盖)

10.创建socket文件存放目录

1
mkdir /application/mysql-5.6.44/tmp

11.软链接

1
[root@db01 scripts]# ln -s /application/mysql-5.6.44 /application/mysql

12.给MySQL目录授权

1
[root@db01 scripts]# chown -R mysql.mysql /application/*

13.初始化数据库

1
2
[root@db01 scripts]# cd /application/mysql-5.6.44/scripts
[root@db01 scripts]# ./mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data

1572425444772

14.启动MySQL

1
2
[root@db01 scripts]# /etc/init.d/mysqld start
Starting MySQL. SUCCESS!

15.添加环境变量

1
2
3
4
5
6
7
8
9
10
11
[root@db01 scripts]# vim /etc/profile.d/mysql.sh
export PATH="/application/mysql/bin:$PATH"
#加载环境变量
[root@db01 scripts]# source /etc/profile
#查看所有的环境变量
[root@db01 scripts]# echo $PATH
/application/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

#检查端口
[root@db01 scripts]# netstat -lntup
tcp6 0 0 :::3306 :::* LISTEN 34209/mysqld

二进制安装MySQL

解压开就能使用,绿色安装

1.下载

1
wget https://downloads.mysql.com/archives/get/file/mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz

2.解压

1
[root@db02 ~]# tar xf mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz

3.创建MySQL用户

1
[root@db02 ~]# useradd mysql -s /sbin/nologin -M

4.创建MySQL安装目录

1
[root@db02 ~]# mkdir /application

5.移动MySQL到安装目录下

1
[root@db02 ~]# mv mysql-5.6.44-linux-glibc2.12-x86_64 /application/mysql-5.6.44

6.做软链接

1
[root@db02 ~]# ln -s /application/mysql-5.6.44 /application/mysql

7.拷贝启动脚本

1
[root@db02 support-files]# cp mysql.server /etc/init.d/mysqld

8.拷贝配置文件

1
2
[root@db02 support-files]# cp my-default.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y(覆盖)

9.初始化

1
[root@db02 scripts]# ./mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data --user=mysql

10.授权MySQL目录

1
[root@db02 scripts]# chown -R mysql.mysql /application/mysql*

11.修改mysql启动脚本和程序

1
[root@db02 scripts]# sed -i 's#/usr/local#/application#g' /etc/init.d/mysqld /application/mysql/bin/mysqld_safe

12.启动

1
[root@db02 scripts]# /etc/init.d/mysqld start

13.添加环境变量

1
2
[root@db02 scripts]# vim /etc/profile.d/mysql.sh
export PATH="/application/mysql/bin:$PATH"