网站之家技术交流论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: 叮叮

mysql相关问题处理

[复制链接]
 楼主| 发表于 2013-4-28 05:28:52 | 显示全部楼层
Access denied for user: 'root@localhost' to database 'test'

错误编号:1044
问题分析:
MySQL 数据库拒绝访问,一般是因为 MySQL 连接帐号的权限不够导致的。
解决方法:
1、联系你的空间商或者服务器维护人员增加连接数据库帐号的相应权限。
2、如果你知道 MySQL 的 root 帐号信息,可以在 phpMyAdmin 等 MySQL 管理工具中执行更改权限的 SQL 语句完成增加权限,如类似:
GRANT ALTER ROUTINE EXECUTE ON * . * TO 'root'@'localhost'
WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
这样的语句,增加 root 帐号的 ALTER 权限,更多的权限编辑请看相关帮助。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-4-28 05:29:44 | 显示全部楼层
Client does not support authentication protocol requested by server

错误编号:1251
问题分析:
如果你升级 MySQL 到 4.1 以上版本后遇到以上问题,请先确定你的 MySQL Client 是 4.1 或者更高版本(Windows 下有这个问题就可以直接跳到下面看解决方法了,因为 MySQL 在 Windows 系统里是 client 和 server 一起装上的)。
解决方法:
1、 Windows 平台
主要是改变连接 MySQL 帐户的加密方式,MySQL 4.1/5.0 是通过 PASSWORD 这种方式加密的。可以通过以下两种方法得到解决:
1) MySQL->SET PASSWORD FOR 'some_user'@'some_host'=OLD_PASSWORD('new_password');
     MySQL->FLUSH PRIVILEGES;

2)MySQL->UPDATE MySQL.user SET Password=OLD_PASSWORD('new_password') WHERE Host='some_host' AND User='some_user';
     MySQL->FLUSH PRIVILEGES;
2、 Linux/Unix 平台
Linux 平台下首先确定是否安装过 MySQL 的客户端,这个用 rpm 安装很简单,Linux 代码为:
rpm -ivh MySQL-client-4.1.15-0.i386.rpm
然后在编译 php 的时候要加上:
--with-MySQL=/your/path/to/MySQL
一般情况下都可以解决。如果还出现这种错误,可以按照下面的方法来做:
1)MySQL->SET PASSWORD FOR 'some_user'@'some_host'=OLD_PASSWORD('new_password');
      MySQL->FLUSH PRIVILEGES;
2)MySQL->UPDATE MySQL.user SET Password=OLD_PASSWORD('new_password') WHERE Host='some_host' AND User='some_user';
     MySQL->FLUSH PRIVILEGES;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-4-28 05:31:43 | 显示全部楼层
Can't open file: '%s.MYI'

错误编号:145
问题分析:
这种情况是不能打开 %s.MYI 造成的,引起这种情况可能的原因有:
1、服务器非正常关机,数据库所在空间已满,或一些其它未知的原因,对数据库表造成了损坏。
2、类 unix 操作系统下直接将数据库文件拷贝移动会因为文件的属组问题而产生这个错误。
解决方法:
1、修复数据表
可以使用下面的三种方式修复数据表:(第二种方法仅适合独立主机用户)
    1)通过帝国备份王或者其它第三方数据库管理程序修复;
    2)使用 myisamchk ,MySQL 自带了专门用户数据表检查和修复的工具 —— myisamchk 。更改当前目录到 MySQL安装目录的 bin 目录下面,一般情况下只有在这个下面才能运行 myisamchk 命令。常用的修复命令为:
  1.       myisamchk -r 数据文件目录/数据表名.MYI;
复制代码
3)通过 phpMyAdmin 修复, phpMyAdmin 带有修复数据表的功能,进入到某一个表中后,点击“操作”,在下方的“表维护”中点击“修复表”即可。

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

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

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

回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-4-28 05:32:20 | 显示全部楼层
Can't connect to local MySQL server through socket

错误编号:2002
问题分析:
出现这个错误一般情况下是因为下面两个原因:
1、MySQL 服务器没有开启。
2、MySQL 服务器开启了,但不能找到 socket 文件。
解决方法:
1、虚拟主机用户,请联系空间商确认数据库是否正常启动,并跟空间商确认 MySQL 的 socket 文件启动地址,可以尝试在 论坛根目录下的配置文件 config.inc.php 中的 $dbhost 的值改为 $dbname = 'localhost:/tmp/mysql.socket‘,(这里假设 MySQL 的启动地址是 /tmp/mysql.socket,具体的启动地址依据空间商提供的启动地址而定)。
2、独立主机用户,请检查一下 MySQL 服务是否已经开启,没有开启,请启动 MySQL 服务;如果已经开启并且是 Linux 系统,请检查一下 MySQL 的 socket 路径,然后打开 config.inc.php 找到
$dbhost = 'localhost'; 在 localhost 后面加冒号‘:’和 MySQL 的 socket  路径。
比如 MySQL 服务器为 localhost
MySQL 的 socket  路径为 /tmp/MySQL.sock
那么就改成如下:
$dbhost = 'localhost:/temp/MySQL.sock';
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-4-28 05:33:25 | 显示全部楼层
Can't create a new thread (errno 12)

错误编号:1135
问题分析:
数据库服务器问题,数据库操作无法创建新线程。一般是有以下两个方面的原因:
1、MySQL 线程开得太多。
2、服务器系统内存溢出。
3、环境软件损坏或系统损坏。
解决方法:
1、虚拟主机用户请联系下空间商询问数据库服务器的内存和系统是否正常运行。
2、独立主机用户:
1)进入 phpmyadmin 的 mysql 数据库中的 user 表,对数据库的用户进行编辑,修改 max_connections 的值。适当的改小一点。

2)联系服务器管理员检查服务器的内存和系统是否正常,如果服务器内存紧张,请检查一下哪些进程消耗了服务器的内存,同时考虑是否增加服务器的内存来提高整个系统的负载能力。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-4-28 05:34:57 | 显示全部楼层
Access denied for user: '***@localhost' (Using password: YES)

错误编号:1045
问题分析:
数据库用户名或密码错误,导致程序没有权限连接 MySQL 数据库。
解决方法:
1、如果你是虚拟主机用户,请联系空间服务商询问正确的 MySQL 数据库用户名和密码,然后修改论坛根目录下 config.inc.php 中关于数据库的配置信息。如果是在安装过程中出现这个问题,可以重新填写正确的帐号信息继续安装。

2、如果您是独立主机用户,请核对您的 MySQL 账户的信息。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-4-28 05:35:31 | 显示全部楼层
如何开启MySQL慢查询日志

在运营网站的过程中,可能会遇到网站突然变慢的问题,一般情况下和 MySQL 慢有关系,可以通过开启慢查询,找到影响效率的 SQL ,然后采取相应的措施。下面介绍一下如何开启慢查询:
1、开启慢查询
找到 MySQL 的配置文件 ,my.cnf (Windows 为 my.ini ),在 MySQL 下增加下面几行:
long_query_time=2log-slow-queries= /usr/var/slowquery.log上面的 2 是查询的时间,即当一条 SQL 执行时间超过2秒的时候才记录,/usr/var/slowquery.log 是日志记录的位置。
然后重新启动MySQL服务
2、 MySQL 配置文件的位置
Windows:Windows 的配置文件为 my.ini,一般在 MySQL 的安装目录下或者 c:\Windows 下。
Linux:Linux 的配置文件为 my.cnf ,一般在 /etc 下。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-4-28 05:36:23 | 显示全部楼层
如何启动/停止/重启MySQL

启动、停止、重启 MySQL 是每个拥有独立主机的站长必须要撑握的操作,下面为大家简单介绍一下操作方法:
一、启动方式
1、使用 service 启动:service mysqld start
2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start
3、使用 safe_mysqld 启动:safe_mysqld&
二、停止
1、使用 service 启动:service mysqld stop
2、使用 mysqld 脚本启动:/etc/inint.d/mysqld stop
3、mysqladmin shutdown
三、重启
1、使用 service 启动:service mysqld restart
2、使用 mysqld  脚本启动:/etc/inint.d/mysqld restart
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-4-28 05:37:28 | 显示全部楼层
Linux下MySQL无法启动的检测方法
由于 Linux 存在各种优越性,如速度和稳定性就比 windows 强很多,所以选择 Linux 系统做为服务器的用户越来越多,下面简单介绍一下 Linux 下 MySQL 无法启动的检测方法供大家参考。
1、可以使用下面的命令检查 MySQL 是否启动
  1. ps -auxwww|grep mysql
复制代码
2、MySQL 无法启动可以这么检查
检查 MySQL 配置文件,看一下配置文件中 datadir、basedir 参数是否存在,路径是否正确,运行 MySQL 的用户是否对它们有访问权限。
这是 MySQL 运行必须的两个参数,如果这两个参数没有问题的话,检查其他参数是否有问题。

回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-4-28 05:38:08 | 显示全部楼层
Out of resources when opening file

错误编号:23
问题分析:
打开文件时 MySQL 资源溢出。
解决方法:
1、虚拟主机用户请联系空间商确认服务器是否正常;
2、独立主机用户请联系服务器管理员适当调整 MySQL 配置文件中 table_cache 参数,重启 MySQL 后还报此错误,请深入优化 MySQL,并适当提高服务器的配置。



回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-1 17:52 , Processed in 0.086377 second(s), 5 queries , File On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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