【发布时间】:2016-11-19 05:10:44
【问题描述】:
所以这可能有点模糊,但我在这里遇到了一层又一层的问题。我在 Google 上找到的每个“修复”都会给我带来另一个问题。 无论如何,我已经购买了一个 Windows 主机包,以便生成一个由 MySQL 服务器支持的 asp.net 应用程序。我习惯了 MSSQL,但这应该是可行的,并且更适合开源。
我注意到的第一个问题是我的(最近安装的)带有 MySQL Server 5.7 的 MySQL Workbench 副本无论如何都不允许我连接到我的数据库。表拒绝加载,我很高兴:#1548 - 无法从 mysql.proc 加载。该表可能已损坏
从那里,我想“好吧,我将使用网络管理工具”,在本例中是 phpMyadmin。我过去对 phpMyadmin 的经验为零,但它看起来不错,并且预装在此控制面板中。我从创建前 5 个表开始。进展顺利,我现在在数据库中有 5 个表,其中一个甚至有一些数据,我可以通过运行“SELECT * FROM Account_Type”来查看这些数据。
一切似乎都很好,所以我创建了一个我想使用的程序来测试我的应用程序。只是一个基于用户输入的 tinyInt 返回字符串的过程。该过程如下所示:
DROP PROCEDURE IF EXISTS `getAccountTypeName`;
DELIMITER $$
CREATE PROCEDURE `getAccountTypeName`(DimAccountTypeID)
BEGIN
DECLARE DimAccountTypeID TinyINT DEFAULT 0
SELECT AccountTypeName
FROM Account_Type
WHERE AccountTypeID = DimAccountTypeID
END
$$
DELIMITER ;
对我来说似乎很好(对 MS SQL 更有经验),但它返回的错误与我自己的 MySQL Workbench 本地副本相同! 无法从 mysql.proc 加载。该表可能已损坏
我在互联网上读到的所有内容都表明这是我需要升级 MySQL 的一个问题……我不知道如何升级,因为我只是在这里的控制面板中。相反,我觉得肯定有其他问题,有数据的表仍然会显示数据,我昨天才创建它们,我看不出这有什么可能被破坏。
我尝试使用
use mysql;
show create table mysql.proc;
正如我所看到的,但这只会返回另一个错误:#1044 - 用户 'Birdy'@'%' 拒绝访问数据库 'mysql'(Birdy 是我的用户名) .我不知道这是否是问题的根源,但我可以在没有创建过程的情况下运行任何其他查询。
从这里开始的下一个想法是“嘿,如果我可以让 MySQL Workbench 连接并工作,那么我可以忽略控制面板”。这也不是很有成效,这里是我尝试运行一些升级命令:http://i.imgur.com/yG1hKrQ.png (对于那个密码,我应该使用我的 Windows 密码吗?我的 MySQL Birdy 用户名密码?不确定是哪个...)
无论如何,这里的真正问题几乎只是“帮助!”。问题的根源是“无法使用 phpMyAdmin 创建 MySQL 查询”,希望我在这里的小故事可以帮助诊断。非常感谢您对这些问题的帮助:)
编辑: 我让 mysql_upgrade 运行,但仍然没有骰子。它没有解决问题,仍然看起来像这样: http://i.imgur.com/NJpnRzw.png
编辑 2: 所以我现在放弃了,将我的数据库切换到 MSSQL 并坚持我最了解的。重新安装数据库没有帮助,我的网络主机升级也没有帮助。无论如何,感谢您的帮助
【问题讨论】:
-
我认为
mysql_upgrade命令行实用程序确实是您的下一步;我会继续努力让它发挥作用。您将使用“root”用户,密码是您在安装 MySQL 服务器时选择的任何密码(这是主密码,很像 MSSQL 上的“sa”)。 -
听起来好像有什么东西被破坏了,不知何故。由于它是新安装,因此您最省时的解决方案可能是简单地清除整个 MySQL 安装(包括它在磁盘上存储实际数据库的“datadir”)并重新安装。如何做到这一点取决于它的安装方式,但也许您的托管服务提供商可以提供帮助。
标签: mysql asp.net stored-procedures windows-hosting