怎么查mysql报错 mysql查询报错

启动mysql报错怎么办?

1、原因:可能是/usr/local/mysql/mysql.pid文件没有写的权限;

创新互联是一家专业提供庐江企业网站建设,专注与网站设计制作、成都网站建设、H5响应式网站、小程序制作等业务。10年已为庐江众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。

解决方法 :给予权限,执行 “chmod 775 /usr/local/mysql/ -R” 然后重新启动mysqld。

2、原因:可能进程里已经存在mysql进程;

解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kill -9 进程号”杀死,然后重新启动mysqld。

3、原因:可能是第二次在机器上安装mysql,有残余数据影响了服务的启动;

解决方法:去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。

4、原因:mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir);

解决方法:请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data。

5、原因:skip-federated字段问题;

解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。

6、原因:错误日志目录不存在;

解决方法:使用“chown” “chmod”命令赋予mysql所有者及权限。

7、原因:如果是centos系统,默认会开启selinux;

解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。

8、原因:log-bin路径错误;

解决方法:查看对应数据库下的error log,例如我的数据库为,/usr/local/mysql/var目录,其下的localhost.localdomain.err为错误日志,只要把其下的ib_logfile*删除即可,重启mysql即可。

一、Linux下MySQL的启动与停止

1、Mysql启动、停止、重启常用命令

a、启动方式

(1)使用 service 启动:

[root@localhost /]# service mysqld start (5.0版本是mysqld)

[root@szxdb etc]# service mysql start (5.5.7版本是mysql)

(2)使用 mysqld 脚本启动:

/etc/inint.d/mysqld start

(3)使用 safe_mysqld 启动:

safe_mysqld

b、停止方式

(1)使用 service 启动:service mysqld stop

(2)使用 mysqld 脚本启动:/etc/inint.d/mysqld stop

(3)mysqladmin shutdown

c、重启方式

(1)使用 service 启动:

service mysqld restart

service mysql restart (5.5.7版本命令)

(2)使用 mysqld 脚本启动:

/etc/init.d/mysqld restart

MySQL查询information_schema.columns报错

1、DTS数据同步报错

2、源端用户user1拥有所有database的权限,包括select权限

3、使用user1用户登录源端MySQL,当指定database为database1,select被拒绝

4、从MySQL的物理表文件看,表的.frm和.ibd文件是正常的

5、将报错的表table1备份为table2,删除table1,select information_schema.columns、information_schema.tables可执行且不报错

6、将table2重命名为table1,select information_schema.columns、information_schema.tables再次报一样的错误

7、将table1重命名为table2,select information_schema.columns、information_schema.tables可执行且不报错

8、原因判断

参考:

其他用户也遇到了与MySQL对象相关的information_schema.columns、information_schema.tables的select报错,但是涉及的MySQL对象为view,而我们这里为table。

view可以指定definer等,而table1的创建语法中没有找到这样的字眼。但是推测以某一种方式与definer相关联。

9、辅证

MySQL server has gone away报错原因分析

在执行一个sql文件时 mysql -h 127.0.0.1 -uroot study -e"source b.sql" ,报错 MySQL server has gone away 。上网查解决办法,按照网上的解决方法一步步操作,最终找到原因并且解决了,觉得有必要总结下这个问题发生的原因及解决办法,避免后面再继续踩坑。

执行以下命令,查看mysql的运行时长。

uptime数值很大,表明mysql服务运行很久,说明最近MySQL服务器没有重启过。

或者查看MySQL的报错日志,看看有没有重启的信息。

如果日志没有相关信息,也表明mysql服务最近没有重启过,可以继续检查下面几项情况。

如果程序使用的是长连接,则这种情况的可能性会比较大。

即,某个长连接很久没有新的请求发起,达到了server端的timeout,被server强行关闭。

此后再通过这个connection发起查询的时候,就会报错server has gone away。

如下命令设置连接超时为5秒。

再执行 SELECT NOW(); ,通过这个connection发起查询的时候,就会报错server has gone away。

实际上wait_timeout=28800,不是造成文章开头的原因。

这种情况和情况2相似,只是发起者是DBA或者其他job。发现有长时间的慢查询执行kill xxx导致。

当查询的结果集超过 max_allowed_packet 也会出现这样的报错。

查看执行SQL执行文件大小是否超过 max_allowed_packet ,如果超过则需要调整参数,或者优化语句。

计算发现SQL执行文件最大只能是16M,而文章开头执行的a.sql有24M。

修改参数,max_allowed_packet 调整为28M。

重新再执行`mysql -h 127.0.0.1 -uroot study -e"source b.sql"``成功,说明原因是情况4造成的。


文章名称:怎么查mysql报错 mysql查询报错
文章来源:http://myzitong.com/article/ddcssed.html