0

Mac系统MySQL数据库无法启动

Posted by Alan on March 20, 2017 in MySQL |

今天打开电脑MySQL数据库突然莫名奇妙地启动不起来了,在System Preferences中点击Start MySQL Server没有任何效果,然后在命令行登录mysql -uroot -p出现如下报错 在网上查找解决方案 仍然无法启动,按另一种方式启动 查看该报错文件,发现如下信息: 有两个tablespace的报错: 最终得到解决方案如下: 1.打开my.conf添加 2.启动MySQL服务 3.关闭MySQL服务 4.打开my.conf删除 5.启动MySQL服务 注: 如Mac.local.err中出现如下错误 执行     sudo killall mysqld

Tags: ,

0

MySQL监控

Posted by Alan on July 27, 2016 in MySQL |

可用性监控 确认数据库是否可以通过网络连接 mysqladmin -umonitor_user -p -h ping #远程服务器上执行 telent ip dp_port #手动 使用程序通过网络建立数据库连接(推荐) read_only是否为off 建立监控表并对表中数据进行更新 执行简单的查询select @@version 监控数据库的连接数 show variables like ‘max_connections’; show global status like ‘Threads_connected’ 比如:Threads_connected/max_connections > 0.8进行报警 数据库性能监控 计算QPS和TPS QPS=(Queries2-Queries1)/(Uptime_since_flush_status2-Uptime_since_flush_status1) #进行两次采样 TPS=((Com_insert2+Com_update2+Com_delete2)-(Com_insert1+Com_update1+Com_delete1))/(Uptime_since_flush_status2-Uptime_since_flush_status1) 监控数据库的并发请求数量 show global status like ‘Threads_running’ 监控Innodb的阻塞 红色部分根据实际情况调整 SELECT b.trx_mysql_thread_id AS ‘被阻塞线程’ ,b.trx_query AS ‘被阻塞SQL’ ,c.trx_mysql_thread_id AS ‘阻塞线程’ ,c.trx_query AS […]

Tags:

0

MySQL性能优化

Posted by Alan on July 22, 2016 in MySQL |

通过Profile查看SQL各个阶段所消耗的时间进而采取有针对性的优化 在上图中我们看到显示了一个warning,那这是什么原因导致的呢,执行 因此在MySQL5.6以后实际上官方推荐使用的是Performance Schema,下面是使用Performance Schema方法 此时再执行同样的语句 常用的优化方法 1.大表数据的修改采取分批处理 比如以下脚本: 2.如何修改大表的表结构 3.针对大表优化not in和<>查询 4.使用汇总表优化查询

Tags:

0

MaxScale实现MySQL读写分离和负载均衡

Posted by Alan on July 19, 2016 in MySQL |

MaxScale安装 服务器 主1:192.168.0.131 从1:192.168.0.7 从2:192.168.0.9 1.在从2服务器上下载安装包 wget https://downloads.mariadb.com/files/MaxScale/1.3.0/rhel/6/x86_64/maxscale-1.3.0-1.rhel6.x86_64.rpm 2. rpm -ivh maxscale-1.3.0-1.rhel6.x86_64.rpm 如若缺少依赖包请自行安装 安装完成后执行max再按tab键可看到有如下命令可供使用 maxadmin    maxbinlogcheck    maxkeys    maxpasswd    maxscale 3.主服务器上创建账号 #监控账号 create user scalemon@’192.168.0.%’ identified by ‘123456’; grant replication slave, replication client on *.* to scalemon@’192.168.0.%’; #路由账号 create user maxscale@’192.168.0.%’ identified by ‘123456’; grant select on mysql.* to maxscale@’192.168.0.%’ ; 4. […]

Tags: ,

0

MySQL MHA高可用架构

Posted by Alan on July 19, 2016 in MySQL |

MySQL MHA高可用架构主要用于: 监控主数据库服务器是否可用 当主DB不可用时,从多个从服务器中选举出新的主数据库服务器 提供了主从切换和故障转移功能 配置步骤 首先参考MySQL主从复制的中基于GTID复制的配置方法配置三台服务器 1.建立主从复制群,MHA可同时支持基于日志点和基于GTID的主从复制,推荐采用基于GTID的主从复制(MMM仅支持基于日志点的主从复制) 主:192.168.0.131 从1:192.168.0.7 从2:192.168.0.9(监控服务器) 2.配置集群内所有主机的SSH免认证登陆 在每台机器上都进行相同的操作 安装MHA-node软件包和MHA-manager软件包 首先安装Perl软件包 各服务上器安装MHA Node 链接: http://pan.baidu.com/s/1i4Bwlhz 密码: ev2c (安装包地址) 监控服务器上(从2)安装以下软件包: 然后在监控服务器上安装 MHA Manager 链接: http://pan.baidu.com/s/1pLpfBxL 密码: m2wk (安装包地址) 3.配置MHA管理节点 在监控服务器上创建文件夹 mkdir -p /etc/mha #mha配置文件夹 mkdir -p /home/mysql_mha #工作目录(所有主从服务器上均创建) 主服务器上创建用户 grant all privileges on *.* to mha@’192.168.0.%’ identified by ‘123456’; 监控服务器上MHA配置文件(/etc/mha/mysql_mha.cnf) master_ip_failover脚本: 链接: […]

Tags: , ,

0

MySQL MMM高可用架构

Posted by Alan on July 17, 2016 in MySQL |

MMM(Multi-Master Replication Manager) 监控和管理MySQL的主主复制拓扑: MMM部署步骤 1.配置主主复制及主从同步集群 更详细配置方法可参见MySQL主从复制一文 主1:192.168.0.131 主2:192.168.0.3 从1:192.168.0.9(本例仅使用一台从服务器,多台配置方法相同) 虚拟IP:192.168.0.100(写),192.168.0.101、192.168.0.102、192.168.0.103(读) 2.安装主从节点所需要的支持包 主从服务器所需进行的安装: 可通过yum search mmm查看MMM的包 主从同时安装mysql-mmm-agent.noarch: #安装监控包,本例从服务器同时充当监控服务器 3.安装及配置MMM工具集 复制所需账号在配置过程中已经建立(repl),还需要两个账号,只需要在主1上进行操作即可: 基它配置 然后将另两台服务器的this db1分别修改为this db2和this db3(/etc/mysql-mmm/mmm_agent.conf) 以上就完成了所有数据库节点的配置,接下来配置监控节点(从服务器) vi /etc/mysql-mmm/mmm_mon.conf 启动各节点的代理服务 /etc/init.d/mysql-mmm-agent start 4.运行MMM监控服务 在监控节点执行 可以发现我们的配置已经生效 5.测试 此时如果我们关闭主1上的MySQL服务来模拟故障(/etc/init.d/mysqld stop),再次在监控节点上执行mmm_control show会发现主服务器已进行了自动切换 注:如果主1服务恢得正常那么状态就会由master/HARD_OFFLINE变为master/AWAITING_RECOVERY 此时打开从库MySQL命令行执行show slave status \G;会发现虽然配置时只将主服务器配置为主1,却切换成了主2

Tags: , ,

0

MySQL主从复制

Posted by Alan on July 17, 2016 in MySQL |

基于日志点的主从复制 在主服务器上创建用户 CREATE USER ‘repl’ @ ‘IP段’ IDENTIFIED BY ‘pass’; GRANT REPLICATION SLAVE ON *.* TO ‘repl’ @ ‘IP段’ 如本地测试网段为192.168.0.*时 配置主从数据库服务器 配置主数据库服务器(my.cnf) bin_log = mysql-bin server_id = 1 #值在集群中唯一 配置从服务器服务器 bin_log = mysql-bin server_id = 2 relay_log = mysql-relay-bin log_slave_update = on #可选 read_only = on #可选 具体配置如下(从库将server-id修改为2即可),配置完成重启MySQL服务 初始化从服务器数据 备份方法一:mysqldump –master-data=2 -single-transaction 备份方法二:xtrabackup –slave-info #对纯innodb更推荐 […]

Tags: ,

0

MySQL二进制日志文件

Posted by Alan on July 16, 2016 in MySQL |

基于段的格式 binlog_format=STATEMENT 进入MySQL进行查看,会发现默认的二进制日志格式即为STATEMENT(5.7版本以后默认为ROW),这种方式会记录每条SQL语句,如需非默认修改时建议使用使用flush logs进行刷新 show variables like ‘binlog_format’; show binary logs出现报错的话 ERROR 1381 (HY000): You are not using binary logging 在/etc/my.cnf的[mysqld]版块添加 log-bin=mysql-bin 以上代码应放置在下面的代码段上方 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid 查看日志: 进入日志文件目录(Alan测试机器的位置为/var/lib/mysql/),使用mysqlbinlog mysqlbinlog mysql-bin.000002 即可查看到刚刚在MySQL中进行的操作记录。 基于行的日志格式 binlog_format=ROW ROW的方式为5.7版本以后的默认设置,它记录数据表中每一行的修改记录,因而更为安全,当然日志的记录量也会增大。 所以官方要专门增加了三个针对ROW格式的设置binlog_row_image=[FULL|MINIMAL|NOBLOB] full (Log all columns) minimal (Log only changed columns, and columns needed to identify rows)推荐 noblob (Log all columns, except for unneeded […]

Tags: ,

0

MySQL基准测试

Posted by Alan on July 14, 2016 in MySQL |

常见指标: TPS(Transaction per Second) QPS(Query per Second) 响应时间 并发量 步骤 计划和设计基准测试 准备基准测试及数据收集脚本 容易忽略的问题 使用生产环境数据时只使用了部分数据 在多用户场景中,只做单用户的测试 在单服务器上测试分布式应用 反复执行同一查询 mysqlslap MySQL服务器自带的基准测试工具,随MySQL一起安装 常用参数: –auto-generate-sql 由系统自动生成SQL脚本进行测试 –auto-generate-sql-add-autoincrement 在生成的表中增加自增ID –auto-generate-sql-load-type 指定测试中使用的查询类型 –auto-generate-sql-write-number 指定初始化数据时生成的数据量 –concurrency 指定并发线程的数量 –engine 指定要测试表的存储引擎,可以用逗号分割多个存储引擎 –no-drop 指定不清理测试数据 –iterations 指定测试运行的次数 –number-of-queries 指定每一个线程执行的查询数量 –debug-info 指定输出额外的内存及CPU统计信息 –number-int-cols 指定测试表中饮食的INT类型列的数量 –number-char-cols 指定测试表中包含的varchar类型的数量 –create-schema 指定了用于执行测试的数据库的名字 –query 用于指定自定义SQL的脚本 –only-print 并不运行测试脚本,而是把生成的脚本打印出来 可输入mysqlslap –help查看所有参数 举例如下 可通过在后面添加–only-print | […]

Tags:

0

Navicat快捷键大全

Posted by Alan on July 17, 2015 in Coding, MySQL |

Navicat Main Window Keys Action CTRL+G Settings Location Folder CTRL+# (# represents 0 to 9) Open Object Window from Favorites List F6 Console CTRL+H History Log CTRL+Q New Query Common Keys Action CTRL+N New Object SHIFT+CTRL+# (# represents 0 to 9) Add to Favorites F8 Navicat Main Window CTRL+TAB or SHIFT+CTRL+TAB Next Window F1 Help […]

Tags: ,

Copyright © 2012-2018 记录点滴生活 | Alan Hou的个人博客 All rights reserved.