Chinaunix首页 | 论坛 | 博客
  • 博客访问: 108007
  • 博文数量: 32
  • 博客积分: 1445
  • 博客等级: 上尉
  • 技术积分: 175
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-29 13:58
文章分类
文章存档

2014年(3)

2012年(27)

2010年(2)

我的朋友

分类:

2012-10-18 14:18:41

原文地址:mysql常见问题 作者:qingheliu

一:
出现这个问题,可能是mysql.sock不存在,或者找不到,或者文件损害需要重新建立连接
1.查看mysql.sock地址是否是正确地址
我通过vim /etc/my.cnf,修改了[mysqld]选项下面的socket的值
socket=/usr/local/mysql/var/mysql.sock   # 看看是否是mysql.sock的准确地址
或可以通过find / -name mysql.sock来查看mysql.sock文件的位置!
2 为/tmp/mysql.sock 建立连接
ln -s /usr/local/mysql/varmysql.sock /tmp/mysql.sock
3.怎样保护“/tmp/mysql.sock   ”不被删除
如果你有这个问题,事实上任何人可以删除MySQL通讯套接字“/tmp/mysql.sock”,在Unix的大多数版本上,你能通过为其设置sticky(t)位来保护你的“/tmp”文件系统。作为root登录并且做下列事情:
shell>   chmod   +t   /tmp
这将保护你的“/tmp”文件系统使得文件仅能由他们的所有者或超级用户(root)删除。
你能执行ls   -ld   /tmp检查sticky位是否被设置,如果最后一位许可位是t,该位被设置了

二:mysql out of memory 
现象:mysql运行一段时间后,对外提供服务不正常! 准备先关闭mysql ,然后再重启mysql服务
mysqladmin关闭mysqld服务时有如附件的提示:
解决方法:添加物理内存或修改my.cnf配置文件!

三:修改某个db的默认编码格式和显示db支持的编码格式
见附件:
4:朋友电话告知帮忙处理一个web连接不上db的问题!
查看web程序的lib目录下有mysql驱动jar包,版本也匹配!查看mysql服务是否正常?正常,查看防火墙上是否开放了3306端口? 开放了!但用户用一个最简单test.jsp(仅仅是测试数据库连接的最简单程序) ,但一直提示数据库连接失败,很是奇怪,原来是/etc/my.cnf中添加了--skip-network的缘故!注释掉该行就可以了!
5: [ERROR] /usr/local/mysql/bin/mysqld: Sort aborted: Server shutdown in progress

There are two main reasons for this error message to show:

 

1) The MySQL query you are trying to execute takes too long and the MySQL server times out.

The solution for this issue is to optimize your database for the queries which fail.

 

2) You have a crashed table in your database.

The solution in this case is to  and  your database.

 

If a particular table crashes often and repairing/optimizing it does not help,  this most probably means that the table's structure is not working properly with our MySQL server setup. In such cases the easiest way to fix a crashed MyISAM table for good is to change its database engine from MyISAM to InnoDB


6:mysqldump中--default-character-set参数理解:

7:太多的sleep进程
mysql -uroot -p***后登陆数据库,show proceelist;发现有太多的sleep进程,见附件!

原因:my.cnf中的wait_timeout和interactive_timeout 设置的太大!
my.cnf中的相关设置如下:

wait_timeout            = 64800

interactive_timeout     = 64800

将其修改为:

wait_timeout            = 100

interactive_timeout     = 100
问题即可正常!
8:有一段时间测试两个数据库间同步,#我们的环境比较特殊不适合用mysql master/slave,有几天测试使用rsync同步数据库下的表,发现使用rsync同步后,表经常损坏!
首先要修复表,修复的方法:
mysqlcheck  -uroot –p***  --repair --extended  mydb
9:有时候为了确保数据一致性,需要刷新mysql 缓存
方法见附件:

10:有时候也可以优化数据库:
mysqlcheck -u root -p**** --auto-repair --optimize --all-databases ##自动修复优化所有数据库
11:修改使得root远程登陆
:默认情况下,不允许root远程登陆,进行下面修改后就可以使得root远程登陆



12: shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory

解决方法:

该错误表示 getcwd 命令无法定位到当前工作目录。一般来说是因为你 cd 到了某个目录之后 rm 了这个目录,这时去执行某些 service 脚本的时候就会报 getcwd 错误。只需要 cd 到任何一个实际存在的目录下在执行命令即可。

13:配置master/slave时遇到两个问题

13.1:

在slave上执行show master status;居然有显示,

原因:我在slave上也开启了log-bin文件!

解决方法:将该行注释掉,然后show master status就不会有结果显示了!

13.2:在配置master/slave时,

使用了grant all on test.* to ‘slaveuser’@’%’ identified by ‘slaveuser’;  ##应该使用grant all on *.* to ‘slaveuser’@’%’ identified by ‘slaveuser’; 当然all的权限太大了,可以适当的调小!

导致了就算slaveuser的密码正确也会提示密码错误!

14:为了安装mysql5.5.X 编译cmake,结果出错,见附件

15:mysql下添加一个用户,对几个数据库都有读和写权限,见附件!

16:telnet测试mysql 3306端口

开始怀疑防火墙有问题,再次查看,防火墙是正常的,其实这个返回结果是正常的!可以创建一个测试用户(利用grant),利用mysql client端登录!
17:清理mysql缓存,

18:mysql硬件相关选择


阅读(498) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~