错误表'mysql.servers'不存在

时间:2010-09-06 16:44:34

标签: mysql plesk

当我尝试创建一个新的数据库用户时,我从plesk得到错误“表'mysql.servers'不存在”,创建的用户没有出现在任何地方,但名称仍然保留,并且它没有允许我访问数据库。

修改 我无法登录到phpMyAdmin到这个网络服务器,所以我设法通过一个不同的域登录到它,它告诉我一个通知:你的PHP MySQL库版本5.0.90与你的MySQL服务器版本5.1.49不同。这可能会导致不可预测的行为。

修改 手动安装phpmyadmin 然后手动安装libmcrypt(这是我的cruddy服务器技能的成就:D)以便phpmyadmin工作。 然后偶然发现如何通过plesk以root身份登录(诀窍是在不选择任何数据库的情况下输入webadmin),至少我认为它是root:S 运行sql:GRANT SELECT ON mysql。* TO'my-user'@'localhost';成功的消息 回到plesk,看看我是否可以使用“my-user”管理sql而不是,它仍然缺少可用用户,但名称仍然保留... 试图运行:mysql_fix_privilege_tables -user = root -password = mypasswordobviosuly -verbose 但是给了和错误,我仍然不确定如何在不使用ssh的情况下运行直接的mysql命令(因为我不知道root密码)

5 个答案:

答案 0 :(得分:6)

我通过预先安装的phpmyadmin作为'root'进入mysql,如下所示: (在plesk中)home->数据库服务器 - > WebAdmin的。 然后选择“mysql”数据库,如果缺少表'servers'(可能是一些mysql bug),则需要创建它: 选择'phpmyadmin'中的'SQL'并运行以下sql:

CREATE TABLE `servers` (
`Server_name` char(64) NOT NULL,
`Host` char(64) NOT NULL,
`Db` char(64) NOT NULL,
`Username` char(64) NOT NULL,
`Password` char(64) NOT NULL,
`Port` int(4) DEFAULT NULL,
`Socket` char(64) DEFAULT NULL,
`Wrapper` char(64) NOT NULL,
`Owner` char(64) NOT NULL,
PRIMARY KEY (`Server_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='MySQL Foreign Servers table';

这样表至少存在...然后在plesk中创建一个新用户,并且中提琴!有用!我能够以我之后创建的用户身份登录,看起来这是一些我甚至不知道的mysql更新的错误。

答案 1 :(得分:4)

尝试升级时发现以下内容。被引导到以下页面: http://kb.parallels.com/en/112290

我从该页面运行了以下内容:

  

“运行以下命令修复MySQL表:
      #mysql_upgrade -T --debug-check -u admin -p`cat / etc / psa / .psa.shadow` mysql“

答案 2 :(得分:3)

当mysql表未正确创建时,有时会在新安装MySQL后出现此错误。运行命令......

mysql_install_db --user=mysql
从bash提示符(而不是MySQL提示符)将安装表并使事情正常工作。

在新安装上运行上述命令后,以下命令将有助于确保安装...

mysql_secure_installation

这将提示您输入root密码,删除匿名访问,限制对localhost的root访问权限并删除测试数据库。

这些命令适用于Linux,它们可能无法在Windows上运行,但如果您搜索MySQL文档,则会有相应的命令。

这与原始海报的Plesk问题无关,但我在研究MySQL安装问题时偶然发现了这个问题,并认为这可能有助于节省一些时间。

答案 3 :(得分:1)

您的用户似乎无法访问mysql数据库。您可能希望按以下方式授予SELECT命令:

GRANT SELECT ON mysql.* TO 'your-user'@'localhost';

答案 4 :(得分:0)

在我的情况下,show tables数据库中的mysql标识了servers表存在,但是我遇到了Error Table 'mysql.servers' doesn't exist错误。

列出<data-dir>/mysql目录表明存在servers.frm个文件,但是相对的servers.MYIservers.MYD文件丢失了-也许我在其中发挥了作用!

无论如何,我知道我正在将服务器用作Daisy Chain Replication中的中间服务器,因此我从servers.frm文件中获得了备份,并通过运行@ timo-huovinen的答案重新创建了表正常。

值得注意的是,至少还有另一个表(plugin)丢失了MYIMYD文件。