4

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

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

编辑: 手动安装 phpmyadmin 然后手动安装 libmcrypt (这是我粗鲁的服务器技能的成就:D),以便 phpmyadmin 工作。然后意外发现如何通过plesk以root身份登录(诀窍是在不选择任何数据库的情况下进入webadmin),至少我认为它是root:S运行sql:GRANT SELECT ON mysql.* TO 'my-user'@'本地主机'; 有一条成功消息返回给 plesk,看看我是否可以使用“my-user”管理 sql,不,它仍然从可用用户中丢失,但名称仍然保留...尝试运行:mysql_fix_privilege_tables –user= root –password=mypasswordobviosuly –verbose 但给出了错误,我仍然不确定如何在不使用 ssh 的情况下直接运行 mysql 命令(因为我不知道 root 密码)

4

5 回答 5

7

我通过预先安装的 phpmyadmin 作为“root”进入 mysql,如下所示:(在 plesk 中)主页-> 数据库服务器-> webadmin。然后选择“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 更新的错误。

于 2010-09-07T13:27:06.153 回答
5

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

mysql_install_db --user=mysql

从 bash 提示符(不是 MySQL 提示符)将安装表并让事情正常工作。

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

mysql_secure_installation

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

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

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

于 2011-07-27T04:54:31.113 回答
3

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

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

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

于 2012-10-19T18:24:24.950 回答
2

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

GRANT SELECT ON mysql.* TO 'your-user'@'localhost';
于 2010-09-06T16:54:32.430 回答
0

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

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

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

值得注意的是,至少还有一个其他表 ( plugin) 缺失MYIMYD文件。

于 2019-10-13T22:12:40.513 回答