[MySQL FAQ]系列 -- slow log中出现大量的binlog dump记录

线上有个数据库,在slow log中,存在大量类似下面的记录:

# Time: 130823 13:56:08
# User@Host: repl[repl] @ slave [10.x.x.x]
# Query_time: 9.000833  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 1
SET timestamp=1377237368;
# administrator command: Binlog Dump;

每完成一次binlog dump都会被记录下来,看着非常不爽(我有强迫症,O(∩_∩)O哈哈~),得想着法子搞掉。
经过排查,最后确认是特定版本存在这个现象,目前发现官方 5.1.49-log MySQL Community Server (GPL) 存在,估计整个官方 5.1.x 都会有这个现象。

解决方法:
修改 my.cnf 配置文件,增加或修改下面这个选项:

[MySQL FAQ]系列 -- 几种常见MySQL无法启动案例

昨天在群里看到有新同学还在问MySQL无法启动的问题,于是总结了几个常见情况,权当普及帖了,老鸟自觉飞过。

问题1:目录、文件权限设置不正确

MySQL的$datadir目录,及其下属目录、文件权限属性设置不正确,导致MySQL无法正常读写文件,无法启动。
错误信息例如:

mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
/usr/local/mysql/bin/mysqld_safe: line 107: /usr/local/mysql/data/imysql.local.err: Permission denied

问题2:端口冲突

已有其他mysqld实例启动,且占用了相同端口,需要修改 port 选项。
错误信息例如:

技术相关: 

修改配置nginx,限制无良爬虫频率

#全局配置
limit_req_zone $anti_spider zone=anti_spider:10m rate=15r/m;

#某个server中
 limit_req zone=anti_spider burst=30 nodelay;
 if ($http_user_agent ~* "xxspider|xxbot") {
 set $anti_spider $http_user_agent;
}

超过设置的限定频率,就会给spider一个503。
上述配置详细解释请自行google下,具体的spider/bot名称请自定义。

技术相关: 

[MySQL FAQ]系列 -- utf8表存储latin1乱码字符转换

线上有个数据表,字符集是utf8,但由于环境不统一的原因,导致实际上数据表存储的内容是latin1内码的数据。
也就是说,借着utf8的壳子,实际存储着latin1字符集的数据。
在这种情况下,需要注意几个字符集配置:

  • 客户端终端工具(SecureCRT)的显示字符集设置为:utf-8,
  • Linux终端(TERM)下,设置LANG环境变量为:en_US.UTF-8,或者zh_CN.UTF-8,
  • 连接到MySQL后,设置client/connect字符集为:latin1 (set names latin1)。

完成上述设置后,在Linux命令行的mysql cli客户端中才能正常显示中文。
为了统一,需要将这些数据的内码也转成utf8才行,可以按以下几个步骤完成:

技术相关: 

[代发]115网盘&美团急招MySQL DBA

职位一:115网盘 MySQL DBA:
1. 2年以上MySQL DBA工作经验
2. 熟悉Innodb、MyISAM、Heap等多种数据库引擎,熟悉Memcached、Redis等Key-Value数据库
3. 熟悉MySQL主从复制、主主复制,擅长数据库架构设计
4. 能设计良好的表结构,擅长索引优化
5. 熟悉Linux c/c++网络编程,熟悉perl/php/python/bash一种或多种脚本语言
6. 擅长Sphinx,熟悉中文搜索者优先
7. 有跨机房动态数据同步经验者优先

工作职责:
负责115网盘数据库管理、数据库优化

工作地点:
广东东莞

大致薪资范围:15k+

职位二:
美团招聘高级DBA
工作地点:北京
薪资范围:差不多20K左右,如果优秀的话 可以再沟通。

工作职责:
负责数据库的日常运维,保障24×7稳定运行;
负责数据库的性能优化,并推动解决问题;
负责数据库的监控系统设计,为开发团队提供平台支持。

CentOS 6.3下nginx、php-fpm、drupal快速部署

一切本着从简原则来做,能yum/rpm的,坚决不手工编译 :)
本次部署环境基于CentOS 6.3 x86_64系统。
0. 准备工作

#更新yum
[root@imysql ~]# yum -y update
[root@imysql ~]# yum install libaio-devel.x86_64
#drupal 8.0需要用到curl模块
[root@imysql ~]# yum install curl-devel
[root@imysql ~]# yum -y install libpng-devel libjpeg-devel freetype-devel gmp-devel libxml2-devel

[代发]奇艺急招MySQL/ORACLE DBA

爱奇艺(iQIYI.COM),原名奇艺,中国第一影视门户。作为国内领先的网络视频播放平台,爱奇艺由全球最大的中文搜索引擎——百度创立,是国内首家专注于提供免费、高清网络视频服务的大型专业网站。

工作地点:北京海淀区海淀北一街2号鸿城拓展大厦11层

工作职责:
-带领数据库运维小组维护数据库的正常运行和应急响应
-制定和改进应急预案、策略和流程,提高服务运行质量
-配合相关部门完善服务运维体系 ,制定和改进应急预案、策略
-负责团队管理和员工培养,制定部门工作规划,负责相关部门进行沟通与协作
职位要求:
-熟悉MySQL或Oracle数据库的运行机制和体系架构
-精通/熟悉SQL,精通数据库设计
-熟悉Linux/Unix操作系统,具有良好的Shell/Perl编程能力
-抗压能力强,有强烈的责任心,良好的沟通能力
-有专职DBA工作经验优先

有意者请和我联系。

大分区使用xfs文件系统存储备份遇到的问题

日前,同事反馈一个问题:在一个大分区(24T)中使用xfs文件系统,用来做历史文件备份,突然提示没有磁盘空间错误,先检查下:

[root@imysql ~]# df -hT
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/sdb1      xfs     19T   16T  2.4T  88% /backup

[root@imysql ~]# df -hi
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sdb1               9.3G    3.4M    9.3G    1% /backup

可以看到,不管是物理空间,还是inode,都还有很多余量,那为何还会报告磁盘空间不够呢?
查询了下XFS FAQ,发现有一段:

技术相关: 

页面

Subscribe to iMySQL | 老叶茶馆 RSS