首页 > 数据库技术 > 详细

第一章·MySQL介绍及安装

时间:2019-06-05 20:19:35      阅读:97      评论:0      收藏:0      [点我收藏+]

一.DBA工作内容及课程体系

技术分享图片

二.MySQL课程体系介绍

技术分享图片

三.DBA的职业素养

技术分享图片

四.MySQL简介及安装

4.1 什么是数据?

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

数据的定义: 数据是指对客观事件进行记录并可以鉴别的符号,是对客观事物的性质、状态以及相互关系等进行记载的物理符号或这些物理符号的组合。它是可识别的、抽象的符号。*

4.2 什么是数据库管理系统

DBMS(database management system)
?技术分享图片

4.3 数据库管理系统种类

4.3.1 RDBMS

技术分享图片

以多张二维表的方式来存储,又给多张表建立了一定的关系(关系型数据库)

4.3.2 NoSQL

左边rdbms右边nosql 很多以json格式进行存储数据的(mogodb)
技术分享图片

4.3.3 RDMS与NoSQL对比

功能性能对比:
技术分享图片

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

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

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

  • 1.不是否定关系型数据库,而是做关系型数据库的补充。
  • 2.想做老大,先学会做老二。

时代特点对比:

    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了

4.3.4 NoSQL特性总览

    1. 不是否定关系型数据库,而是做关系型数据库的补充,现在也有部分替代的趋势mongodb。
    1. 关注高性能,高并发,灵活性,忽略和上述无关的功能。
    1. 现在也在提升安全性和使用功能。
    1. 典型产品:redis(持久化缓存,两个半天)、MongoDB(最接近关系型数据库的NoSQL)、memcached。
    1. 管理不适用SQL管理,而是用一些特殊的API或数据接口。

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

  • 1.键值(KV)存储:memcached、redis
  • 2.列存储(column-oriented):HBASE(新浪、360)Cassandra(200台服务器集群)
  • 3.文档数据库(document-oriented):MongoDB(最接近关系型数据库的NoSQL)
  • 4.图形存储(Graph):Neo4j

数据库排行点击查看排行网站

4.3.6 数据库产品介绍

Oracle公司产品介绍

大版本 经典版本号
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

Oracle的市场应用

  • 1.市场份额第一,趋势递减
  • 2.市场空间传统企业
  • 3.传统企业也在互联网化

MySQL数据库版本介绍

- 1.0
- 5.1
- 5.5
- 5.6
- 5.7
- 8.0

MySQL的市场应用

  • 1.中、大型互联网公司
  • 2.市场空间:互联网领域第一
  • 3.趋势明显
  • 4.同源产品:MariaDB、PerconaDB

其他公司产品介绍

    1. 微软:SQLserver
      1.1 微软和sysbase合作开发的产品,后来自己开发,windows平台
      1.2 三、四线小公司,传统行业在用
    1. IBM:DB2
      2.1 市场占有量小
      2.2 目前只有:国有银行(人行,中国银行,工商银行等)、中国移动应用
    1. PostgreSQL
    1. MongoDB
    1. Redis

企业使用数据库情况

    1. 中国银行
    1. 中国工商银行
    1. 江苏银行
    1. 浦发银行
    1. 中国光大银行
      ?技术分享图片
      谁说金融公司不能用MySQL???????

4.4 MySQL发展史

a. 1979年,报表工具Unireg出现。

b. 1985年,以瑞典David Axmark为首,成立了一家公司(AB前身),ISAM引擎出现。

c. 1990年,提供SQL支持。

d. 1999年-2000年,MySQL AB公司成立,并公布源码,开源化。

e. 2000年4月BDB引擎出现,支持事物。

f. 2008年1月16日 MySQL被Sun公司收购。

g. 2009年4月20日Oracle收购Sun公司,MySQL转入Oracle门下。

技术分享图片

4.5 MySQL正在推动世界

技术分享图片

4.6 MySQL简介及产品线

4.6.1 MySQL简介(特点)

    1. 开源
    1. 社区版免费
    1. 简单、使用方便、可靠
    1. 稳定、安全
    1. 社区活跃

4.6.2 MySQL产品线

产品线1:

1) 3.26版本 --- 5.2版本

a. 正宗后代

b. CentOS5、6中默认都是5.1版本

c. CentOS7中默认是MariaDB


2) 5.5 --- 5.7 --- 8.0版本

a. 借鉴社区好的贡献,进一步开发的版本

b. 主流版本:5.5 5.6 5.7

c. 讲课版本:5.6


3) MySQL Cluster 6.0版本 & 更高

a. 类似于Oracle RAC(双主),硬件要求高

b. 一般各大网站没有人用

产品线2:

1) MariaDB
2) PerconaDB 第三方 Xtrabackup PerconaDB

4.7 MySQL安装

4.7.1 MySQL安装方式

rpm、yum安装

  • 安装方便、安装速度快,无法定制

二进制

  • 不需要安装,解压即可使用,不能定制功能

编译安装

  • 可定制,安装慢
  • 四个步骤:
    1 解压(tar)
    2 生成(./configure)cmake
    3 编译(make)
    4 安装(make install)
  • 5.5版本之前:tar ./configure make make install
  • 5.5版本之后:cmake gmake

先编译,然后定制rpm包,制作yum仓库,然后yum安装

  • 简单,速度快,可定制,比较复杂,制作时间极长

企业中选择的安装方式

  • 中小型企业:以上方式都可以,运维偏向编译,dba偏向二进制 运维也偏向二进制
  • 大型企业:可以选择: 先编译然后定制rpm包,制作yum仓库,然后yum安装

4.7.2 安装MySQL

#cmake
#定制功能:存储引擎、字符集、压缩
#定制安装位置、数据存放位置、文件位置(socket)
#克隆一个模板机(使用CentOS6),克隆完做快照
#IP 10.0.0.52 主机名db02

#下载5.6.36包
[root@db02 ~]# wget -q https://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36.tar.gz

#安装epel源
[root@db02 ~]# wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-6.repo

#安装依赖包
[root@db02 ~]# yum install -y ncurses-devel libaio-devel

#安装cmake
[root@db02 ~]# yum install -y cmake

#创建用户
[root@db02 ~]# useradd mysql -s /sbin/nologin -M

#修改hosts
[root@db02 ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.1.52 db02

#解压MySQL源码包
[root@db02 tools]# tar xf mysql-5.6.36.tar.gz

#进入MySQL目录
[root@db02 tools]# cd mysql-5.6.36

#生成
[root@db02 mysql-5.6.36]#

#程序存放位置
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.38 
#数据存放位置
-DMYSQL_DATADIR=/application/mysql-5.6.38/data 
#socket文件存放位置
-DMYSQL_UNIX_ADDR=/application/mysql-5.6.38/tmp/mysql.sock 
#使用utf8字符集
-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 
#启用zlib库支持(zib、gzib相关)
-DWITH_ZLIB=bundled 
#启用SSL库支持(安全套接层)
-DWITH_SSL=bundled 
#启用本地数据导入支持
-DENABLED_LOCAL_INFILE=1 
#编译嵌入式服务器支持
-DWITH_EMBEDDED_SERVER=1 
# mysql5.6支持了google的c++mock框架了,允许下载,否则会安装报错。
-DENABLE_DOWNLOADS=1 
#禁用debug(默认为禁用)
-DWITH_DEBUG=0

#编译
[root@db02 mysql-5.6.36]# make

#安装
[root@db02 mysql-5.6.36]# make install

#做软链接
[root@db02 mysql-5.6.36]# ln -s /application/mysql-5.6.38/ /application/mysql

#拷贝配置文件
[root@db02 mysql-5.6.36]# cp support-files/my*.cnf /etc/my.cnf

#拷贝mysql启动脚本
[root@db02 mysql-5.6.36]# cp support-files/mysql.server /etc/init.d/mysqld

#进入MySQL初始化脚本目录
[root@db02 mysql-5.6.36]# cd /application/mysql/scripts/

#初始化MySQL
[root@db02 mysql-5.6.36]# ./mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data --user=mysql

#授权
[root@db02 mysql-5.6.36]# chown -R mysql.mysql /application/mysql/

#给启动脚本授权700
[root@db02 mysql-5.6.36]# chmod 700 /etc/init.d/mysqld

#systemd管理mysql启动
[root@db02 mysql-5.6.36]# vim /usr/lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=https://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000

#设置开机自启动C6
[root@db02 mysql-5.6.36]# chkconfig mysqld on

#设置开机自启动C7
[root@db02 mysql-5.6.36]# systemctl enable mysqld

#启动MySQLC6
[root@db02 mysql-5.6.36]# /etc/init.d/mysqld start

#启动MySQLC7
[root@db02 mysql-5.6.36]# systemctl start mysqld

#创建tmp目录(5.6.36版本不会自动创建tmp目录)
[root@db02 mysql-5.6.36]# mkdir /application/mysql-5.6.36/tmp

#添加环境变量
[root@db02 ~]# echo 'PATH=/application/mysql/bin/:$PATH' >>/etc/profile

#个人推荐
[root@db02 ~]# echo 'PATH=/application/mysql/bin/:$PATH' >/etc/profile.d/mysql.sh
[root@db02 ~]# source /etc/profile.d/mysql.sh

#设置MySQL密码
[root@db02 ~]# mysqladmin -uroot password 'oldboy123'

#MySQL登陆
[root@db02 ~]# mysql -uuser -ppassword -Ssocket -hhost

#MySQL基本操作及基本优化
#查看库
mysql> show databases;

#删库
mysql> drop database test;

#使用库
mysql> use mysql

#查看表
mysql> show tables;

#查看当前所在库
mysql> select database();

#查看mysql用户
mysql> select user,host from user;
mysql> select user,host,password from user;

#删除用户
mysql> select user,host from user;
mysql> drop user ''@'db02';
mysql> drop user root@db02;
mysql> drop user root@'::1';
mysql> drop user root@'127.0.0.1';

第一章·MySQL介绍及安装

原文:https://www.cnblogs.com/Forever-x/p/10981480.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!