2016-07-15 18 views
0

これは少し曖昧かもしれませんが、私はここで問題の層の後にレイヤーを実行しています。私がGoogleで見つけたそれぞれの「修正」は私に別の問題を提示します。とにかく、私は、MySQLサーバーにバックアップされたasp.netアプリケーションを生成するために、Windowsホスティングパッケージを購入しました。私はMSSQLに慣れていますが、これは実行可能でなければならず、オープンソースにとってより良いものです。MySQLを使用してストアドプロシージャを作成できません

私が気づいた最初の問題は、(最近インストールされた)MySQL WorkbenchとMySQL Server 5.7のコピーが私のDBにまったく接続できないことでした。テーブルのロードが拒否され、私は次のように挨拶します:#1548 - mysql.procからロードできません。テーブルは、おそらくそこから

を破損している、私はを考え、この場合にphpMyAdminのある「OKそれは大丈夫です、私はちょうどWeb管理ツールを使用します」。過去にphpMyadminの経験は全くありませんが、このコントロールパネルにはあらかじめインストールされています。最初の5つのテーブルを作成して始めました。これはスムーズに進み、データベースには5つのテーブルがあり、そのうちの1つには "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 - アクセスがデータベースに「%」@ユーザー「バーディを」拒否「MySQLを'(Birdyは私のユーザー名です)。それが問題の原因であるかどうかはわかりませんが、他のクエリを実行しても、作成手順はうまくいきます。

「MySQL Workbenchを接続して動作させるだけで、コントロールパネルを無視することができれば」と思っています。 http://i.imgur.com/yG1hKrQ.png (??そのpassswordのために、私は私のWindowsのいずれかを使用する必要があります私のMySQLバーディユーザ名・パスワードがわからない...)

:それはいくつかのアップグレードコマンドを実行している時、私の試みをしている、ここで、いずれかの非常に実りではありませんとにかくここの本当の質問はちょうど "助け!"です。問題の原因は "phpMyAdminを使用してMySQLクエリを作成できません"ですが、うまくいけば私のここでの小さな話はそれを診断するのに役立ちます。これらの問題について本当に助けていただけると思います。

EDIT: 私はmysql_upgradeを稼動させていますが、ダイスはありません。 http://i.imgur.com/NJpnRzw.png

EDIT 2: だから私は、MSSQLに私のDBを切り替え、私は最高の知っていることに固執、今のところこれをあきらめてるそれは問題を解決していない、まだ次のようになります。 dbを再インストールすることは役に立ちませんでしたし、どちらも私のWebホストによるアップグレードではありませんでした。 rootユーザーとしてMySQLサーバへのご協力いただきありがとうございますとにかくみんな

+0

私は 'mysql_upgrade'コマンドラインユーティリティは、本当にあなたの次のステップだと思います。私はそれが働くように努力し続けます。あなたは "root"ユーザを使用し、パスワードはMySQLサーバをインストールしたときに選択したものです(これはMSSQLの "sa"のようなマスターパスワードです)。 –

+0

どういうわけか、何かが壊れているように聞こえます。新しいインストールであるため、最も時間効率の高いソリューションは、MySQLインストール全体(ディスク上に実際のデータベースを格納する「datadir」を含む)をクリアして再インストールすることです。それを行う方法は、インストール方法によって異なりますが、おそらくあなたのホスティングプロバイダが助けることができます。 –

答えて

0

接続し、テーブルprocをドロップして作成し、別の1:

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' 
関連する問題