网站之家技术交流论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: 叮叮

mysql相关问题处理

[复制链接]
 楼主| 发表于 2013-4-28 05:47:41 | 显示全部楼层
如何开启MySQL的远程帐号

开启 MySQL 的远程登陆帐号有两大步:
1、确定服务器上的防火墙没有阻止 3306 端口。
MySQL 默认的端口是 3306 ,需要确定防火墙没有阻止 3306 端口,否则远程是无法通过 3306 端口连接到 MySQL 的。
如果您在安装 MySQL 时指定了其他端口,请在防火墙中开启您指定的 MySQL 使用的端口号。
如果不知道怎样设置您的服务器上的防火墙,请向您的服务器管理员咨询。
2、增加允许远程连接 MySQL 用户并授权。
1)首先以 root 帐户登陆 MySQL
在 Windows 主机中点击开始菜单,运行,输入“cmd”,进入控制台,MySQL 的 bin 目录下,然后输入下面的命令。
在 Linux 主机中在命令提示行下输入下面的命令。
  1. > MySQL -uroot -p123456
复制代码
123456 为 root 用户的密码。

2)创建远程登陆用户并授权
  1. > grant all PRIVILEGES on discuz.* to ted@'123.123.123.123' identified by '123456';
复制代码
上面的语句表示将 discuz 数据库的所有权限授权给 ted 这个用户,允许 ted 用户在 123.123.123.123 这个 IP 进行远程登陆,并设置 ted 用户的密码为 123456 。
下面逐一分析所有的参数:
all PRIVILEGES 表示赋予所有的权限给指定用户,这里也可以替换为赋予某一具体的权限,例如:select,insert,update,delete,create,drop 等,具体权限间用“,”半角逗号分隔。
discuz.* 表示上面的权限是针对于哪个表的,discuz 指的是数据库,后面的 * 表示对于所有的表,由此可以推理出:对于全部数据库的全部表授权为“*.*”,对于某一数据库的全部表授权为“数据库名.*”,对于某一数据库的某一表授权为“数据库名.表名”。
ted 表示你要给哪个用户授权,这个用户可以是存在的用户,也可以是不存在的用户。
123.123.123.123 表示允许远程连接的 IP 地址,如果想不限制链接的 IP 则设置为“%”即可。
123456 为用户的密码。
执行了上面的语句后,再执行下面的语句,方可立即生效。
  1. > flush privileges;
复制代码



回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-4-28 05:48:14 | 显示全部楼层
Can't DROP '%s'; check that column/key exists

错误编号:1091
问题分析:
不能删除 %s 这个字段,这个字段名有可能不是 %s,可以是其它任何字段名,请确认该字段存在。
解决方法:
1、首先要到错误提示中出现的数据表中查看要删除的字段是否存在,只有存在才可以执行删除操作。
2、如果是安装插件后,利用插件自己的删除程序,可能会造成这样的提示,一般是插件的版本于当前的版本不同造成的。请联系插件的作者,检查问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-4-28 05:49:00 | 显示全部楼层
Host xxx.xxx.xxx.xxx is not allowed to connect to this MySQL server

错误编号:1130
问题分析:
MySQL 没有开放远程登录的权限。
解决方法:
1、请确认您填写的数据库服务器是否正确,并且授权你这台 web 服务器进行连接;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-4-28 05:50:16 | 显示全部楼层
Table \'%s\' is marked as crashed and should be repaired


问题分析:

出现这个提示,说明 ‘%s ’ 表损坏,可能是非正常关机造成的,需要修复一下就可以了。
解决方法:
1、可以用帝国备份王或者phpmyadmin进行修复。
2、如果 tools 工具无法修复,可以用命令 myisamchk 修复数据库的 MYI 文件即可。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-4-28 05:52:10 | 显示全部楼层
Invalid default value for '%s'

错误编号:1067

问题分析:

这是在创建数据表的时候,建表语句中有错误的字段默认值造成的。

解决方法:

1、请检查您的出错的建表 SQL 语句中,字段的默认值设置是否正确。

例如:char、varchar 的默认值建议为英文或空,int 等数字的默认值设置为数字。

2、如果出现 Invalid default value for 'horsename'  这样的错误,则是在使用 Discuz! “娛樂場(賭場)”插件是导致的该问题,请检查该插件的建表语句:
  1. CREATE TABLE `cdb_clubhorse` (
  2.   `hid` int(1) NOT NULL auto_increment,
  3.   `wingame` int(10) NOT NULL default '0',
  4.   `selectn` int(10) NOT NULL default '0',
  5.   `horsename` char(50) NOT NULL default '未改名',
  6.   `horsenation` char(50) NOT NULL default '未知',
  7.   `horseinfo` char(200) NOT NULL default '未知',
  8.   `cost` int(7) NOT NULL default '100',
  9.   `buyuser` char(50) NOT NULL,
  10.   `buytime` int(11) NOT NULL default '0',
  11.   `allgame` int(11) NOT NULL default '0',
  12.   PRIMARY KEY  (`hid`)
  13. );
复制代码
把其中的中文改为英文。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-4-28 05:52:46 | 显示全部楼层
Column length too big for column '%s' (max = 255)

错误编号:1074
问题分析:
在创建数据表或修改数据表中的字段时设置的字段长度过大。
解决方法:
检查您的建表或修改表结构的 SQL 语句中,对于字段长度的定义是否适当,不能过大。
例如:Discuz! 数据库中的 cdb_activityapplies 表,其中的 message 字段如果设置为 char 类型(char 类型最大长度为 255),如果设置为 400 则会报出此问题。此时如果该字段确实需要更长的长度,则建议选用 BLOB 或 TEXT 类型。



回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-4-28 05:53:28 | 显示全部楼层
User \'%s\' has exceeded the \'max_user_connections\' resource

错误编号:1226
问题分析:
当前用户的服务器资源已经超过允许使用的限制。
解决办法:
1、虚拟主机用户请联系空间商检查服务器是否正常,并适当进行服务器的优化;
2、独立服务器请联系服务器管理员优化服务器,建议调整 MySQL 配置文件中 max_user_connections 的值。



回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-4-28 05:54:03 | 显示全部楼层
User %s already has more than \'max_user_connections\' active connections

错误编号:1203
问题分析:
max_user_connections 是 MySQL 用户连接数的最大值设置,整段语句的意思是:服务器的 MySQL 的最大连接数参数设置不足。
解决方法:
1、修改 MySQL 安装目录下 my.ini 或者 my.cnf  文件内的 max_user_connections 参数的数值,重启 MySQL 服务器;
2、虚拟主机用户请联系空间商检查服务器是否正常。



回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-4-28 05:54:32 | 显示全部楼层
Unknown table \'%s\' in field list

错误编号:1109
问题分析:
有未知表,出现这种错误一般是因为安装了插件或没完整安装产品。
解决方法:
一、如果是 Discuz! 论坛,请参考以下解决方法
1、后台 => 工具 => 数据库 => 校验,如果缺少数据库表,请恢复备份数据表。如果没有备份,请到论坛根目录下的 /install/discuz.sql 中找到缺少表的见表语句,后台 => 工具 => 数据库 => 升级,执行该语句,重新建立新表。重新建立前,请检查你之前的进行的操作中是否删除此表。
2、后台 => 工具 => 数据库 => 校验,如果有多余的数据库表,一般是因为您安装了某种插件,请仔细检查插件的安装过程是否有误。
二、如果是其他产品
1、到数据库管理工具(比如 phpMyAmdin )中查看该表是否存在,如果存在,请修复该表。
2、如果第一种方法解决不了,该表可能是您安装插件时添加的数据库表,请仔细检查插件安装过程是否有误。
3、到数据库管理工具(比如 phpMyAmdin )中查看该表是否存在,如果不存在,请恢复备份的数据库表;如果没有备份,请找出该数据表的创建语句(一般在产品安装根目录下的 install 文件夹下有个 sql 结尾的文件中),到数据库管理工具(如 phpMyAdmin )中执行该语句,重建该表。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-4-28 05:55:08 | 显示全部楼层
Can't create TCP/IP socket (5)

错误编号:2004
问题分析:
MySQL 无法建立 TCP/IP socket
解决办法:
1、编辑 mysql.ini,在 [mysqld] 下面的区域加 enable-named-pipe;
2、检查系统的临时目录或者 MySQL 临时目录的权限;
3、在以上方法无效的情况下,建议重新安装另外版本的 MySQL。



回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|网站之家技术交流论坛 ( 粤ICP备09092995号 )

GMT+8, 2024-5-1 16:58 , Processed in 0.099360 second(s), 5 queries , File On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表