Chinaunix首页 | 论坛 | 博客
  • 博客访问: 267314
  • 博文数量: 30
  • 博客积分: 608
  • 博客等级: 中士
  • 技术积分: 370
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-14 23:01
个人简介

++++++++++++++++++

文章分类

全部博文(30)

文章存档

2013年(2)

2012年(2)

2011年(26)

分类: Mysql/postgreSQL

2011-03-24 12:39:52

1:mysql主从架构。日志错误类型
 
错误原因:slave在读取mysql-bin.index寻找还原点,即mysql-bin.000699时出错,master数据库没有这个binlog(可能被删除或者其他原因),所以无法还原
解决办法:清除slave数据库的binlog,relaylog,让slave数据库重新从master数据库上获取最新的binlog文件,然后重启slave数据库即可解决
 
2:在mysql主从架构中同步出现warning
The syntax 'for replication startup options' is deprecated and will be removed in MySQL 5.2. Please use 'CHANGE MASTER' instead
 
警告原因:配置文件里有某些选项是和5.2版本不兼容的,被mysql屏蔽了,这个不影响同步。
Neither --relay-log nor --relay-log-index were used; so replication may break when this MySQL server acts as a slave and has his hostname changed!! Please use '--relay-log=localhost-relay-bin' to avoid this problem.
由于你的配置文件里面没有 --relay-log或者--relay-log-index,当你的服务器作为slave并且更改主机名的时候,同步会被停止。如果你一直没有改主机名就无所谓
 
3:[Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295
 
原因:这是一个warning,不是一个error,warning的原因官方说法是一个mysql bug,bug号#35346,具体的解决办法,很简单只需要设置这个参数值即可,但是据官方的说法,你还是不要轻易改变这个参数值,这里有两个链接比较好
 
4:Error: mysql conflicts with MySQL-server
 
原因:说下产生此错误的环境,机器原来是通过yum安装的mysql-server及mysql,版本号是5.0.77-4.el5_4.2,后来由于需要更高的版本,所以下载了最新的5.5.10-1.rhel5.i386.rpm,这是首先我
rpm -e mysql-server --nodeps
 然后通过yum安装那个新版本即发生错误,原以为是没卸载干净,就删除mysql的安装目录,删除后安装仍然出现错误,仔细一看错误是mysql与Mysql-server发生冲突,抱着试试看的态度写在mysql客户端,哎,还真好了,由此看来发生次错误的原因是mysql版本兼容的问题
 
5:configure: error: Could not find libmysqlclient in ' /usr/lib /usr/lib/mysql 在编辑supersmack过程中发生了此错误
 
原因:其实此错误是很正常的一般错误,提示加载不了需要的库文件,之所以写出是因为在/usr/lib/mysql下确实有提示需要的库文件,why?libmysqlclient是what?
 
6:不能授权用户replication权限 grant replication slave on develop.*  to   identified by '123456' 报错:ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES
 
原因:查找中
 
7:mysql的perl,python连接接口,驱动perl-DBI,perl-DBD-mysql
   当mysql client需要连接服务器时,比如安装一些有perl,python写的管理工具,如maatkit,这个管理工具需要连接数据库,这是需要安装类如perl-DBI(perl database interface),这是perl连接mysql的接口,要实现能连接这个接口就需要安装接口的驱动perl-DBD-mysql(perl database drive mysql),安装过程都比较简单
   1:perl  Makefie.pl (在安装DBD是可能需要mysql_config这个工具,提示没有,通过安装mysql-                         devel即可解决)
   2:make install

 
 8:Error writing file '/tmp/MYqlGnfn' (Errcode: 28)")
   这个错误google解释很多,而且解释都是正确的就是 /tmp目录已满,容易造成疑惑的是去查看tmp目录时候发现下面只有几个文件,没有满,我在这里郑重解释一下:tmp目录在执行过程中确实由于临时表满了,只是当报出28错误时,mysql已经删除了临时表,所以当sql执行结束看到tmp目    录并没有满,这点很重要
    扩展:mysql产生临时表的原因
   当系统需要internal临时表的时候,首先在内存初始化为memory类型的表,随着数据的增长,mysql自动把内存中memory类型表转变为磁盘上myisam表,内存中的临时表是取变量 tmp_table_size和max_heap_table_size两个中最小的一个
   mysql产生临时表的前提
  A. 表中出现blob和text列
   B. 超过512bytes的group by或distinct
   C. 当有union和union all被使用时,select list超过512bytes
  NOTICE:可以通过explain查看“Extra”列,看其是否有“Using temporary”
阅读(2211) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~