2019-04-03-day01-第一章-MySQL-简介及安装
1、官方定义的MySQL-DBA工作职责
1.1 开发DBA ***
1.2 运维DBA *****
1.2.1 初级运维
安装、搭建
1.2.2 中级运维
MySQL数据库管理员:用户权限,索引管理,存储引擎,备份恢复,主从,故障处理
1.2.3 高级运维
性能优化,集群高可用
2、老男孩Linux云计算运维-MySQL运维DBA课程
2.1 MySQL简介及安装 (必会)
2.2 MySQL体系结构和基础管理(熟悉)
2.3 MySQL SQL语句(熟悉)
2.4 MySQL基础优化-索引及执行计划(必会)
2.5 MySQL 存储引擎(熟悉)
2.6 MySQL 日志管理(必会)
2.7 MysQL备份恢复(必会)
2.8 MySQL主从复制(必会)
2.9 MySQL主从复制架构演变-高可用及读写分离(熟悉)
2.10 MySQL主从复制架构演变-分布式架构(了解)
2.11 MySQL整体优化(熟悉)
2.12 NoSQL-Redis缓存技术(熟悉)
2.13 NoSQL-MongoDB分布式数据库技术(熟悉)
3、DBA 职业素养
3.1 人品
3.2 严谨
规范操作,要有理论支撑或者实践检验
3.3 细心
变更类的操作,多思考
3.4 心态
能顶住压力。
==============================
3.5 熟悉操作系统
3.6 熟悉业务(开发)
3.7 熟悉行业
3.8 喜欢数据库
4、MySQL版本企业选择
4.1 规范
GA版本:稳定的发布版本
4.2 版本类型
E:企业版,收费版本,SR,偏传统行业
C:社区版,开源版本,互联网企业的选择
4.3 企业版本选择
一般新上的环境,会选择GA6-12月版本
4.4 企业主流版本
5.6版本:5.6.34 5.6.36 5.6.38
5.7版本:5.7.20 5.7.22 5.7.24
4.5 MySQL分支
Oracle MySQL
MariaDB
PerconaDB
RDS
4.6 软件下载
地址:
https://downloads.mysql.com/archives/community/
RPM包:
二进制包:(上课使用的版本)
源码包:C++的源码,需要二次开发的时候,需要做统一配置管理的时候
研究源码
5. 安装和基本配置
5.0 下载和上传软件到/data
5.1 解压
```
[root@db01 data]# tar xf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
[root@db01 data]# mv mysql-5.7.20-linux-glibc2.12-x86_64/ mysql
```
5.2 修改环境变量及生效
```
vim /etc/profile
export PATH=/data/mysql/bin:$PATH
[root@db01 bin]# source /etc/profile
[root@db01 bin]# mysql -V
```
5.3 清理历史软件包
```
[root@db01 bin]# rpm -qa |grep mariadb-libs
mariadb-libs-5.5.56-2.el7.x86_64
[root@db01 bin]# yum remove -y mariadb-libs
```
5.4 建用户
```
[root@db01 bin]# id mysql
id: mysql: no such user
[root@db01 bin]# useradd mysql
```
5.5 初始化数据
5.5.0 个版本初始化方式介绍
5.6 版本的初始化程序:
```
/data/mysql/scripts/mysql_install_db --user=mysql --basedir=/data/mysql --datadir=/data/mysql/data
```
5.7 版本的初始化程序:
```
/data/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/data/mysql --datadir=/data/mysql/data
```
5.5.1 创建数据目录
```
mkdir -p /data/mysql/data
```
5.5.2 初始化(系统)数据
```
[root@db01 data]# /data/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/data/mysql --datadir=/data/mysql/data
```
5.5.3 初始化参数介绍
--initialize-insecure: 是用无安全限制的方式进行数据初始化
--user=mysql :设置数据的管理用户
--basedir=/data/mysql :软件的安装路径
--datadir=/data/mysql/data :数据的存储位置
5.5.4 修改权限
```
[root@db01 mysql]# chown -R mysql.mysql /data
```
5.5.5 准备启动脚本和基础配置文件
5.5.5.1 准备sys-v启动脚本
```
[root@db01 support-files]# pwd
/data/mysql/support-files
[root@db01 support-files]# cp mysql.server /etc/init.d/mysqld
```
5.5.5.2 准备配置文件
```
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
5.5.5.3 SYS-V启动数据库
[root@db01 support-files]#
[root@db01 support-files]# service mysqld start
Starting MySQL.Logging to '/data/mysql/data/db01.err'.
SUCCESS!
[root@db01 support-files]# service mysqld stop
Shutting down MySQL.. SUCCESS!
[root@db01 support-files]# service mysqld restart
ERROR! MySQL server PID file could not be found!
Starting MySQL. SUCCESS!
```
5.5.5.4 准备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
[root@db01 ~]# /etc/init.d/mysqld stop
Shutting down MySQL.. SUCCESS!
[root@db01 ~]# systemctl start mysqld
```
5.5.5.5 连接数据库
```
mysql
```
5.5.5.6 设置root的初始密码
```
[root@db01 ~]# mysqladmin -uroot -p password 123
```