1.MySQL无法重启问题解决Warning: World-writable config file ‘/etc/my.cnf’ is ignored

原因

今天帮朋友维护服务器,在关闭数据库的命令发现mysql关不了,提示Warning: World-writable config file '/etc/my.cnf' is ignored ,大概意思是权限全局可写,任何一个用户都可以写。mysql担心这种文件被其他用户恶意修改,所以忽略掉这个配置文件。这样mysql无法关闭。

[root@ttlsa ~]# service mysqld stop

Warning: World-writable config file '/etc/my.cnf' is ignored

Warning: World-writable config file '/etc/my.cnf' is ignored

MySQL manager or server PID file could not be found![FAILED]

查看my.cnf的权限

[root@ttlsa ~]# ls -l /etc/my.cnf

-rwxrwxrwx 1 root root 4878 Jul 30 11:31 /etc/my.cnf

权限777,任何一个用户都可以改my.cnf,存在很大的安全隐患.

解决方案:

修复MySQL问题

[root@ttlsa ~]# chmod 644 /etc/my.cnf

my.cnf设置为用户可读写,其他用户不可写.

2.Can't connect to MySQL server on 'localhost' (10061)

原因

不能连接到 localhost 上的mysql

解决方案:

这说明“localhost”计算机是存在的,但在这台机器上却没提供MySQL服务。

需要启动这台机器上的MySQL服务,如果机子负载太高没空相应请求也会产生这个错误。

解决:既然没有启动那就去启动这台机子的mysql。如果启动不成功,多数是因为你的my.ini配置的有问题。重新配置其即可。

如果觉得mysql负载异常,可以到mysql/bin 的目录下执行mysqladmin -uroot -p123 processlist来查看mysql当前的进程。

3.Unknown MySQL Server Host 'localhosadst' (11001)

原因

未知的MySQL服务器 localhosadst,服务器 localhosasdst 不存在。或者根本无法连接。

解决方案:

仔细检查自己论坛下面的 ./config.inc.php 找到$dbhost重新设置为正确的mysql 服务器地址。

4.Access denied for user: 'roota@localhost' (Using password: YES)

原因

用户 roota 访问 localhost 被拒绝(没有允许通过),造成这个错误一般数据库用户名和密码相对mysql服务器不正确

解决方案:

仔细检查自己论坛下面的 ./config.inc.php 找到$dbuser、$dbpw核实后重新设置保存即可。

5.Access denied for user: 'red@localhost' to database 'newbbs'

原因

用户 red 在localhost 服务器上没有权限操作数据库newbbs

这个提示和问题三是不同的。那个是在连接数据库的时候就被阻止了,而这个错误是在对数据库进行操作时引起的。比如在select update等等。这个是因为该用户没有操作数据库相应的权力。比如select 这个操作在mysql.user.Select_priv里记录 Y 可以操作N 不可以操作。

解决方案:

如果是自己的独立主机那么更新mysql.user 的相应用户记录,比如这里要更新的用户为red 。或者直接修改 ./config.inc.php 为其配置一个具有对数据库操作权限的用户

或者通过如下的命令来更新授权grant all privileges on dbname.* to 'user'@'localhost' identified by 'password’

提示:更新了mysql库中的记录一定要重启mysql服务器才能使更新生效

6.No Database Selected

原因

产生的原因有两种。

config.inc.php 里面$dbname设置的不对。致使数据库根本不存在,所以在 $db->select_db($dbname); 时返回了false

和上面问题四是一样的,数据库用户没有select权限,同样会导致这样的错误。当你发现config.inc.php的设置没有任何问题,但还是提示这个错误,那一定就是这种情况了。

解决方案:

对症下药

打开config.inc.php 找到$dbname核实重新配置并保存

同问题四的解决方法

7.Can't open file: 'xxx_forums.MYI'. (errno: 145)

原因

这种情况是不能打开 cdb_forums.MYI 造成的,引起这种情况可能的原因有:

1、服务器非正常关机,数据库所在空间已满,或一些其它未知的原因,对数据库表造成了损坏。

2、类 unix 操作系统下直接将数据库文件拷贝移动会因为文件的属组问题而产生这个错误。

解决方案:

1、修复数据表

可以使用下面的两种方式修复数据表:(第一种方法仅适合独立主机用户)

1)使用 myisamchk ,MySQL 自带了专门用户数据表检查和修复的工具 —— myisamchk 。更改当前目录到 MySQL/bin 下面,一般情况下只有在这个下面才能运行 myisamchk 命令。常用的修复命令为:myisamchk -r 数据文件目录/数据表名.MYI;

2)通过 phpMyAdmin 修复, phpMyAdmin 带有修复数据表的功能,进入到某一个表中后,点击“操作”,在下方的“表维护”中点击“修复表”即可。

注意:以上两种修复方式在执行前一定要备份数据库。

2、修改文件的属组(仅适合独立主机用户)

复制数据库文件的过程中没有将数据库文件设置为 MySQL 运行的帐号可读写(一般适用于 Linux 和 FreeBSD 用户)。

8.Table 'test.xxx_sessions' doesn't exist

翻译:xxxxx表不存在

原因

在执行sql语句时没有找到表,比如:SELECT * FROM xxx_members WHERE uid=’XX’ 这里如果表xxx_members不存在于$dbname库里,那么就会提示这个错误。具体可分为以下三种情况来讨论:

安装插件或者hack时修改了程序文件,而忘记了对数据库作相应的升级。

后台使用了不完全备份,导入数据时没有导入到已经安装了相应版本的论坛的数据库中。

解决方案:

同样对症下药,不同的原因不同的处理方法。

仔细对照插件作者提供的安装说明,把遗漏的对数据库的操作补上,如果仍然不能解决问题,那么应该怀疑该插件的可用性了。去咨询一下插件作者,或者将其卸载。

不要张冠李戴,多大的脚就穿多大的鞋。总之使得程序文件和数据库配套即可.

9.Unknown column 'column_name' in 'field list'

原因

在执行sql语句是出现了指定表中没有的字段名称,就会出现这个错误。具体导致的原因可分为以下两种安装插件或者hack时修改了程序文件,而忘记了对数据库作相应的升级。

程序文件和数据库不配套,比如d2.5的数据库配置给d4.1的程序来用肯定会出现这个错误。

解决方案:

导致的原因和问题八的1和 3是相同的,所以解决方法也一样。

10.You have an error in your SQL syntax

原因

论坛标准的程序是没有sql语法错误的。所以造成这个错误的原因一般就两类:安装插件或擅自修改程序。

不同的数据库版本数据库导出导入,比如MySQL4.1的数据在导出的语句包含了MySQL4.0没有的功能,像字符集的设定,这时如果将这些sql导入到MySQL4.0的时候就会产生sql语法错误。

解决方案:

仔细检查看到底是哪里的错误,将其修正,实在不行就用标准程序把出错的程序替换。

在数据库备份的时候要留意,如果不打算倒入到其他版本的mysql中则不用特殊考虑,反之要特殊的设定。使用DZ4.1的后台数据备份,可以按照提示去设定想要的格式。独立主机的也可以在到处的时候将其导出为mysql4.0的格式。

mysqldump -uroot -p --default-character-set=latin1 --set-charset=gbk --skip-opt databse > test.sql

11.Duplicate entry 'xxx' for key 1

翻译:插入 xxx 使索引1重复

原因

索引如果是primary unique这两两种,那么数据表的数据对应的这个字段就必须保证其每条记录的唯一性。否则就会产生这个错误。

一般发生在对数据库写操作的时候,例如Discuz!4.1论坛程序要求所有会员的用户名username必须唯一,即username的索引是 unique,这时如果强行往cdb_members表里插入一个已有的username的记录就会发上这个错误,或者将一条记录的username更新 为已有的一个username。

改变表结构的时候也有可能导致这个错误。例如 Discuz!4.0论坛的数据库中cdb_members.username 的索引类型是index这个时候是允许有相同username的记录存在的,在升级到4.1的时候,因为要将username的索引由原来的index变 为unique。如果这时cdb_members里存在有相同的username的记录,那么就会引发这个错误。

导出数据据时有时会因为一些原因(作者目前还不清楚)导致同一条记录被重复导出,那么这个备份数据在导入的时候出现这个错误是在所难免的了。

修改了auto_increment的值,致使“下一个 Autoindex”为一条已经存在的记录。

解决方案:

两种思路,一是破坏掉唯一性的索引。二是把重复的数据记录干掉,只保留一条。很显然第一种思路是不可取的。那么按照二的思路我们得出以下几种解决方法,对应上面的i ii iii

按照错误提示里的信息到数据库中将重复的记录删除,仅保留一条即可。之后继续执行升级操作。

这种情况发生的概率很小,可以用文本编辑器打开备份文档,查找重复的信息。将其多余的拿掉,仅保留一条即可。

查询出表中auto_increment最大的一条记录,设置auto_incerment比其大一即可。

PS:repaire table "表名“,可以暂时解决问题。

12.Duplicate key name 'xxx'

翻译:索引名重复

原因

要创建的索引已经存在了,就会引发这个错误,这个错误多发生在升级的时候。可能是已经升级过的,重复升级引起的错误。也有可能是之前用户擅自加的索引,刚好与升级文件中的所以相同了。

解决方案:

看看已经存在的索引和要添加的索引是否一样,一样的话可以跳过这条sql语句,如果不一样那么现删除已存在的所以,之后再执行。

13.Duplicate column name 'xxx'

翻译:字段名xxx重复

原因

添加的字段xxx已经存在,多发生在升级过程中,与问题十二的产生是一样的。

解决方案:

看一下已经存在的字段是否和将要添加的字段属性完全相同,如果相同则可以跳过不执行这句sql,如果不一样则删除掉这个字段。之后继续执行升级程序。

14.Table 'xxx' already exists

翻译:数据表xxx已经存在

原因

xxx表已经存在于库中,再次试图创建这个名字的表就会引发这个错误。同样多发生在论坛的升级中。类似于问题十二。

解决方案:

看看已经存在的表是否和将要创建的表完全一样,一样的话可以跳过不执行这个sql,否则请将存在的表先删除,之后继续执行升级文件。

15.Can't create database 'xxx'. Database exists

不能创建数据库xxx,数据库已经存在

原因

一个mysql下面的数据库名称必须保证唯一性,否则就会有这个错误。

解决方案:

把已经存在的数据库改名或者把将要创建的数据库改名,总之不让他们的名称冲突。

16.小结(针对问题 11\12\13\14\15)

此类问题错误提示中都暗藏一个关键词duplicate(重复)

那么对于mysql数据库来说什么东西是不能重复的呢?

数据库 database

同一个数据库下数据表 table

同一个数据表下字段 column

同一个数据表下索引 key

同一个数据表在索引唯一(UNIQUE PRIMARY)的情况下记录中的这些字段不可以重复

17.Unknown system variable 'NAMES'

翻译:未知的系统变量NAMES

原因

Mysql版本不支持字符集设定,此时强行设定字符集就会出现这个错误。

解决方案:

将sql语句中的SET NAMES ‘xxx’ 语句去掉

21/212>

mysql数据库常见的错误_MySQL数据库常见错误及解决方案相关推荐

  1. linux mysql 实战_Linux平台MySQL多实例项目实施_MySQL数据库基础与项目实战06

    Linux平台MySQL多实例项目实施_MySQL数据库基础与项目实战06 视频教程学习地址 Oracle/MySQL数据库学习专用QQ群:336282998.189070296 学完风哥本课程能熟悉 ...

  2. mysql部门人员排序设计_MySQL数据库访问性能优化

    MYSQL应该是最流行的WEB后端数据库.大量应用于PHP,Ruby,Python,Java 等Web语言开发项目中,无论NOSQL发展多么快,都不影响大部分架构师选择MYSQL作为数据存储. MYS ...

  3. mysql数据库怎么冷备份恢复_MySQL数据库的备份与恢复

    一.数据备份的重要性 在生产环境中,数据的安全性至关重要 任何数据的丢失都可能产生严重的后果 造成数据丢失的原因 ·程序错误 ·人为操作错误 ·运算错误 ·磁盘故障 ·灾难(如火灾.地震等) 二.数据 ...

  4. mysql数据库原理及设计_MySQL数据库原理、设计与应用

    内容简介 本书是面向MySQL数据库初学者推出的一本入门教材,以通俗易懂的语言.丰富实用的案例,详细讲解了MySQL的开发和管理技术. 全书共12章.第1章讲解了数据库基本概念和MySQL的安装步骤: ...

  5. mysql update 多个字段_MySQL数据库基础

    MySQL基础 今日目标 1. MySQL数据库简单介绍2. MySQL安装和使用3. SQL[重点]语法和关键字,实现对记录的增删改查 一 数据库介绍 1.1 什么是数据库? 存储数据的仓库,本质上 ...

  6. mysql的sleep线程多久_MySQL数据库sleep线程过多,怎么办?

    推荐文章 要想知道每个数据库的大小的话,步骤如下:1.进入information_schema 数据库(存放了其他的数据库的信息) use information_schema; 2.查询所有数据的大 ...

  7. mysql数据库字段类型大全_mysql数据库字段类型详解

    MySQL支持大量的列类型,它可以被分为3类:数字类型.日期和时间类型以及字符串(字符)类型.本节首先给出可用类型的一个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述. ...

  8. mysql数据库表类型设置_mysql数据库表的类型介绍

    目录 前言 之前我们讲了下载安装数据库,还有如何卸载(虽然直接重装系统就好) 那么现在让我们来讲讲 """ 1.数据库与表的剩余操作 编码配置.引擎介绍 2.数据库字段的 ...

  9. mysql安装后第一次操作_MySQL数据库之mysql 安装成功以及第一次安装成功初始化密码操作...

    本文主要向大家介绍了MySQL数据库之mysql 安装成功以及第一次安装成功初始化密码操作 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 一 把文件解压到一个目录下 技术分享图 ...

最新文章

  1. commons-beanutils的使用
  2. please get a license from www.texturepacker.com
  3. python两种生成md5的方法
  4. c 语言读文件数据库,C语言文件怎么读取?
  5. python博客编程_python编程
  6. 车牌号专用键盘设计和正则验证
  7. 人工智能中国专利技术分析报告发布,百度三年蝉联榜首
  8. AcheGesture 简介(使用方法 / 中文教程)
  9. git之提交本地代码到远端指定仓库
  10. 全面详解c语言使用cJSON解析JSON字符
  11. KK集团完成门店系统一期上云
  12. 图数据库实战 AWS Neptune Gremlin CloudFormation
  13. 产业分析:阿里巴巴碳中和行动报告
  14. 前端H5面试题Js: 数组的常用方法有哪些?
  15. 实名认证失败_公安实名认证失败是什么原因
  16. SqlServer安装Northwind数据库的通用方法
  17. 经纬财富:徐州炒白银需要注意哪些技术指标
  18. 关于“马太效应”,“蝴蝶效应”、“鲶鱼效应”的解释(转贴)
  19. postgresql中mysql外表建立
  20. 多玩我的世界盒子手机版怎么联机?我的世界盒子电脑版怎么联机?

热门文章

  1. 全志 Tina Linux 存储介质切换:eMMC,SPI NAND,SPI NOR,SD Card,SD NAND
  2. 自动驾驶仿真工具之AirSim简介
  3. 文件路径问题( ./ 和 ../ 和 @/ )
  4. 【原创】kettle转换组件杂记-【javascript组件】获取当前时间的前一天/后一天
  5. mysql缓存优化,MySQL优化步骤及my.cnf缓存优化
  6. 8万字智慧旅游景区信息化建设方案word
  7. 批处理应用:IE问题修复
  8. OS-机械硬盘的磁盘初始化
  9. 欧拉函数和莫比乌斯反演(Mobius)
  10. 计算机应用基础小结,计算机应用基础教学小结