第一章 MySQL 大纲介绍

1、官方定义的MySQL DBA工作内容

(1)运维DBA

初级:各版本、各平台安装搭建、升级

中级:体系结构原理、基础管理(启动关闭、初始化配置文件管理、多实例管理、用户权限管理、基本SQL(增删改查))、日志管理、备份与恢复、主从复制(构建、状态监控)

高级:高可用(MGR、InnoDB Cluster)、高性能(优化)

(2)开发DBA

懂至少一门开发语言 :JAVA、Python

基本SQL语句深入学习(增删改查)、数据库结构设计(建模)

高级SQL:存储过程、函数、触发器、视图、事件

2、老男孩MySQL课程-2019-03月-中级DBA要求(80%以上)

(1)MySQL 5.7 安装部署(二进制)*****

编译自己扩展

(2)MySQL升级步骤扩展 ***

(3)MySQL5.7 体系结构原理 *****

(4)MySQL基础管理 *****

(5)基础SQL语句使用 *****

(6)SQL高级应用 ***

(7)Information_schema获取元数据 ***

(8)索引、执行计划管理(基础优化)*****

(9)存储引擎 *****

(10)日志管理 *****

(11)备份与恢复 ******

(12)主从复制及架构演变 ******

(13)传统的高可用及读写分离(MHA&Atlas)****

(14)传统分布式架构设计与实现-扩展(Mycat--->DBLE,DRDS)**

(15)MySQL 5.7 高可用及分布式架构-扩展(MGR,InnoDB Cluster)***

(16)MySQL优化(安全、性能) ****

(17)MySQL 监控(zabbix、Open-falcon) ****

(18) RDS(阿里云课程) *****

额外要会的: Redis、mongodb

了解: PG 、 Oracle

3、DBA职业素养

3.1、人品

责任-----权利

3.2

3.2.1、严谨

磁带库----->备份软件-----17楼

数据库修改\删除类的命令时 再三考虑,而且要有理论或者实践的支撑

3.2.2 请收起你的好奇心!!!!!

注意规范:

脱库? 华住网(ip root 密码),“脱敏”!!!!!。

学会保护自己!!!

3.3、细心

把最简单的事情做的最漂亮,最专业。

不要怕成功的门很拥挤,因为很多人在半路就已经放弃了.----郭导

3.4、心态

别惹事,出事别怕事。

---------------------------

职业技能有关:

3.5、熟悉操作系统(精通)

3.6、熟悉公司业务

业务?

产品的功能

用户的行为(热功能,热数据)

3.7、熟悉行业

熟悉行业发展趋势、版本

数据库产品类型排名情况

https://db-engines.com/en/ranking

3.8、喜欢数据库

体验很重要

第二章: MySQL 介绍和安装

1、什么是数据?

数据:文字、图片、视频。。。人类认知的数据表现方式

计算机:二进制、16进制的机器语言

基于数据的重要性和复杂性的不同,我们可能有不同的管理方式。

哪些数据是适合存储到数据库的呢?

重要性比较高的

关系较复杂的数据

2、什么是数据库管理系统(DBMS)?

RDBMS: 关系型数据库管理系统

比较适合于,安全级别要求高的数据以及关系较复杂的数据

NoSQL:非关系型数据库管理系统

适合于高性能存取数据,一般是配合RDBMS进行使用的

针对大数据处理分析,分布式架构更加擅长,可独立使用

3、数据库管理系统种类

RDBMS :

MySQL 、Oracle、MSSQL(SQL Server)、PG(PostGresql)

NoSQL:Not Only SQL

键-值(key-value):Redis, memcached

文档(document):Mongodb

4、MySQL简介及产品线

4.1 MySQL行业主流版本:

5.6

5.7

8.0(现在开始研究新特性)

4.2 企业版本选择(MySQL分支版本),笔试题

Oracle:

MySQL官方版

红帽 :

MariaDB

Percona:

PerconaDB

4.3 MySQL版本选择建议要上新环境

1.一般选择官方主流版本:5.6,5.7

2.GA(稳定发布版)

3.6-12月的产品版本

4.4 课程版本:

5.7.20 二进制安装,其他安装方式自己扩展

4.5 如何获取MySQL软件

企业版:Enterprise , 互联网行业一般不选择.

社区版本:选择

源码包:source code .tar.gz

通用二进制

官方网站:mysql.com

--DOWNLOADS--Archives--MySQL Community Server

5.7.20--Linux -Generic --64-bit-Archive--611.4M--download

5.6.38(也可以)

面试题:

你们公司用什么版本数据库? 具体什么小版本号?

5.6.20 5.6.34 5.6.36 5.6.38 5.6.40

5.7.18 5.7.20 5.7.22

5、MySQL二进制安装

5.1.创建软件目录:

[root@db01 ~]# mkdir -p /app/

上传软件到此目录解压

rz -E

tar xvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

5.2. 解压并改名为mysql

[root@db01 app]# mv mysql-5.7.20-linux-glibc2.12-x86_64 mysql

[root@db01 app]# ls -l /app/mysql/

total 36

drwxr-xr-x  2 root root   4096 Mar  4 14:55 bin

-rw-r--r--  1 7161 31415 17987 Sep 13  2017 COPYING

drwxr-xr-x  2 root root     55 Mar  4 14:55 docs

drwxr-xr-x  3 root root   4096 Mar  4 14:55 include

drwxr-xr-x  5 root root    229 Mar  4 14:55 lib

drwxr-xr-x  4 root root     30 Mar  4 14:55 man

-rw-r--r--  1 7161 31415  2478 Sep 13  2017 README

drwxr-xr-x 28 root root   4096 Mar  4 14:55 share

drwxr-xr-x  2 root root     90 Mar  4 14:55 support-files

修改环境变量:

vim /etc/profile

export PATH=/app/mysql/bin:$PATH

[root@db01 bin]# source /etc/profile

5.3. 建立mysql用户和组(如果已有可忽略)

useradd mysql

groupadd  mysql  (已经存在时可忽略)

5.4. 创建相关目录并修改权限

mkdir /data/mysql -p

chown -R mysql.mysql /app/*

chown -R mysql.mysql /data/*

5.5 初始化数据(建库)

方法一:临时加密安全初始化(不推荐)

初始化数据,初始化管理员的临时密码

初始化数据,初始化管理员的临时密码

mysqld --initialize  --user=mysql --basedir=/app/mysql --datadir=/data/mysql

2019-04-18T03:21:53.381108Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).

2019-04-18T03:21:54.583415Z 0 [Warning] InnoDB: New log files created, LSN=45790

2019-04-18T03:21:54.697859Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.

2019-04-18T03:21:54.760821Z 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: 1daa0c57-6189-11e9-bc80-000c294234c8.

2019-04-18T03:21:54.770856Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.

2019-04-18T03:21:54.772016Z 1 [Note] A temporary password is generated for root@localhost: 9LN.fh_Ea#uU

报错原因: Linux系统中缺少libaio-devel 软件包

解决:

yum install -y libaio-devel

报错原因:

在/data/mysql 存在文件

解决:

\rm -rf /data/mysql/*

新特性重要说明:

5.7开始,MySQL加入了全新的 密码的安全机制:

1.初始化完成后,会生成临时密码(显示到屏幕上,并且会往日志中记一份)

2.密码复杂度:长度:超过12位? 复杂度:字符混乱组合

3.密码过期时间180天

方法二 :

初始化数据,初始化管理员的密码为空

\rm -rf  /data/mysql/*

[root@db01 ~]# mysqld --initialize-insecure  --user=mysql --basedir=/app/mysql --datadir=/data/mysql

2019-04-18T03:37:43.146018Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).

2019-04-18T03:37:43.892132Z 0 [Warning] InnoDB: New log files created, LSN=45790

2019-04-18T03:37:43.970412Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.

2019-04-18T03:37:44.029490Z 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: 5378f3b3-618b-11e9-9164-000c294234c8.

2019-04-18T03:37:44.041469Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.

2019-04-18T03:37:44.042348Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.

如果是装载了mariadb,先删除

yum remove mariabd-**

[root@db01 ~]#

[root@db01 ~]# cd /data/mysql/

[root@db01 mysql]# ll

total 110628

-rw-r----- 1 mysql mysql       56 Apr 18 11:37 auto.cnf

-rw-r----- 1 mysql mysql      419 Apr 18 11:37 ib_buffer_pool

-rw-r----- 1 mysql mysql 12582912 Apr 18 11:37 ibdata1

-rw-r----- 1 mysql mysql 50331648 Apr 18 11:37 ib_logfile0

-rw-r----- 1 mysql mysql 50331648 Apr 18 11:37 ib_logfile1

drwxr-x--- 2 mysql mysql     4096 Apr 18 11:37 mysql

drwxr-x--- 2 mysql mysql     8192 Apr 18 11:37 performance_schema

drwxr-x--- 2 mysql mysql     8192 Apr 18 11:37 sys

[root@db01 mysql]#

注释:5.6初始化的区别

/application/mysql/scripts/mysql_install_db  --user=mysql --datadir=/application/mysql/data --basedir=/application/mysql

5.6 书写默认配置文件

vim /etc/my.cnf

[mysqld]

user=mysql

basedir=/app/mysql

datadir=/data/mysql

server_id=6

port=3306

socket=/tmp/mysql.sock

[mysql]

socket=/tmp/mysql.sock

prompt=3306 [\\d]>

5.7 配置启动脚本:

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

[root@db01 support-files]# ./mysql.server start

Starting MySQL.Logging to '/data/mysql/db01.err'. SUCCESS!

mysql  --直接登录mysql

ctrl d 退出

./mysql.server stop

netstat -lnutop|grep 3306--查看端口

ps -ef|grep 3306

ss -lnp|grep 3306

cp mysql.server  /etc/init.d/mysqld

service mysqld restart

5.8 使用systemd管理mysql

vim /etc/systemd/system/mysqld.service

[Unit]

Description=MySQL

ServerDocumentation=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=/app/mysql/bin/mysqld

--defaults-file=/etc/my.cnf

LimitNOFILE = 5000

注意:将原来模式启动mysqld先关闭,然后再用systemd管理。

systemctl  start/stop/restart/status   mysqld

mysql

show databases;

use mysql

6. 安装后的简单管理--改root密码

[root@db01 ~]# mysqladmin -uroot -p password 123  

Enter password: ---初始没有密码,直接回车即可

mysqladmin: [Warning] Using a password on the command line interface can be insecure.

Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

再登录时 mysql -uroot -p123

或mysql -uroot -p

此处输入密码

5.6版本:

select user,password,host from mysql.user;

5.7 中用户基本信息

select user,authentication_string,host from mysql.user;

desc  mysql.user;

小结:

1.版本 (主流版本的GA时间了解一下)

5.6 5.7

5.6.38 5.7.20

20170913

(1) 初始化方式变了

5.6 版本:mysql_install_db

5.7版本:mysqld --initialize-insecure

(2) 用户安全

5.7   12位,180天,4种复杂度

(3)密码字段

authentication_strings,原来是password

select user,host,authentication_strings from mysql.user;

2.安装方法:

二进制、源码、yum

3.建库(初始化数据库)

mysqld --intialize-insecure --user=mysql --basedir=/app/mysql --datadir=/data/mysql

4.简易的配制文件/etc/my.cnf

user basedirdatadir server_idportsocket

5.管理员密码

mysqladmin -uroot -p password xx

6.登录

mysql -uroot -p

MySQL -1- 简介及安装的更多相关文章

  1. Linux中Mysql的简介和安装

    MySQL 简介 点击查看MySQL官方网站 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,后来被Sun公司收购,Sun公司后来又被Oracle公司收购,目前属于Oracle旗 ...

  2. 【python】-- MySQL简介、安装、操作

    MySQL简介.安装.操作 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据.我们也可以将数据存储 ...

  3. MySQL简介及安装

    一.DBA工作内容及课程体系 二.MySQL课程体系介绍 三.DBA的职业素养 四.MySQL简介及安装 01 什么是数据? 02 什么是数据库管理系统 03 数据库管理系统种类 04 MySQL发展 ...

  4. 【JAVAWEB学习笔记】26_Linux基础:简介安装、常用命令和JDK、Mysql、Tomcat的安装

    Linux基础 学习目标 1.了解Linux的简介与安装 2.掌握Linux常用的命令 3.掌握Linux系统上JDK.Mysql.Tomcat的安装 一.Linux的简介 1.Linux的概述 Li ...

  5. 一、MySQL数据库之简介和安装

    一.基础部分 1.数据库是简介     之前所学,数据要永久保存,比如用户注册的用户信息,都是保存于文件中,而文件只能存在于某一台机器上. 如果我们不考虑从文件中读取数据的效率问题,并且假设我们的程序 ...

  6. MySql数据库基础之数据库简介及安装

    MySql数据库简介: 众所周知,MySql数据库是一款开源的关系型数据库,在Web应用方面,MySql是最好的.最流行的RDBMS(Relational Database Management Sy ...

  7. MySQL 单实例编译安装 以及多实例安装简介

    这是基本的安装教程,与牛逼的大神无关,或许是牛逼大神不用看就会安装吧. CentOS 6.5 Final  x86_64 一.预安装软件包 1.开发包组合安装 yum groupinstall &qu ...

  8. MySQL简介和安装

    一.关系型数据库初识 1.1 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据.我 ...

  9. MySQL学习笔记01-MYSQL安装

    一 MySQL简介 MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司. MySQL 最流行的关系型数据库管理系统. MySQL分为企业版和社区版. ...

  10. mysql 5.7安装图解 mysql 5.7图文安装完整教程

    今天给搭建分享一个教程,mysql 5.7的安装操作,这里呢我叫大家怎么用二进制去安装mysql,其实在大多数的生产环境中使用二进制预编译的安装方式是最多了,下面大家跟着我的步骤去尝试着安装下吧. 先 ...

随机推荐

  1. wx小程序知识点(三)

    三.封装小程序的数据请求 (1)在根目录创建utils目录,创建config.js.base.js (2)在config.js中创建config类,并将请求路径配置给config的属性restUrl, ...

  2. layer 回调

    目前使用的layer版本为1.8.5 在调用layer的JS中,使用end来进行处理 $.layer({ type : 2, shadeClose : true, title : '选择人员', cl ...

  3. linux环境下写C++操作mysql(一)

    /***************** connect.cpp g++ connect.cpp -o connect -I /usr/include/mysql/ -L /usr/lib/mysql/ ...

  4. Python3学习笔记(十六):随机数模块random

    一.random模块 1.random.random(): 返回0-1之间的随机浮点数 import random print(random.random()) 0.9348690085059901 ...

  5. BZOJ 1920 Luogu P4217 [CTSC2010]产品销售 (模拟费用流、线段树)

    题目链接 (bzoj) https://www.lydsy.com/JudgeOnline/problem.php?id=1920 (luogu) https://www.luogu.org/prob ...

  6. sklearn.model_selection Part 2: Model validation

    1. check_cv() def check_cv(cv=3, y=None, classifier=False): if cv is None: cv = 3 if isinstance(cv, ...

  7. 程序代码运行结果是(abdcbdcb)

    public class Test { public static boolean show(char ch) { System.out.print(ch); return true; } publi ...

  8. Docker入门-数据挂载

    Docker数据管理 在容器中管理数据主要有两种方式: 数据卷(Volumes) 挂载主机目录(Bind mounts) 数据卷 数据卷是一个可供一个或多个容器使用的特殊目录,它绕过UFS,可以提供很 ...

  9. java高级面试题汇总(复习)从最基础的往上复习,每天定期更新。

    每天搬一点砖,总有一天成为大牛! 看问题的时候请不要立马去翻答案,多想想. 看完答案可以问问为什么,尝试拓展!一起加油吧! 每个答案后面都有一个小彩蛋(一个以上的拓展问题),钻研让你先人一步. jav ...

  10. 在 Android 中如何调用 C 语言?

    当我们的 Java 需要调用 C 语言的时候可以通过 JNI 的方式,Java Native Interface.Android 提供了对 JNI 的支持, 因此我们在 Android 中可以使用 J ...