MariaDB(MySQL)安装及MySQL慢查询分析mys


MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。[4]
MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,10.0.9版起使用XtraDB(名称代号为Aria)来代替MySQL的InnoDB。
MariaDB由MySQL的创始人麦克尔维德纽斯主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自麦克尔维德纽斯的女儿玛丽亚(英语:Maria)的名字。
注意:以上内容来自维基百科;
MariaDB官方网站:http://www.mariadb.org/ 插件式存储引擎:存储管理器有多种实现版本,彼此间的功能和特性可能略有区别;用户可根据需要灵活选择;存储引擎页称为“表类型”。
(1) 更多的存储引擎MylSAM:不支持事务MyISAM –>AriaInnoDB –>XtraDB;支持事务(2) 诸多扩展和新特性
(3) 提供了较多的测试组件
(4) truly open source安装和使用MariaDB安装环境:安装方式:(1)rpm包:由OS的发行商提供或程序官方提供;(2)源码包(3)通用二进制格式1、创建mysql系统用户[root@bogon src]# groupadd -r -g 301 mysql[root@bogon src]# useradd -r -g 301 -u 301 mysql2、下载及解压[root@bogon src]# wget https://downloads.mariadb.org/interstitial/mariadb-galera-5.5.54/bintar-linux-glibc_214-x86_64/mariadb-galera-5.5.54-linux-glibc_214-x86_64.tar.gz[root@bogon src]# tar -xf mariadb-galera-5.5.54-linux-glibc_214-x86_64.tar.gz -C /usr/local/[root@bogon src]# cd /usr/local/[root@bogon local]#ln -sv mariadb-galera-5.5.54-linux-glibc_214-x86_64/ mysql‘mysql’ -> ‘mariadb-galera-5.5.54-linux-glibc_214-x86_64/’[root@bogon local]# lldrwxr-xr-x. 2 root root 6 Jun 10 2014 bindrwxr-xr-x. 2 root root 6 Jun 10 2014 etcdrwxr-xr-x. 2 root root 6 Jun 10 2014 gamesdrwxr-xr-x. 2 root root 6 Jun 10 2014 includedrwxr-xr-x. 2 root root 6 Jun 10 2014 libdrwxr-xr-x. 2 root root 6 Jun 10 2014 lib64drwxr-xr-x. 2 root root 6 Jun 10 2014 libexecdrwxrwxr-x. 13 1021 1004 4096 Jan 4 06:09 mariadb-galera-5.5.54-linux-glibc_214-x86_64lrwxrwxrwx. 1 root root 45 Jun 28 22:42 mysql -> mariadb-galera-5.5.54-linux-glibc_214-x86_64/
3、修改解压目录后所有文件属主及属组
[root@bogon local]# cd mysql/[root@bogon mysql]# chown -R root.mysql ./*4、创建存放数据的目录,以/data/mysql为例[root@bogon mysql]# mkdir /data/mysql[root@bogon mysql]# chown -R mysql.mysql /data/mysql/5、准备配置文件[root@bogon mysql]# mkdir /etc/mysql[root@bogon mysql]# cp support-files/my-large.cnf /etc/mysql/my.cnf
[root@bogon mysql]# vi /etc/mysql/my.cnf编辑[mysqld]#添加如下三个配置参数skip_name_resolve = ONdatadir = /data/mysqlinnodb_file_per_table = ON
mysql配置文件查找次序:/etc/my.cnf 而后 /etc/mysql/my.cnf 而后–default.extra-file=/PATH/TO/COF_FILE 最后 ~/.my.cnf6、提供启动脚[root@bogon mysql]# cp support-files/mysql.server /etc/init.d/mysqld[root@bogon mysql]# chmod +x /etc/init.d/mysqld[root@bogon mysql]# chkconfig –add mysqld
7、初始化数据库并启动mysqld服务
[root@bogon mysql]# ./scripts/mysql_install_db –user=mysql –datadir=/data/mysql/[root@bogon mysql]# ls /data/mysql/aria_log.00000001 mysql mysql-bin.000002 performance_schemaaria_log_control mysql-bin.000001 mysql-bin.index test[root@bogon mysql]# service mysqld startStarting MySQL.170628 22:53:36 mysqld_safe Logging to ‘/var/log/mariadb/mariadb.log’.170628 22:53:36 mysqld_safe Starting mysqld daemon with databases from /data/mysql/usr/local/mysql/bin/mysqld_safe_helper: Can’t create/write to file ‘/var/log/mariadb/mariadb.log’ (Errcode: 2)…. SUCCESS!
[root@bogon mysql]# ss -tnl|grep 3306LISTEN 0 50 *:3306 *:* [root@bogon mysql]# ps -ef|grep mysqldroot 36474 1 0 22:53 pts/2 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe –datadir=/data/mysql –pid-file=/data/mysql/bogon.pidmysql 36920 36474 0 22:53 pts/2 00:00:00 /usr/local/mysql/bin/mysqld –basedir=/usr/local/mysql –datadir=/data/mysql –plugin-dir=/usr/local/mysql/lib/plugin –user=mysql –log-error=/var/log/mariadb/mariadb.log –pid-file=/data/mysql/bogon.pid –socket=/tmp/mysql.sock –port=3306 –wsrep_start_position=00000000-0000-0000-0000-000000000000:-1root 36960 36136 0 22:56 pts/2 00:00:00 grep –color=auto mysqld8、安装后配置
[root@bogon mysql]# vi /etc/profile.d/mariadb.sh#编辑export PATH=/usr/local/mysql/bin:$PATH[root@bogon mysql]# source /etc/profile.d/mariadb.sh
至此通用二进制格式安装结束
实现目的:开启MySQL慢查询日志功能,安装使用MySQL慢查询分析mysqlsla。1、开启MySQL慢查询功能[root@bogon mysql]# mysql -u root -p#进入mysql控制台Enter password:Welcome to the MariaDB monitor. Commands end with ; or g.Your MariaDB connection id is 4Server version: 5.5.54-MariaDB-wsrep MariaDB Server, wsrep_25.14.r9949137
Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
Type ‘help;’ or ‘h’ for hel开发云主机域名p. Type ‘c’ to clear the current input statement.MariaDB [(none)]>查看mysql慢查询功能MariaDB [(none)]> show variables like ‘%slow%’;—————————————-+| Variable_name | Value |+———————+————————————————————————————————————–+| log_slow_filter | admin,filesort,filesort_on_disk,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk || log_slow_queries | OFF || log_slow_rate_limit | 1 || log_slow_verbosity | || slow_launch_time | 2 || slow_query_log | OFF || slow_query_log_file | bogon-slow.log |+———————+————————————————————————————————————–+7 rows in set (0.00 sec)
MariaDB [(none)]> show global status like ‘%slow%’;+———————+——-+| Variable_name | Value |+———————+——-+| Slow_launch_threads | 0 || Slow_queries | 0 |+———————+——-+2 rows in set (0.01 sec)开启MySQL慢查询功能MariaDB [(none)]> set global slow_query_log=ON;Query OK, 0 rows affected (0.08 sec)
MariaDB [(none)]> show variables like ‘%slow%’;+———————+————————————————————————————————————–+| Variable_name | Value |+———————+————————————————————————————————————–+| log_slow_filter | admin,filesort,filesort_on_disk,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk || log_slow_queries | ON || log_slow_rate_limit | 1 || log_slow_verbosity | || slow_launch_time | 2 || slow_query_log | ON || slow_query_log_file | bogon-slow.log 查看MySQL慢查询时间设置默认10秒MariaDB [(none)]> show variables like ‘long_query_time’;+—————–+———–+| Variable_name | Value |+—————–+———–+| long_query_time | 10.000000 |+—————–+———–+1 row in set (0.00 sec)设置慢查询记录超过5秒的记录
MariaDB [(none)]> set global long_query_time=5;Query OK, 0 rows affected (0.00 sec)查看一下:MariaDB [(none)]> show variables like ‘long_query_time’;+—————–+———–+| Variable_name | Value |+—————–+———–+| long_query_time | 10.000000 |+—————–+———–+1 row in set (0.00 sec)
MariaDB [(none)]> set global long_query_time=5;Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]>2、测试MySQL慢查询
退出当前mysql控制台重新登录
测试MySQL慢查询
MariaDB [(none)]> select sleep(6);查看MySQL慢查询日志路径MariaDB [(none)]> show variables like ‘%slow%’;+———————+———————————————————————–+| Variable_name | Value |+———————+———————————————————————–+| log_slow_filter | admin,filesort,filesort_on_disk,full_join,full_scan,query_cache,query_|| log_slow_queries | ON || log_slow_rate_limit | 1 || log_slow_verbosity | || slow_launch_time | 2 || slow_query_log | ON || slow_query_log_file | bogon-slow.log |+———————+———————————————————————–+7 rows in set (0.00 sec)查看MySQL慢查询状态MariaDB [(none)]> show global status like ‘%slow%’;+———————+——-+| Variable_name | Value |+———————+——-+| Slow_launch_threads | 0 || Slow_queries | 1 |+———————+——-+2 rows in set (0.00 sec)退出MySQL控制台MariaDB [(none)]> exit;# 查看MySQL慢查询日志中是否有刚才所执行的select sleep(6)的慢查询日志记录[root@bogon mysql]# cat /data/mysql/bogon-slow.log/usr/local/mysql/bin/mysqld, Version: 5.5.54-MariaDB-wsrep (MariaDB Server, wsrep_25.14.r9949137). started with:Tcp port: 3306 Unix socket: /tmp/mysql.sockTime Id Command Argument# Time: 170629 1:23:34# User@Host: root[root] @ localhost []# Thread_id: 5 Schema: QC_hit: No# Query_time: 6.000862 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0SET timestamp=1498670614;select sleep(6);备注:还可以通过修改MySQL配置文件参数,开启MySQL慢查询功能;3、修改MySQL配置文件开启慢查询功能
# 编辑,在[mysqld]段下添加以下代码[root@bogon mysql]# vi /etc/my.cnf#开启MySQL慢查询功能slow-query-log = ON # 设置MySQL慢查询日志路径slow_query_log_file = /data/mysql/bogon-slow.log #修改为记录5秒内的查询,默认不设置此参数为记录10秒内的查询long_query_time = 5 #记录未使用索引的查询log-queries-not-using-indexes = ON #保存退出:wq! # 重启MySQL服务service mysqld restart启动报错:[root@bogon mysql]# service mysqld restartShutting down MySQL.. SUCCESS!Starting MySQL.170629 02:10:22 mysqld_safe Logging to ‘/var/log/mariadb/mariadb.log’.170629 02:10:22 mysqld_safe Starting mysqld daemon with databases from /data/mysql/usr/local/mysql/bin/mysqld_safe_helper: Can’t create/write to file ‘/var/log/mariadb/mariadb.log’ (Errcode: 2)ERROR!ERROR! Failed to restart server.解决方法:[mysqld_safe]#log-error=/var/log/mariadb/mariadb.log注释这行pid-file=/var/run/mariadb/mariadb.pid明天部署mysqlsla,敬请期待~~~~~
二、安装MySQL慢查询分析工具mysqlsla1、安装依赖包[root@bogon ~]# yum install wget perl perl-DBI perl-DBD-MySQL mysql perl-Time-HiRes perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker2、安装mysqlsla存放包目录[root@bogon ~]# cd /usr/local/src/下载mysqlsla包[root@bogon src]# wget http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz##这个连接似乎已经挂了终于在51cto有人分享这个包了,感谢该平台分享http://down.51cto.com/data/705945
[root@bogon src]# tar -xf 51CTO下载-mysqlsla-2.03.tar.gz[root@bogon src]# cd mysqlsla-2.03/[root@bogon mysqlsla-2.03]# perl Makefile.PLChecking if your kit is complete…Looks goodWriting Makefile for mysqlsla[root@bogon mysqlsla-2.03]# makecp lib/mysqlsla.pm blib/lib/mysqlsla.pmcp bin/mysqlsla blib/script/mysqlsla/usr/bin/perl -MExtUtils::MY -e ‘MY->fixin(shift)’ — blib/script/mysqlslaManifying blib/man3/mysqlsla.3pm[root@bogon mysqlsla-2.03]# make installInstalling /usr/local/share/perl5/mysqlsla.pmInstalling /usr/local/share/man/man3/mysqlsla.3pmInstalling /usr/local/bin/mysqlslaAppending installation info to /usr/lib64/perl5/perllocal.pod3、使用mysqlsla分析慢查询日志#查询记录最多的20个sql语句,并写到select.log中去;[root@bogon mysqlsla-2.03]# mysqlsla -lt slow –sort t_sum –top 20 /data/mysql/bogon-slow.log >/tmp/select.log#统计慢查询文件为/data/mysql/bogon-slow.log所有select的慢查询sql,并显示执行时间最长的100条sql,并写到sql_select.log中去;[root@bogon mysqlsla-2.03]# mysqlsla -lt slow -sf “+select” -top 100 /data/mysql/bogon-slow.log >/tmp/sql_select.log#统计慢查询文件为/data/mysql/bogon-slow.log的数据库为mydata的所有select和update的慢查询sql,并查询次数最多的100条sql,并写到sql_num.sql中去;[root@bogon mysqlsla-2.03]# mysqlsla -lt slow -sf “+select,update” -top 100 -sort c_sum -db mydata /data/mysql/bogon-slow.log >/tmp/sql_num.log4、使用参数说明1. logtype (lt) type logs:通过这个参数来指定log的类型,主要有slow, general, binary, msl, udl,分析slow log时通过指定为slow2. sort:指定使用什么参数来对分析结果进行排序,默认是按照t_sum来进行排序。t_sum按总时间排序, c_sum按总次数排序;3. top:显示sql的数量,默认是10,表示取按规则排序的前多少条;4. statementfilter (sf) [+][TYPE]:过滤sql语句的类型,比如selectupdatedrop. [TYPE]SELECT, CREATE, DROP, UPDATE, INSERT,例如“+SELECT,INSERT”,不出现的默认是,即不包括。5. databases db:要处理哪个库的日志:
5、分析后内容参数说明
1. queries total: 总查询次数2. unique:去重后的sql数量3. sorted by : 输出报表的内容排序 最重大的慢sql统计信息, 包括 平均执行时间, 等待锁时间, 结果行的总数, 扫描的行总数.4. Count: sql的执行次数及占总的slow log数量的百分比.5. Time: 执行时间, 包括总时间, 平均时间, 最小, 最大时间, 时间占到总慢sql时间的百分比.6. 95% of Time: 去除最快和最慢的sql, 覆盖率占95%sql的执行时间.7. Lock Time: 等待锁的时间.8.95% of Lock: 95%的慢sql等待锁时间.9.Rows sent: 结果行统计数量, 包括平均, 最小, 最大数量.10.Rows examined: 扫描的行数量.11.Database: 属于哪个数据库. 12.Users: 哪个用户,IP, 占到所有用户执行的sql百分比. 13. Query abstract: 抽象后的sql语句. 14. Query sample: sql语句.
MySQL慢查询分析mysqlsla安装使用教程完成

相关推荐: mysql 出现1062错误的解决方法

小编给大家分享一下mysql 出现1062错误的解决方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!mysql 出现1062错误的解决办法:首先打开mysql的配置文件【my.cnf】;然后在client和mysqld下面加上相关代码;最后存关…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/09 17:52
下一篇 06/09 17:53

相关推荐