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

Django环境搭建及开发

Posted by Alan on December 24, 2016 in Coding |

开发工具:PyCharm   环境配置 注: 手动源码安装xadmin时需额外安装依赖包 使用多Python版本需要指定版本:   注:使用Anaconda搭建虚拟环境 常用命令 小技巧: 执行python manage.py sqlmigrate 应用名(如mesage) 0001(migrations文件夹下的序号)可以查看原生的SQL的语句 执行migrate指令后默认生成的表格: xadmin操作 adminx.py配置 注:在后台如需导出excel格式文件需安装xlwt(pip install xlwt),如需导出xlsx格式的则请安装xlsxwriter 将后台中主菜单的英文修改为中文,以app名users为例 xadmin中的延伸配置 Model及数据库操作 models.py部分内容示例 AutoField, BigAutoField, BigIntegerField, BinaryField, BooleanField, CharField, CommaSeparatedIntegerField, DateField, DateTimeField, DecimalField, DurationField, EmailField, FileField, FileField and FieldFile, FilePathField, FloatField, ImageField, IntegerField, GenericIPAddressField, NullBooleanField, PositiveIntegerField, PositiveSmallIntegerField, SlugField, SmallIntegerField, TextField, TimeField, URLField, UUIDField, […]

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:

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