web-dev-qa-db-ja.com

データベースを表示しているphpMyAdminはMyISAMですが、テーブルはInnoDBです

データベースをあるタイプ(MyISAM)にし、テーブルを別のタイプ(InnoDB)にすることは可能ですか、それともphpMyAdminのバグですか?

それはまさにそれを示しています。 画像はこちらhttp://www.startbreakingfree.com/wp-content/uploads/2009/11/Picture-10.png

コマンドからデータベースタイプを確認しようとしましたが、表示する適切なコマンドが見つかりませんでした。データベースが実際にMyISAMである場合、どうすればデータベースをInnoDBに変更できますか?

ありがとうございました!

5
Brian Armstrong

データベースにはストレージエンジンがなく、テーブルだけがあります。 PhpMyAdminがそこに何を表示しようとしているのか、おそらくシステム全体のデフォルトエンジンか何かがわかりません。ドキュメントはおそらく、WTFが進行中であることにいくらかの光を当てるでしょう。

9
womble

これはバグではありません。 MySQLドキュメント から:

データベースには、さまざまなタイプのテーブルが含まれる場合があります。つまり、すべてのテーブルを同じストレージエンジンで作成する必要はありません。

だからあなたは元気です。

テーブルタイプを表示するには:

SHOW CREATE TABLE schema_migration

データベースストレージエンジンを表示するには:

mysqldump --no-data $YOURDATABASE
3
Yves Junqueira

@wombleは正しいです。ただし、ある程度の安心感が必要な場合は、いくつかの構成オプションを設定できます。 mysql構成ファイルmy.cnfは、XAMPPを使用している場合は/Applications/XAMPP/etc/my.cnfにあり、標準インストールを使用している場合は通常/etc/my.cnfにあり、[ mysqld]

デフォルトのストレージエンジンはMyISAMですが、そのセクションの下にこれを追加することで、InnoDBに変更できます。

 [mysqld] 
 default-storage-engine = innodb 

これにより、最後の行に表示される内容が変わります。

データベースが実際に適切に設定されていることを確認するために時間を割いている場合は、文字セットをutf-8に設定することに関連するいくつかの項目にも関心があるかもしれません。これは、一般にWebのベストプラクティスと見なされているためです。開発:

Phpmyadminフォルダーにあるconfig.inc.phpで、次のパラメーターを設定できます。

 //デフォルトでutf_8を使用します(pmaの新しいバージョンの標準値)
 // ********************** ********************************************* 
 $ cfg ['DefaultCharset'] = 'utf_8'; 
 
 
 //デフォルトの照合順序を設定します(utf8_general_ciは新しいバージョンではデフォルトです)
 // ** ************************************************** ***************** 
 $ cfg ['DefaultConnectionCollat​​ion'] = 'utf8_general_ci'; 
 
 
//セキュリティのためにmysqliを使用し、通常はBLOBタイプで表示されるutfを読み取ります
 // **************************** ************************************************* 
 $ cfg ['Servers'] [$ i] ['extension'] = 'mysqli'; 

PmaWiki にアクセスするか、次のファイルの値を確認する(ただし、変更しない)ことで、すべての構成オプションを見つけることができます:phpmyadmin/libraries/config.default.php

Utf-8の使用は、特にユーザーがさまざまな言語/キーボードセットで単語を入力する可能性があるアプリケーションで、Webアプリケーションで推奨される新しい標準です。この 素敵な小さな投稿 のutf8_binとutf8_general_ci文字セットの違いのいくつかをチェックしてください。これは正しいものを選択するのに役立つはずです。

0
cwd

唯一のバグは、PhpMyAdminがデータベースに対して何も表示していないことです。これは、そのコンテキストで表示されるものはすべて無関係であるためです。 wombleが示唆しているように、デフォルトのエンジン(およびエンコーディング)を示している可能性がありますが、無視して、テーブルに使用されているエンジンのみに関心があることをお勧めします。結局のところ、データベースはテーブルの論理的なコレクションにすぎません。

0
John Gardeniers

はい、phpmyadminで2種類のテーブルを作成できます。データベースに、InnoDBテーブルとMyISAMテーブルを作成しました。これはあなたが望むものです。ありがとう

0
Vaseem Ansari