代码之家  ›  专栏  ›  技术社区  ›  Timo Huovinen

'错误表'mysql.servers服务器“不存在

  •  3
  • Timo Huovinen  · 技术社区  · 15 年前

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

    编辑: 手动安装的phpmyadmin 然后手动安装libmcrypt(这是我用粗糙的服务器技能所取得的成就:D),这样phpmyadmin就可以工作了。 运行sql:GRANT SELECT ON mysql.*TO'my user'@'localhost';并显示一条成功消息 返回plesk查看是否可以使用“my user”管理sql,不,可用用户中仍然缺少它,但名称仍然保留。。。 尝试运行:mysql\u fix\u privilege\u tables user=root password=mypasswordobviosuly verbose 但是给出了错误,我仍然不知道如何在不使用ssh的情况下运行directmysql命令(因为我不知道root密码)

    4 回复  |  直到 15 年前
        1
  •  3
  •   Bo Persson Touseef    12 年前

    尝试升级时发现以下内容。已指向下一页: http://kb.parallels.com/en/112290

    我在那个页面上运行了以下内容:

    “运行以下命令修复MySQL表:

        2
  •  7
  •   Timo Huovinen    15 年前

    我通过预安装的phpmyadmin以“root”的身份进入mysql,如下所示: 然后选择“mysql”数据库,如果缺少表“servers”(可能是一些mysql错误),则需要创建它: 在“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和viola中创建一个新用户!真管用!在那之后我就可以以我创建的用户的身份登录了,这似乎是一些我甚至不知道的mysql更新的bug。

        3
  •  3
  •   Night Owl    14 年前

    mysql_install_db --user=mysql
    

    从bash提示符(不是MySQL提示符)安装表并使其正常工作。

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

    mysql_secure_installation
    

    这将提示您输入根密码、删除匿名访问、仅将根访问权限限制为localhost以及删除测试数据库。

    这些命令是针对Linux的,它们可能无法在Windows上工作,但是如果您搜索MySQL文档,就会有相应的命令。

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

        4
  •  1
  •   Daniel Vassallo    15 年前

    您的用户似乎无权访问 mysql 数据库。你可以同意 SELECT 命令如下:

    GRANT SELECT ON mysql.* TO 'your-user'@'localhost';
    
        5
  •  0
  •   hpaknia Pooja    5 年前

    对我来说 show tables 在里面 mysql 数据库标识 servers 表存在,但我得到了 Error Table 'mysql.servers' doesn't exist 错误。

    上市 <data-dir>/mysql 目录显示 servers.frm 文件存在,但相对 servers.MYI servers.MYD

    不管怎么说,我知道我正在使用服务器作为 Daisy Chain Replication 服务器.frm 文件并通过运行@timo huovinen's answer重新创建了表,一切恢复正常。

    值得注意的是,至少还有一张桌子( plugin )失踪 MYI MYD 文件夹。