MySQL数据库
用户管理
grant all on *.* to root@'%' identified by '1';
grant select,insert,update on wordpress.* to dev@'172.16.1.%' identified by '1'
数据管理
1.备份数据
2.恢复数据
3.sql语句管理
DDL: CREATE
DCL: GRANT
DML: INSERT
DQL: SELECT
配置管理
1.了解配置文件
2.优化配置
集群管理
1.单机单节点
2.主从复制(半同步复制,过滤复制)
3.读写分离,可以分担主库压力
4.MHA
数据库监控管理
1.进程 ps -ef
2.端口 netstat
3.监控主从状态
4.监控主从延时情况
5.sql读写速率
6.慢日志(记录执行命令时间)
运维层面监控
1.系统硬件监控
2.服务进程
3.端口监控
4.网络监控
5.业务监控(使用curl命令)
高级数据库架构师
#删除语句,最好加上条件
1.
delete 只删除数据
drop 还删除表
truncate 直接清空表
G; g
2.常用发命令记录,下次直接复制
MySQL
1.数据。数据是对信息的记录,计算机用0和1表示
数据库分类
-
关系型数据库(sql)
- 一般用于互联网企业
- 数据存取是通过SQL(Structured Query Language结构化查询语言)
- 安全性强(ACID 原子性 一致性 隔离性 持久性)
- 强大的查询功能
- 建立索引(像是目录)
- 存储在磁盘
以二维表的形式存储
-
非关系型数据库(nosql)
- 不是否定关系型数据库,而是做关系型数据库的补充。
- 性能高,高并发
- 典型产品redis、MongoDB(最接近关系型数据库的NoSQL)、memcached(只讲性能,不讲安全)。
- 管理不适用SQL管理,而是用一些特殊的API或数据接口。
- 强一致性
- 容易迁移数据
- 容易扩展,集合
- 大多数存储在内存
非关系型数据库,很多以json格式进行存储数据,类似于开发语言的翻译官
java
python
php
mysql
mongodb
Elasticsearch
redis
redis
127.0.0.1:6379> set k1 v1 #设置值
OK
127.0.0.1:6379> get k1 #查看值
"v1"
Redis特点
- 高性能高并发,有安全
- 数据持久化功能(内存--磁盘)
- 支持多数据类型,主从复制和集群
- 管理不需要使用sql
以数值对(key value)的形式存储在内存或磁盘
是对数据的缓存,数据最终存储在数据库
数据库排行(https://db-engines.com/en/ranking)
mysql安装包下载(https://db-engines.com/en/ranking)
mysql数据库版本
#版本选择的潜规则:
5.6版本: 选择GA 6-12 个月,小版本为偶数版
5.7版本: 选择GA 6-12 个月,小版本为偶数版,尽量选择5.7.17版本以上
安装方式
1.源码包
2.二进制包(.exe)
3.rpm包安装(镜像站)
二进制安装流程
1.官网下载 && rz
2.安装依赖包
[root@db02 ~]# yum install -y ncurses-devel libaio-devel
3.解压MySQL源码包
[root@db03 ~]# tar xf mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz
4.移动目录
[root@db03 ~]# mv mysql-5.6.46-linux-glibc2.12-x86_64 /usr/local/
5.做个软链接
[root@db03 ~]# cd /usr/local/
[root@db03 local]# ln -s mysql-5.6.46-linux-glibc2.12-x86_64/ mysql
6.创建用户mysql
[root@db03 local]# useradd mysql -s /sbin/nologin -M
7.拷贝配置文件.cnf和启动脚本mysql.server
[root@db03 mysql]# cp support-files/my-default.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y
该脚本是C6的启动脚本
[root@db03 mysql]# cp support-files/mysql.server /etc/init.d/mysqld
8.初始化数据库
[root@db03 mysql]# cd /usr/local/mysql/scripts/
[root@db03 scripts]# ./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
两个ok就说明初始化成功了,如果有报错的话在底下
--user 指定用户
--basedir 指定安装目录
--datadir 指定数据目录
9.启动数据库,#显示日志,C6的启动方式
[root@db03 scripts]# /etc/init.d/mysqld start
Starting MySQL.Logging to '/usr/local/mysql/data/db03.err'.
..... SUCCESS!
10.做软链接或者把命令加入环境变量
软链接
[root@db03 mysql]# ln -s /usr/local/mysql/bin/ /usr/bin/mysql
加入环境变量
[root@db03 scripts]# vim /etc/profile.d/mysql.sh
export PATH=/usr/local/mysql/bin:$PATH
11.systemctl管理mysql,#C7的启动脚本
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
12.使用systemctl,#C7的管理方式
[root@db03 ~]# systemctl daemon-reload
[root@db03 ~]# systemctl stop mysqld
[root@db03 ~]# systemctl start mysqld
13.确认启动
[root@db03 ~]# ps -ef|grep mysql
[root@db03 ~]# netstat -lntup|grep 3306
14.bash后连接数据库
[root@db03 ~]# mysql