0

所以这可能有点模糊,但我在这里遇到了一层又一层的问题。我在 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并坚持我最了解的。重新安装数据库没有帮助,我的网络主机升级也没有帮助。无论如何,感谢您的帮助

4

1 回答 1

0

以用户身份连接到 mysql 服务器root,删除表proc并创建另一个表:

CREATE TABLE `proc` (
  `db` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
  `name` char(64) NOT NULL DEFAULT '',
  `type` enum('FUNCTION','PROCEDURE') NOT NULL,
  `specific_name` char(64) NOT NULL DEFAULT '',
  `language` enum('SQL') NOT NULL DEFAULT 'SQL',
  `sql_data_access` enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') NOT NULL DEFAULT 'CONTAINS_SQL',
  `is_deterministic` enum('YES','NO') NOT NULL DEFAULT 'NO',
  `security_type` enum('INVOKER','DEFINER') NOT NULL DEFAULT 'DEFINER',
  `param_list` blob NOT NULL,
  `returns` longblob NOT NULL,
  `body` longblob NOT NULL,
  `definer` char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
  `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH') NOT NULL DEFAULT '',
  `comment` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `character_set_client` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
  `collation_connection` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
  `db_collation` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
  `body_utf8` longblob,
  PRIMARY KEY (`db`,`name`,`type`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Stored Procedures'
于 2016-07-28T00:33:41.837 回答