Mysql database common operations, enterprise-class monitoring parameters, AB copy, Atlas separate read and write

Copyright: Original difficult please indicate the source https://blog.csdn.net/zhutongcloud/article/details/91048346

First, rights management

1.创建库test
create  database test;

2.创建用户user01对库test有所有权限
grant all on test.* to 'user01'@'%'  identified by 'password'; 

3.慎用:创建用户并授与root相同授权权限。[grant 权限 on 数据库对象 to 用户]  
grant all on *.* to 'user01'@'%' identified by '123456' with grant option;flush privileges;

4.只创建一个用户:
CREATE USER 'test'@'%'  IDENTIFIED BY '1234'; 

5.添加用户并授权:
GRANT ALL PRIVILEGES ON *.* TO 'user01'@'%' IDENTIFIED BY '12' WITH GRANT OPTION;

6.叠加权限,给user01用户所有库所有表增删改查的权限,只是select就是只有查询权限
grant select,insert,update,delete on *.* to 'user01'@'%' identified by 'password';

7.查看user01的权限
show grants for user01@%;

8.修改数据库密码:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123');
update mysql.user set authentication_string=password(“123”) where User=”test” and Host=”localhost”;

9.撤销权限
首先查看该用户的权限,然后复制想要撤销的权限,将grant 改成revoke,将to 改为from 。
show grants for user01@%;

Second, the Loft table insert data record

create database 库名
show databases;
create table 表名(字段  字段类型)
show tables;

复制表:
create table table2 select * from table1;

查看数据:select * from 

查看当前用户:select user();
查看授权用户:select user,host from mysql.user;
查看所有用户授权详情:select * from mysql.user;
查看密码:select user,password from mysql.user;
查看某一个用户的授权信息:show grants for 'user'@'localhost'\G
查看当前数据版本:select version();
查看当前使用的数据库: select database();

更新表:update [库名].[表名]  set 字段1=字段值1,字段2=字段值2.... where 条件; 

删除数据库:drop database [库名];
删除数据表:drop table [表名];
删除用户:drop user 用户名@客户端;
删除表记录:delete from [表名] where [条件];
删除数据:delete from [表名];

添加主键:alter table 表名 and primary key(字段名);
添加普通索引:alter table 表名 and index 索引名(字段名);
添加普通索引:alter table 表名 and index 索引名(字段名(前几个字符写数字));
添加联合索引如:alter table 表名 and index 索引名(id(7),name(8));
删除索引:alter table 表名 drop index 索引名;
添加字段(列):alter table 表名 and 字段名 字段类型;默认在最后面插入。
添加字段(列)如:alter table test add age int(4) after id; 在id后插入
删除字段(列):alter table 表名 drop 字段名;
修改字段名:alter table 表名 change 字段名1 字段名2 数据类型;

Third, on the optimization

1.关于数据库缓存:
show variables like "%cache%";查看:
query_cache_size 0
query_cache_type OFF
设置开启这两个值:set global query_cache_size =1024000000;set session query_cache_type=on;

2.关于慢查询
(1)漫查询日志是否开启
show variables like '%slow%';查看Log_slow_query是否开启,slow慢query查询.
临时生效:set global log_slow_queries=on;
永久生效:log-slow-queries=/var/lib/mysql/slowquery.log
log-queries-not-using-indexes (log下来没有使用索引的query,可以根据情况决定是否开启)
(2)设置慢查询时间
show variables like '%long%';查看慢查询日志时间;默认为10s,应该改成0.5-1秒;set long_query_time=0.5;
永久生效:long_query_time=2 (记录超过的时间,默认为10s)
(3)show full processlist 发现慢语句,利用desc或explain加语句查看是否应用了索引。
ows行-扫描的行数。type类型,key(索引)排查;


3. 关于索引
普通索引:alter table test add index(t_name);
主键索引:创建表的时候就已经创建。主键索引唯一且不能为空ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )
添加唯一索引:唯一索引,不允许有重复的。ALTER TABLE `table_name` ADD UNIQUE ( `column` )
添加多列索引:ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )

Fourth, mysql enterprise-class monitoring parameter
1. Query throughput

Com_select:select查询语句个数/每秒
Com_insert:insert操作语句个数/每秒
Com-update:update操作语句个数/每秒
Com-delete:delete操作语句个数/每秒
Questions:查询语句总量

mysqladmin  -uread -p123456 -h47.98.97.124  extended-status | grep Com_select 
| Com_select                               | 18484       |

mysqladmin  -uread -p123456 -h47.98.97.124  extended-status | grep Com_update
| Com_update                               | 3000        |

mysqladmin  -uread -p123456 -h47.98.97.124  extended-status | grep Com_insert
| Com_insert                               | 1054        |

mysqladmin  -uread -p123456 -h47.98.97.124  extended-status | grep Com_delete
| Com_delete                               | 198         |

mysqladmin  -uread -p123456 -h47.98.97.124  extended-status | grep Questions 
| Questions                                | 723868      |

注:
1. Writes = Com_insert + Com_update + Com_delete,如果在监控mysql吞吐量写操作的时候可以将insert
   update、delete数值进行合并。 
2. Questions是反映当前查询数量,设置告警非常必要,查询量的骤降,可能就预示着某个严重的问题。

2. Query execution performance

Slow_queries:慢查询数量

 mysqladmin  -uread -p123456 -h47.98.97.124  extended-status | grep Slow_queries
| Slow_queries

3. connection

Threads_connected:当前打开的数据库连接数
max_connections:数据库当前的最大连接数

mysqladmin  -uread -p123456 -h47.98.97.124  extended-status | grep -i connect
| Aborted_connects                         | 0           |
| Connections                              | 572         |
| Max_used_connections                     | 4           |
| Ssl_client_connects                      | 0           |
| Ssl_connect_renegotiates                 | 0           |
| Ssl_finished_connects                    | 0           |
| Threads_connected                        | 2           |


检查并设置连接限制

监控客户端连接情况相当重要,因为一旦可用连接耗尽,新的客户端连接就会遭到拒绝。MySQL 默认的连接数限制为 151。

查询最大连接数
方法一:
MariaDB [(none)]> show variables like 'max_connections';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 151   |
+-----------------+-------+

方法二:
mysql -uread -p123456 -h47.98.97.124 -e "show variables like 'max_connections'"|grep max_connections
max_connections 151

修改连接数
MariaDB [(none)]> set global max_connections = 200;
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 200   |
+-----------------+-------+
1 row in set (0.00 sec)

4. The use of the buffer pool

缓存命中率
缓冲池是一块内存区域,在对数据库进行读取操作时,首先将数据从磁盘中读取到缓冲池中,那缓冲池命中率则是客户端请求的数据在直接在缓冲池获取的比例。想象下如果缓冲池命中率很低,大部分数据都要从磁盘读取,可想而知一个数据库的性能。作为一个mysql OLTP系统,缓冲命中率最好在百分99以上。

mysql> show engine innodb status\G;

QPS(增删改查);MySQL请求流量带宽;响应流量带宽,主从状态,TPS(每秒事务的处理能力),监控缓冲池使用情况,缓存碎片,慢查询数量,当前连接数,吞吐量,端口服务状态,mysql正常运行的时间

吞吐量:  questios/uptime        查询总量/服务运行时间
max_connections 默认为151  监控可用连接的数量   设置报警 在my.conf修改适当的连接数   在连接数接近151报警,调整最大连接数,提高数据库性能

Five, Mysql master-slave replication
link to the article:
https://www.jianshu.com/p/4eb2982daa94

Six, Atlas implement MySQL separate read and write
article link:
https://www.jianshu.com/p/44854ba04a6e

Guess you like

Origin blog.csdn.net/zhutongcloud/article/details/91048346