2016-07-15 1 views
0

약간 막연하지만 여기서는 문제가 발생한 레이어를 실행 중입니다. Google에서 발견 한 각각의 "수정"은 나에게 또 다른 문제점을 제시합니다. 어쨌든 물건을 버리면, 나는 MySQL 서버에 의해 백업 asp.net 응용 프로그램을 생산하기 위해 Windows 호스팅 패키지를 구입했습니다. 나는 MSSQL에 익숙하지만 이것은 실행 가능해야하며 오픈 소스에 더 좋을 것이다.MySQL을 사용하여 저장 프로 시저를 만들 수 없습니다.

첫 번째 문제점은 MySQL 서버 5.7이 설치된 MySQL Workbench 사본이 내 DB에 연결되지 않는다는 것입니다. 테이블로드가 거부되고 다음과 같이 인사합니다 : # 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의 워크 벤치 내 자신의 로컬 복사본이했던 것과 같은 오류를 반환합니다! mysql.proc에서로드 할 수 없습니다. 테이블이 손상되었을 가능성이 있음

인터넷에서 읽은 내용은 모두 MySQL을 업그레이드해야하는 문제임을 지적했습니다 .... 나는 컨트롤 패널에있는 것처럼보고 업그레이드 할 생각이 전혀 없습니다. 이리. 대신 다른 문제가있는 것처럼 느껴질 것입니다. 데이터가있는 테이블은 여전히 ​​데이터를 표시하고 어제는 만들었습니다.이 중 일부가 손상 될 수는 없습니다.

은 내가 제안 보았 듯이

use mysql; 
show create table mysql.proc; 

를 사용하여보고했지만, 그건 그냥 다른 오류 반환 : 1044 #을 - 액세스 사용자 BIRDY '@'% '데이터베이스'에 대한 거부 MySQL의 ' (버디는 내 사용자 이름 임). 그게 문제의 근원인지 모르겠지만 다른 쿼리를 실행해도 괜찮습니다.

다음의 생각은 "MySQL Workbench를 연결하고 작동시켜 제어판을 무시할 수 있다면 어떨까요?"입니다. 그 중 매우 유익한 아니라, 여기에 몇 가지 업그레이드 명령을 실행에 나의 시도는 다음과 같습니다 http://i.imgur.com/yG1hKrQ.png (즉 passsword를 들어, 나는 확실히 내 Windows 하나 내 MySQL의 BIRDY 사용자 이름의 암호가 아닙니다 이용해야하는 ...?)

어쨌든 여기서 진짜 질문은 단지 "도움이됩니다!"입니다. 문제의 원인은 "phpMyAdmin을 사용하여 MySQL 쿼리를 생성 할 수 없습니다."라는 것이고 여기에 내 작은 이야기가 진단을 도와 주길 바랍니다. 이 문제에 대한 도움을 주시면 감사하겠습니다.

EDIT : mysql_upgrade를 실행했지만 여전히 주사위가 없습니다.그것은 문제를 해결하지 않고, 여전히 다음과 같습니다 http://i.imgur.com/NJpnRzw.png

편집 2 : 그래서 내가 MSSQL에 걸쳐 내 DB를 전환하고 내가 가장 잘 알고 무엇을 고집, 지금이 포기하고있다. db를 다시 설치하는 것은 도움이되지 않았고 웹 호스트가 업그레이드하지도 않았습니다. root 사용자로 MySQL 서버에 당신의 도움을 주셔서 감사합니다 어쨌든 사람

+0

나는'mysql_upgrade' 명령 행 유틸리티는 정말 당신의 다음 단계라고 생각합니다; 나는 그 일을 계속하려고 노력할 것입니다. 당신은 "루트"사용자를 사용할 것이고 패스워드는 MySQL 서버를 설치할 때 선택한 것입니다 (이것은 MSSQL의 "sa"와 같은 마스터 패스워드입니다). –

+0

어떻게 든 손상된 것처럼 들립니다. 새로운 설치이기 때문에 가장 효율적인 솔루션은 단순히 MySQL 전체 설치 (디스크에 실제 데이터베이스를 저장하는 "datadir"포함)를 제거하고 다시 설치하는 것입니다. 이를 수행하는 방법은 설치 방법에 따라 다르지만 호스팅 제공 업체가 도움을 줄 수도 있습니다. –

답변

0

연결, 테이블 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' 
관련 문제