您的位置:首页 > 运维架构 > Linux

linux mysql问题集

2016-07-22 00:28 597 查看

   原来的机器上有mysql5.7的版本,最近在安装gitlab的时候,自动安装了rpm包的mysql5.1,导致原来的mysqld出现了一系列的问题。

问题log可以通过 /var/log/mysqld.log来查看,如果没有输出日志的话,可以在/etc/my.cnf  配置文件的[mysqld]

           log-error=/var/log/mysqld.log

问题1: 原来我用通用二进制安装的mysql5.7无法使用service mysqld stop,所有后来我使用

                原因:  由于我在进行gitlab安装的时候,出现了自带安装了mysql,可能是这个原因导致了/etc/init.d/mysqld这个服务文件被覆盖。

解决方法:killall
-9 mysqld 强制将所有的mysqld进制杀掉

问题2:强制关闭了msyqld后,出现了service msyqld start 启动失败,MySQL Daemon
failed to start. Starting mysqld: [FAILED] 

在/var/log/mysqld.log中可以看到

key_buffer_size=402653184

read_buffer_size=2097152

max_used_connections=23

max_threads=151

threads_connected=11

It is possible that mysqld could use up to 

key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 1013277 K

bytes of memory

所以我在/etc/my.cnf修改了       read_buffer_size,sort_buffer_size
的值,发现并不起作用

 我猜测原因:主要是因为在进行gitlab安装的时候,rpm安装mysqld的时候,将/etc/init.d/mysqld的shell脚本覆盖成了msyqld5.1的版本的原因,后来我将原来/usr/local/mysql/support-files下的mysql.server重新替换到/etc/init.d/mysqld,再进行service  mysqld start 就成功了。(/etc/init.d/mysqld是shell脚本,对其解读可以更深入了解原因)

ps -ef |grep mysqld   可以查看到详细的信息



从上面可以看到现在的mysqld使用的是socket ,datadir,log-error,这些内容在/etc/my.cnf的[mysqld]进行修改

问题3:出现mysql 连接mysqld失败的原因 Can't connect to local MySQL server through socket                  

            '/var/lib/mysql/mysql.sock'

        原因:主要是直接使用mysql  ,系统先匹配使用了rpm安装的mysql客户端,而这个客户端是通 过/var/lib/mysql/mysql.sock连接到mysqld的,而mysqld的socket=/tmp/mysql.sock的,所以没办法通过本机的socket连接上去

(补充:which是查找命令是否存在,以及命令的存放位置在哪儿。

               whereis只能用于搜索程序名,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件

                (参数-s)。如果省略参数,  
                                   则返回所有信息。

               find是最常用和最强大的查找命令。它能做到实时查找,精确查找,但速度慢。)



从上图可看出:rpm包安装的mysql客户端命令是在/usr/bin/mysql   ,而mysql5.7 安装的mysql客户端是在/usr/local/mysql/bin/mysql;通过which mysql输入了/usr/bin/mysql就说明了直接使用mysql的话会优先匹配到

rpm包安装的mysql的客户端。

如果你想使用mysql5.7的客户端就需要你特定的指明使用的是那个路径下的mysql客户端



从上图可以看出,如果要使用特定的mysql的话就需要指明路径

    (补充说明:Version: '5.7.11'  socket: '/tmp/mysql.sock'  port: 3306  MySQL Community Server (GPL)

    当你使用service mysqld start的时候,可以通过/var/log/mysqld.log的日志文件看到这些信息)

问题4:Incorrect information in file xx.frm

                 

                 原因:出现这种问题的主要就是因为mysql连接到的mysqld版本不匹配

           解决:可以让mysql客户端连接到正确的mysqld,或者将其中一个mysqld和mysql客户端卸载掉

                      或者修改删除一个客户端(也是为了匹配到正确的mysqld)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: