2016-02-09 9 views
8

私はこの質問が既に何度か尋ねられたことは知っていますが、私の問題は今作成したテーブルで起こっています。それは10列しかなく、1列しかありません。MySql alter tableがハングする

これは、通常のハングの問題とは異なり、これは大量のデータを含む大きなテーブルのケースではありません。それでも、それはハングアップします。

これは私が実行しているSQLです:

ALTER TABLE `db`.`Search` 
ADD COLUMN `useremail` VARCHAR(256) NOT NULL COMMENT '' AFTER `id`; 

十分な、まだ簡単なことが(50分とカウント。)ハング私はWorkbenchEclipseを終了し、すべてのjavaプロセスと1つのmysqldプロセスを削除しようとしました。しかし、運がない。

私はMac OSX El Capitainで実行しています。この列をテーブルに追加するにはどうすればよいですか?

+0

'show full processlist'を実行して、' ALTER TABLE 'db'.'Search'のようなクエリがあれば教えてください。 ADD COLUMN' useremail' VARCHAR(256)NOT NULL COMMENT '' AFTER 'id ';'走っている? – 1000111

+0

@SubrataDeyPappuはいあります。 「状態」は「テーブルメタデータロックを待っています」です。 – Eddy

+0

そのプロセスのPIDは何ですか?テーブルにはいくつのレコードがありますか? – 1000111

答えて

19

私はこの質問に「mysql alter table hanging」を検索して答えを(コメントの中で)文書化するべきだと考えました。

MySQLコマンド(この場合は列を追加する)を実行していて、予期せずハングしている場合(例:テーブル内のデータのサイズではなく、データベースに対して実行中の他のプロセスをチェックします。私はいくつかのゾンビを持っていた気づい

Waiting for table metadata lock 

:私は別のクライアントとサーバに接続された実行中のクエリを、左、そして私のクエリが掛かった

SHOW PROCESSLIST; 

を入力し、このメッセージはstate列にありました私のマシンからの接続は、(ここでははId列の番号です)、プロセスはすぐに終了しました。

+2

ちょうど追加するには... 'kill'コマンドはMySQL端末内で実行されました。ありがとう! –

関連する問題