分享一下Mysql常见的几个错误问题及解决方法_Mysql

1.问题: mysql DNS反解:skip-name-resolve
 
错误日志有类似警告:

1.120119 16:26:04 [Warning] IP address '192.168.1.10' could not be resolved: Name or service not known
2.120119 16:26:04 [Warning] IP address '192.168.1.14' could not be resolved: Name or service not known
3.120119 16:26:04 [Warning] IP address '192.168.1.17' could not be resolved: Name or service not known

通过show processlist发现大量类似如下的连接:

1.|592|unauthenticated user|192.168.1.10:35320|NULL|Connect| |login|NULL|
2.|593|unauthenticated user|192.168.1.14:35321|NULL|Connect| |login|NULL|
3.|594|unauthenticated user|192.168.1.17:35322|NULL|Connect| |login|NULL|

 
skip-name-resolve 参数的作用:不再进行反解析(ip不反解成域名),这样可以加快数据库的反应时间。
 
修改配置文件添加并需要重启:

[mysqld]
skip-name-resolve
 
2.问题错误日志:Error: Can't create a new thread (errno 12)

数据库服务器问题,数据库操作无法创建新线程。一般是有以下3个方面的原因:
1)、MySQL 线程开得太多。
2)、服务器系统内存溢出。
3)、环境软件损坏或系统损坏。
 
【问题解决】

1.1)进入 phpmyadmin 的 mysql 数据库中的 user 表,对数据库的用户进行编辑,修改 max_connections 的值。适当的改小一点。
2.2)联系服务器管理员检查服务器的内存和系统是否正常,如果服务器内存紧张,请检查一下哪些进程消耗了服务器的内存,同时考虑是否增加服务器的内存来提高整个系统的负载能力。
3.3)mysql版本更改为稳定版本
4.4)优化网站程序的sql等等
 
3.  操作报错:ERROR 1010 (HY000): Error dropping database

1.mysql> drop database xjtrace;
2.ERROR 1010 (HY000): Error dropping database (can't rmdir './xjtrace/

在做数据库删除时出现这种提示,其原因是在database下面含有自己放进去的文件,譬如*.txt文件或*.sql文件等,只要进去把这个文件删了在执行。

1.mysql>drop database xjtrace;
2.Query OK, 0 rows affected (0.00 sec)

果断删除即可!!
 
4.导出数据很快,导入到新库时却很慢:
 
MySQL导出的SQL语句在导入时有可能会非常非常慢,经历过导入仅400万条记录,竟用了近2个小时。在导出时合理使用几个参数,可以大大加快导入的速度。
 
-e 使用包括几个VALUES列表的多行INSERT语法;
--max_allowed_packet=XXX 客户端/服务器之间通信的缓存区的最大大小;
--net_buffer_length=XXX TCP/IP和套接字通信缓冲区大小,创建长度达net_buffer_length的行
注意:max_allowed_packet和net_buffer_length不能比目标数据库的配置数值大,否则可能出错。
 
首先确定目标库的参数值

mysql> show variables like 'max_allowed_packet';
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+
1 row in set (0.00 sec)

mysql> show variables like 'net_buffer_length';

+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| net_buffer_length | 16384 |
+-------------------+-------+
1 row in set (0.00 sec)

根据参数值书写mysqldump命令,如:

mysql>mysqldump -uroot -p   数据库名 -e --max_allowed_packet=1048576 -net_buffer_length=16384 > SQL文件
 
例如:

1.mysql> mysqldump -uroot -p xjtrace -e --max_allowed_packet=1048576 --net_buffer_length=16384 >xjtrace_data_`date +%F`.sql
 
之前2小时才能导入的sql现在几十秒就可以完成了。

时间: 2024-08-02 18:03:01

分享一下Mysql常见的几个错误问题及解决方法_Mysql的相关文章

PHP常见的6个错误提示及解决方法_php技巧

在php开发过程中,由于不知道向谁求助而心慌意乱地判断以为自己不适合学php.其实错误在每个人学习过程中都会碰到的,千万不要妄自菲薄.很多错误在报错的代码提示中已经告诉我们了,仔细看,不会就百度.现总结一些常见的php错误,以共享php新人.Php常见错误提示 一.Fatal error: Call to undefined function--函数不存在,可能的原因: 1.系统不存在这个函数且你也没自定义 2.有人会问,我在别的机器上就不报错.那是因为环境不同,这个函数在本机没开,怎么开?你百

MySQL修改my.cnf配置不生效的解决方法_Mysql

本文实例讲述了MySQL修改my.cnf配置不生效的解决方法.分享给大家供大家参考,具体如下: 一.问题: 修改了 my.cnf 配置文件后,却不生效,这是怎么回事? 二.原因: 我们注意到,这里只说了修改 my.cnf,并没有说清楚其绝对路径是哪个文件.也就是说,有可能修改的不是正确路径下的my.cnf文件. 在MySQL中,是允许存在多个 my.cnf 配置文件的,有的能对整个系统环境产生影响,例如:/etc/my.cnf.有的则只能影响个别用户,例如:~/.my.cnf. MySQL读取各

MySql中表单输入数据出现中文乱码的解决方法_Mysql

 MySQL会出现中文乱码的原因在于 1.server本身设定问题,一般来说是latin1 2.建库建表时没有制定编码格式. MySql中表单输入数据出现中文乱码的解决方法: 1.建库的时候 CREATE DATABASE test CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; 2.建表的时候 CREATE TABLE content ( text VARCHAR(100) ) ENGINE=InnoDB DEFAULT CHARSET=utf8

SQL Server 2005 安装遇到的错误提示和解决方法_Mysql

安装SQL Server 2005弄了好久,终于可以了...期间问题重重,想拿出来和大家一同分享的. 第一种错误显示: 无法在com+目录中安装和配置程序集 错误:-2146233087 无法在com+目录中安装和配置程序集c:\program files\Microsoft SQL Server\90\DTS\tasks\microsoft.sqlserver.MSMQTASK.DLL.  错误:-2146233087 sql server 安装时"无法在COM+目录中安装和配置程序"

mysql主从数据库不同步的2种解决方法_Mysql

今天发现Mysql的主从数据库没有同步 先上Master库: mysql>show processlist; 查看下进程是否Sleep太多.发现很正常. show master status; 也正常. mysql> show master status; +-------------------+----------+--------------+-------------------------------+ | File | Position | Binlog_Do_DB | Binlo

MySQL数据库innodb启动失败无法重启的解决方法_Mysql

问题介绍 电脑在使用过程中死机,重启后发现mysql没有启动成功,查看错误日志发现是innodb出现问题导致mysql启动失败. 错误日志 $ mysql.server start Starting MySQL . ERROR! The server quit without updating PID file (/usr/local/var/mysql/fdipzonedeMacBook-Air.local.pid). 22:08:37 mysqld_safe Starting mysqld

mysql启动提示mysql.host 不存在,启动失败的解决方法_Mysql

error 日志当中的记录: [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist 从发了帖子,只有人看,没有人回复,看到这种情况只能自己解决问题了,自己动手丰衣足食吗, 嗯... 你还别说,还真让我解决了问题,人啊,都是逼出来的,....没有办法,这个问题对于高手可能是很简单的问题 ,但是对我第一次摸mysql,确实怎么也弄不懂的问题. 好了闲话不多说 说一下我解决

mysql自动停止 Plugin FEDERATED is disabled 的完美解决方法_Mysql

这两天新买的服务器mysql总是自动停止,查了日志   9:13:57 [Note] MySQL: Normal shutdown   9:13:57 [Note] Event Scheduler: Purging the queue. 0 events   9:13:57  InnoDB: Starting shutdown...   9:13:58  InnoDB: Shutdown completed; log sequence number 0 44273   9:13:58 [Note

mysql误删root用户或者忘记root密码解决方法_Mysql

解决方法一: 到其他安装了Mysql的服务器(前提是要知道该服务器上Mysql的root用户密码),打开[Mysql的安装目录/var/mysql],将其中的user.frm.user.MYD.user.MYI三个文件拷贝到出问题服务器的[Mysql的安装目录/var/mysql]目录中.然后重启服务器. 解决方法二: 修改你的my.ini或my.cnf文件,在 [mysqld] 节下加入下面一行 skip-grant-tables 然后保存并重启 MySQL 服务. 下面你就可以以任何用户名密