MySQL简介安装-001

1.官方定义的MySQL-DBA工作职责
开发DBA
运维DBA
初级运维:安装 搭建
中级运维:MySQL数据库管理员,用户权限,索引管理,存储引擎,备份恢复,主从,故障处理
高级运维:性能优化,集群高可用

linux云计算运维:

	MySQL简介及安装
	MySQL体系结构和基础管理
	MySQL SQL语句
	MySQL基础优化-索引及执行计划
	MySQL存储引擎
	MySQL日志管理
	MySQL备份恢复
	MySQL主从复制
	MySQL主从复制架构演变-高可用及读写分离
	MySQL主从复制架构演变-分布式架构
	MySQL整体优化
	NoSQL-Redis缓存技术
	NoSQL-MongoDB分布式数据库技术

1.业务是什么?

产品的功能 用户的行为(热功能)
MySQL版本企业选择
GA版:稳定的发布版本
E:企业版,收费版本,SR,偏传统行业,有钱的
c:社区版,开源版本,互联网中90%企业选择
企业版本选择
一般新上环境,会选择GA6-12月版本

企业主流版本
		5.6版本
			5.6.34 5.6.36 5.6.38比较普及
		5.7版本
			5.7.20(2017年9月13号上线) 5.7.22 5.7.24
	下载选择
		源码包:C++的源码,进行二次开发
		二进制包:解压即可使用
		rpm包:rpm -ivh 安装即可使用
		官方网站:https://www.mysql.com/
2.安装

解压二进制软件包
修改/etc/profile设置环境变量
export PATH=/data/mysql/bin:$PATH
使用mysql -V 显示版本号检查

mysql  Ver 14.14 Distrib 5.7.20, for linux-glibc2.12 (x86_64) using  EditLine 

wrapper
清理历史软件包
rpm -qa |grep “mariadb”
yum remove
创建用户
useradd mysql
下载依赖
yum install -y libaio-devel
初始化库
执行:/data/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/data/mysql --datadir=/data/mysql/data

[root@db01 bin]# /data/mysql/bin/mysqld --initialize-insecure  --user=mysql --basedir=/data/mysql --datadir=/data/mysql/data
2019-04-03T03:31:36.286097Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-04-03T03:31:39.742767Z 0 [Warning] InnoDB: New log files created, LSN=45790
2019-04-03T03:31:40.361162Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2019-04-03T03:31:40.507728Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: fe99ae3c-55c0-11e9-abcc-000c293e875b.
2019-04-03T03:31:40.509695Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2019-04-03T03:31:40.512733Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
[root@db01 bin]# /data/mysql/bin/mysqld --initialize-insecure  --user=mysql --basedir=/data/mysql --datadir=/data/mysql/data

修改权限
chown -R mysql. /data/

准备启动脚本和基础配置文件

cp support-files/mysql.server /etc/init.d/mysqld

[root@db01 mysql]# /etc/init.d/mysqld 
Usage: mysqld  {start|stop|restart|reload|force-reload|status}  [ MySQL server options ]
[root@db01 mysql]# /etc/init.d/mysqld start
Starting MySQL.Logging to '/data/mysql/data/db01.err'.
SUCCESS! 

vim /etc/my.cnf
[mysqld]
user=mysql
basedir=/data/mysql
datadir=/data/mysql/data
socket=/tmp/mysql.sock
server_id=6
[mysql]
socket=/tmp/mysql.sock

准备systemd管理的脚本
	vim /etc/systemd/system/mysqld.service
	[Unit]
	Description=MySQL Server
	Documentation=man:mysqld(8)
	Documentation=http://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=/data/mysql/bin/mysqld --defaults-file=/etc/my.cnf
	LimitNOFILE = 5000
	停止重启
		/etc/init.d/mysqld stop
		
		systemctl start mysqld
	登录数据库

数据库MySQL连接方式

TCP/IP方式(远程、本地):

mysql -uroot -poldboy123 -h 10.0.0.51 -P3306

Socket方式(仅本地):

mysql -uroot -poldboy123 -S /tmp/mysql.sock

1.2 实例介绍

实例=mysqld后台守护进程+Master Thread +干活的Thread+预分配的内存

公司=老板+经理+员工+办公室

1.3 mysqld程序运行原理
1.3.1 mysqld程序结构

mysql出现故障或性能问题80%以上是人为的。

                                                                    ---oldguo

1.3.2 一条SQL语句的执行过程

1.3.2.1 连接层

(1)提供连接协议:TCP/IP 、SOCKET

(2)提供验证:用户、密码,IP,SOCKET

(3)提供专用连接线程:接收用户SQL,返回结果

通过以下语句可以查看到连接线程基本情况

mysql> show processlist;

1.3.2.2 SQL层 (重点)

(1)接收上层传送的SQL语句

(2)语法验证模块:验证语句语法

(3)语义检查:判断SQL语句的类型

DDL :数据定义语言

DCL :数据控制语言

DML :数据操作语言

DQL:数据查询语言

(4)权限检查:用户对库表有没有权限

(5)解析器:进行SQL的预处理,产生执行计划

(6)优化器:根据解析器得出的多种执行计划,进行判断,选择最优的执行计划

    代价模型:资源(CPU IO MEM)的耗损评估性能好坏

(7)执行器:根据最优执行计划,执行SQL语句,产生执行结果

执行结果:在磁盘的xxxx位置上

(8)提供查询缓存(默认是没开启的),会使用redis tair替代查询缓存功能

(9)提供日志记录(日志管理章节):binlog,默认是没开启的。

1.3.2.3 存储引擎层(类似于Linux中的文件系统)

负责根据SQL层执行的结果,从磁盘上拿数据。将16进制的磁盘数据,交由SQL架构化成表,由连接层的专用线程返回给用户。

1.4 逻辑结构

1.4.1 库:库名,库权限,库数据类型等

1.4.2 表(二维表)

列:字段

行:记录

MySQL为了将来数据的准确、规范、有意义,对于传统认知的二维表添加了更多的功能

表属性:权限,存储引擎,字符集

列属性:数据类型、约束、其他属性(默认值,自增长,注释)

1.5 物理存储结构引入
1.5.1 库的物理存储结构
用文件系统的目录来存储

1.5.2 表的物理存储结构

MyISAM(一种引擎)的表:

user.frm:列的相关信息

user.MYD:数据行

user.MYI:索引信息

==========================

InnoDB(默认的存储引擎)的表:

time_zone.frm:存储列相关信息

time_zone.ibd:数据行+索引

1.5.3 表的段、区、页(16k)(了解)

页:最小的存储单元

区:1个或多个连续的页

段:一个表就是一个段,包含一个或多个区

==================================================

2. 基础管理

2.1 用户、权限管理
2.1.1 用户
作用:

登录,管理数据库对象

定义:

用户@‘白名单’

白名单?

允许哪些IP能够登录数据库

支持的方式?

oldboy@’%’ :所有地址

oldboy@‘10.0.0.%’ :10.0.0.0/24 网段的地址

oldboy@‘localhost’ :本地主机

oldboy@‘10.0.0.5%’ :10.0.0.50~10.0.0.59

oldboy@‘10.0.0.0/255.255.254.0’ :子网掩码不是24位的

管理操作:

增:

mysql> create user oldboy@‘10.0.0.%’ identified by ‘123’;

查:

mysql> select user ,host ,authentication_string from mysql.user

改:

mysql> alter user oldboy@‘10.0.0.%’ identified by ‘456’;

删:

mysql> drop user oldboy@‘10.0.0.%’;

2.1.2 权限

介绍

SELECT,INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE

ALL : 以上所有权限,一般是普通管理员拥有的

with grant option:超级管理员才具备的,给别的用户授权的功能

应用用户:SELECT,INSERT, UPDATE, DELETE

权限管理操作:

grant 权限 on 对象 to 用户 identified by ‘密码’;

需求例子:windows机器的navicat登录到linux中的MySQL,管理员用户。

grant all on 对象 to 用户 identified by ‘密码’;

对象:

库名liulaoliu
*.* ---->针对管理员 授权所有库所有表

liulaoliu.* ----->应用用户 授权指定库下所有表

liulaoliu.t1 ---->指定库下指定的表

mysql> grant all on . to root@‘10.0.0.%’ identified by ‘123’;

需求:创建一个应用用户app用户,能从windows上登录mysql,并能操作app库。

mysql> grant select ,update,insert,delete on app.* to app@‘10.0.0.%’ identified by ‘123’;

开发人员用户授权流程:

1.权限

2.对谁操作

3.你从哪来

4.密码要求

提示:8.0在grant命令添加新特性

建用户和授权分开了

grant 不再支持自动创建用户了,不支持改密码

授权之前,必须要提前创建用户。

查看授权:

mysql> show grants for app@‘10.0.0.%’;

回收权限:

revoke delete on app.* from app@‘10.0.0.%’;

例的应用

猜你喜欢

转载自blog.csdn.net/weixin_44455125/article/details/89003550