mysql数据库的安装

阅读目录(Content)

一.DBA工作内容及课程体系
二.MySQL课程体系介绍
三.DBA的职业素养
四.MySQL简介及安装
4.1 什么是数据?
4.2 什么是数据库管理系统
4.3 数据库管理系统种类
4.3.1 RDBMS
4.3.2 NoSQL
4.3.3 RDMS与NoSQL对比
4.3.4 NoSQL特性总览
4.3.5 NoSQL的分类、特点、典型产品
4.3.6 数据库产品介绍
4.4 MySQL发展史
4.5 MySQL正在推动世界
4.6 MySQL简介及产品线
4.6.1 MySQL简介(特点)
4.6.2 MySQL产品线
4.7 MySQL安装
4.7.1 MySQL安装方式
4.7.2 编译安装MySQL
4.7.3 二进制安装MySQL
回到顶部(go to top)
一.DBA工作内容及课程体系

回到顶部(go to top)
二.MySQL课程体系介绍

回到顶部(go to top)
三.DBA的职业素养

回到顶部(go to top)
四.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.想做老大,先学会做老二。
时代特点对比:

web1.0时代
1.1 企业提供内容,用户浏览,所以关系型数据库够用,并发并不高,所以不需要nosql。

web2.0时代
2.1 核心是企业提供平台,用户参与提供内容,这个时代关系型数据库无法满足需求了。

2003NoSQL出现
3.1 memcache的诞生,关注的点是性能,但是针对安全性能关注比较低,随着安全性能需求不断提升,所以有了redis。

redis的特点
4.1 依然高性能高并发
4.2 数据持久化功能
4.3 支持多数据类型,主从复制和集群
4.4 管理不再使用SQL了

4.3.4 NoSQL特性总览
不是否定关系型数据库,而是做关系型数据库的补充,现在也有部分替代的趋势mongodb。
关注高性能,高并发,灵活性,忽略和上述无关的功能。
现在也在提升安全性和使用功能。
典型产品:redis(持久化缓存,两个半天)、MongoDB(最接近关系型数据库的NoSQL)、memcached。
管理不适用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
其他公司产品介绍

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

中国银行
中国工商银行
江苏银行
浦发银行
中国光大银行

谁说金融公司不能用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简介(特点)
开源
社区版免费
简单、使用方便、可靠
稳定、安全
社区活跃
4.6.2 MySQL产品线
产品线1:

  1. 3.26版本 --- 5.2版本

a. 正宗后代

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

c. CentOS7中默认是MariaDB

  1. 5.5 --- 5.7 --- 8.0版本

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

b. 主流版本:5.5 5.6 5.7

c. 讲课版本:5.6

  1. 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.51 主机名db01

下载源

[root@db01 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@db01 ~]# wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo

安装依赖

[root@db01 ~]# yum install -y ncurses-devel libaio-devel autoconf cmake gcc gcc-c++ glibc

下载源码包和解压

[root@db01 ~]# wget -q https://downloads.mysql.com/archives/get/file/mysql-5.6.40.tar.gz
[root@db01 ~]# tar xf mysql-5.6.40.tar.gz

进入源码目录

[root@db01 ~]# cd mysql-5.6.40/

创建目录

[root@db01 mysql-5.6.40]# mkdir /application

生成编译文件

[root@db01 mysql-5.6.40]# cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.40
-DMYSQL_DATADIR=/application/mysql-5.6.40/data
-DMYSQL_UNIX_ADDR=/application/mysql-5.6.40/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

编译

[root@db01 mysql-5.6.40]# make

安装

[root@db01 mysql-5.6.40]# make install

创建 mysql 用户

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

做软连接

[root@db01 mysql-5.6.40]# ln -s /application/mysql-5.6.40/ /application/mysql

进入其他文件目录

[root@db01 mysql-5.6.40]# cd /application/mysql/support-files/

拷贝 mysql 的配置文件

[root@db01 support-files]# cp my-default.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y

拷贝启动脚本

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

进入初始化目录

[root@db01 support-files]# cd /application/mysql/scripts/

初始化 mysql

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

创建socket文件的存放目录tmp

[root@db01 scripts]# mkdir /application/mysql-5.6.40/tmp

授权:socket文件目录没有权限

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

添加环境变量(没有mysql命令,需要添加环境变量)

[root@db01 scripts]# cat /etc/profile.d/mysql.sh
export PATH="/application/mysql/bin:$PATH"
[root@db01 scripts]# source /etc/profile

启动 mysql

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

  1. 用脚本的systemctl启动,和开机自启动
    [root@db01 scripts]# cat /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=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
    LimitNOFILE = 5000

先停掉服务

[root@db01 ~]# /etc/init.d/mysqld stop
Shutting down MySQL.. SUCCESS!

启动服务

[root@db01 ~]# systemctl start mysqld

开机自启动

[root@db01 ~]# systemctl enable mysqld

4.给数据库设置密码
[root@db01 ~]# mysqladmin -uroot -p password "123"
Enter password: ---此处按回车即可,因为安装完MySQL密码为空
Warning: Using a password on the command line interface can be insecure.

登录数据库

[root@db01 ~]# mysql -uroot -p123

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';
4.7.3 二进制安装MySQL
下载:二进制包
[root@db01 ~]# wget https://downloads.mysql.com/archives/get/file/mysql-5.6.42-linux-glibc2.12-x86_64.tar.gz

1.解压
[root@db01 ~]# tar xf mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz

2.移动安装目录
[root@db01 ~]# mv mysql-5.6.40-linux-glibc2.12-x86_64 /usr/local/mysql-5.6.40

3.软链接
[root@db01 ~]# ln -s /usr/local/mysql-5.6.40 /usr/local/mysql

[root@db01 ~]# ll /usr/local/
lrwxrwxrwx. 1 root root 23 7月 9 01:22 mysql -> /usr/local/mysql-5.6.40
drwxr-xr-x. 13 root root 191 7月 9 01:19 mysql-5.6.40

4.创建mysql用户
[root@db01 ~]# useradd mysql -r

5.进入配置文件和脚本目录
[root@db01 mysql]# cd /usr/local/mysql/support-files

6.拷贝配置文件
[root@db01 support-files]# cp my-default.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"? y

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

8.进入初始化目录
[root@db01 scripts]# cd /usr/local/mysql/scripts

9.执行初始化
[root@db01 scripts]# ./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

--user:指定用户
--basedir:指定mysql的安装目录
--datadir:指定mysql存放数据的目录(库,表,表空间,表结构)

正经的mysql:
information_schema
performance_schema
mysql
test

初始化成功:
1.两个OK
2.查看data目录是否有数据库文件
[root@db01 scripts]# ll /usr/local/mysql/data/
总用量 110600
-rw-rw----. 1 mysql mysql 12582912 7月 9 01:34 ibdata1
-rw-rw----. 1 mysql mysql 50331648 7月 9 01:34 ib_logfile0
-rw-rw----. 1 mysql mysql 50331648 7月 9 01:34 ib_logfile1
drwx------. 2 mysql mysql 4096 7月 9 01:34 mysql
drwx------. 2 mysql mysql 4096 7月 9 01:34 performance_schema
drwxr-xr-x. 2 mysql mysql 20 7月 9 01:19 test

10.启动MySQL
如果是自定义二进制安装:需要修改脚本目录
[root@db03 scripts]# sed -i 's#/usr/local#/application#g' /etc/init.d/mysqld /application/mysql/bin/mysqld_safe

[root@db01 scripts]# /etc/init.d/mysqld start
提示:日志记录的位置.
Starting MySQL.Logging to '/usr/local/mysql/data/db01.err'.
SUCCESS!

11.添加环境变量
[root@db01 scripts]# vim /etc/profile.d/mysql.sh
export PATH="/usr/local/mysql/bin:$PATH"

12.加载环境变量
[root@db01 scripts]# source /etc/profile

13.检查MySQL进程
[root@db01 scripts]# ps -ef|grep [m]ysql

14.检查MySQL端口
[root@db01 scripts]# netstat -lntup|grep 3306

15.CentOS7管理方式:

编辑mysqld启动脚本
[root@db01 scripts]# 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

posted @ 2019-12-18 19:30  老王教你学Linux  阅读(119)  评论(0编辑  收藏  举报