• ベストアンサー

InnoDBの利用

InnoDBの利用 「show engines」を実行したら、InnoDBが出てきませんでした。 InnoDBを登録するには、どうすれば良いのでしょうか? my.iniは、my-innodb-heavy-4G.iniをコピーして使っています。 よろしくお願いします。 環境:mysql5.1.41-community+Windows2008

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

こんにちは。 エラーログ見れませんかね? 多分、ibdataファイルのサイズ違いでエラーになってると思いますが・・・。

w0a15455
質問者

お礼

ibdataファイルを一度削除してから、mysqlを再起動することで解決しました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • moousi
  • ベストアンサー率70% (21/30)
回答No.1

対処はエラー次第かと思います。 参考になりそうなサイトを貼っておきます。 ttp://blog.still-laughin.com/archives/2010/02/innodb.html

w0a15455
質問者

お礼

教えていただいたサイトが参考になり、解決することが出来ました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • phpMyadminでどうしてもinnoDBが有効になりません。

    phpMyadminでどうしてもinnoDBが有効になりません。 ローカル環境 phpMyAdmin - 2.11.4 MySQL クライアントのバージョン: 5.0.51a ストレートエンジンをMyISAMで開発を行っていましたが、 innoDBに変更することにしました。 色んなサイトを拝見しましたが、どうも有効になってくれません。 対処した項目を書きます。 (1) my.cnf内のskip-innodbをコメントアウト (2) 数回XAMPPのコントロールパネルからMySQLを再起動 (3) ログファイルib_logfileの確認 <無し>   (ログファイルが生まれていれば、xampp/mysql/data/ ← この中に生まれますよね?) (4) (3)のログファイルがあれば、それを削除しようと思いましたが見つかりませんので、   無視しました。このログファイルは、my.cnf内のinnodb_log_file_size = デフォルト値を   変更した場合、既に生まれているログファイルのサイズと異なっていらば、エラーとなるらしく、   まあ、一度もinnoDBにてテーブルを作成していないので、ログが生まれるはずもなく・・・    一応ケアーしてみました。 いかがでしょうか? これら以外に、innoDBがphpMyadminで有効になってくれない理由がありますでしょうか? かなりハマッてます・・・。お助け下さい。。

    • ベストアンサー
    • MySQL
  • Innodbデータ拡大方法を教えてください。

    こんにちは。。 教えてください。 現在Mysql 5.0.45を利用してInnodbを使っています。 初めて、MysqlのInnodbを運用しておりますが データ容量が設計以上膨らんで 下記のようになってしまいました。 ------------------------------ #ls -al ibdata1 -rw-rw---- 1 mysql mysql 31182553088 5月 1 19:51 ibdata1 # du -sh ibdata1 30G ibdata1 ------------------------------ 問題は現在、サーバー上のハードディスク容量が少ないことで、 半年以内にハードディスクがFullになってしまう恐れがあります。 それでibdata1(innodb)から分離して、新しいストレージにibdata2(innodb)拡張を検証しました。 my.cnf innodb設定部分を(defalut) innodb_data_file_path = ibdata1:10M:autoextend ↓↓ innodb_data_file_path = ibdata1:32G;/ストレージサーバ/ibdata2:50G;/ストレージサーバ/ibdata3:10M:autoextend 上記のように検証しましたが、運用上では、無理でした。 いろいろ、やって見ましたが、失敗の連続。。。 Mysqlサイトではデータをバックアップ後に再構築方法しかないと書いておりますが、 http://dev.mysql.com/doc/refman/5.1/ja/adding-and-removing.html しかしながら、現在Innodbデータが30GぐらいでバックアップとImportするには相当時間が掛かってしまい、事実上で無理ですが、、 こんな時にはどうすれば宜しいですか。。 皆さん、教えて下さい。一週間ぐらい悩んでいます。。宜しいお願いします。

  • MySQLのバイナリデータについて

    Linux版MySQLで稼働していたデータベースをWindows版で稼働させたいと思っています。 データベースはinnodbです。 my.iniをWindowsの環境に合わせて書き換え、MySQLは起動したのですがテーブルが見れません。 mysqlデータベースは参照でき、ユーザー権限等も書き換えられるのですが、どうやらinnodbが見れないようです。 そもそもLinux版のinnodbはWindows版MySQLでは使用できないのでしょうか?

    • ベストアンサー
    • MySQL
  • InnoDBのAuto Incrementsの問題

    今回、InnoDBとMyISAMの Auto Increments(以下AI)の挙動に対する 対処方法についての質問になります。 以前は5.1のMySQLを使用していましたが、 最近利用しているホスティング会社の方で変更があり、 MySQL5.6へのバージョンアップが行われ、 そこから発生している問題です。 例えば testtb ------------- id item ------------- 1 aaa 2 bbb 3 ccc ------------- というテーブルがあります。(InnoDB) idはプライマリーキーでAIが設定されています。 基本的にこのテーブルでは itemのアップデートくらいで、 レコードを削除するような動作は起こりません。 ところが管理者サイドのテストの際に 下記のように、でMAX(id)を抽出してそのレコードを削除し、 AIの値を削除したMAX(id)に変更するという動作が稀に発生します。 $sql = "SELECT max(id) FROM testtb "; $result = mysql_query($sql, $con); $maxid = mysql_result($result, 0); $sql = "DELETE FROM testtb WHERE id = '{$maxid}' "; mysql_query($sql, $con); $sql = "ALTER TABLE testtb AUTO_INCREMENT = {$maxid} "; mysql_query($sql, $con); 要するにテストで登録した最新idのレコードを削除し、 AI値も元に戻してテスト前の状態に復旧するという内容です。 以前のMySQLのバージョンでは これが問題なく動作していましたが、 MySQL5.6に変わってから InnoDBの場合には、 ALTER TABLE testtb AUTO_INCREMENT = {$maxid} このSQL文を実行しても結果が全く反映されません。 phpmyadminからも実行してみましたが 実行結果にエラーはでないのですが、 同様に結果は反映されず、AI値の変更が行われません。 少しググってみて、innodb_autoinc_lock_mode の設定が関係しているのではと思い見てみると innodb_autoinc_lock_mode = 1になっていました。 ちなみにこの値は共有DBのため、 ホスティング会社の方での固有の設定で 私の方で変更はできません。 上記の問題はMyISAMでは発生しませんので、 InnoDB固有の特徴によるものかと思います。 innodb_autoinc_lock_modeの設定変更なしで 上記を解消する方法はありますでしょうか? もうMyISAMで運用するくらいしか方法が見つかりません。 それからこれに関連する内容で もう一つ質問があります。 これはphpmyadminに関する質問なのですが、 以前ですと、テーブルを選んで 上メニューの「操作」という箇所から AIの値が確認できて変更もできたかと思うのですが 現在はAIの値を操作する箇所が全く見当たりません。 確認のためにSHOW TABLE STATUSを実行する以外に 確認・変更のできる場所はありませんでしょうか? ちなみにphpmyadminのバージョンは4.0.0です。 よろしくお願いいたします。

  • MySQLにおいてデータフォルダの変更が以下の対処を実施したのですが変

    MySQLにおいてデータフォルダの変更が以下の対処を実施したのですが変わりません。変わっていないことは旧フォルダに適当なフォルダ(aaaa)を作りshow databases実行するとaaaaがリストされるからそのように考えています。 申し訳ありませんが、どなたかご教授ください。 【実施した対処】 ・my.iniファイルのdatadirに新ディレクトリを指定。 ・mysqlを再起動 【環境】 ・Windows Vista SP2 ・MySQL 5.0

    • ベストアンサー
    • MySQL
  • データベースを分割することでパフォーマンスは向上する?

    現在、Windows2003server+Apache2.0.59+PHP5.2.6の環境のサーバとMySQL4.0.26の環境のサーバがあります。 ibdataのファイルサイズが10GBを超えています。使用しているデータベースは1つだけです。 この度、パフォーマンスの向上のためデータベースを分割すればいいのではないかと検証中です。 データベース分割にあたってMySQL4.1.22の環境を用意して、my.iniにinnodb_file_per_tableの記述を追加しました。 そして、データは分類ごとにデータベースを分けてレコードを格納しました。my.iniのパラメタは4.0の時とほぼ同等に設定しました。 この状態で検証をすると、4.0(分割なし)の状態と変わらないか少し遅いぐらいです。 この手法は、パフォーマンス向上を目的とした場合間違っていますか? 間違っている場合は、他にどのような方法がありますか? SQL文でのチューニングは試行錯誤の結果のものを実行しています。

  • MySQL のデーターフォルダー見当たりません。

    MySQL のデーターフォルダー見当たりません。 MySQL 5.1.50-win32 をインストールしました。サンプル・データは確認できましたが、データーフォルダーが見当たりません。XPにもWin-7にもインストールしたのですが、結果は同じです。同様な質問をされた方の回答も参考にしたのですが、該当するものはありませんでした。 MySQL Server 5.1の下にあるフォルダーとファイルは下記の通りです。 bin Docs lib ? この下に Plugin ? debug, ha_innodb.plugin share COPYING Exceptions-Client my my-huge my-innodb-heavy4G my-large my-medium my-small my-template 希望の場所にデーターフォルダーを作成することができますか? TerPadなどで簡単に 変更して作成できればその書き方もご教示ください。教材のCDにあるデーターを 一括してコピーする予定です。

  • MySQLの文字コードが変更されない

    お世話になっています。 EUCでPHPを書いています。 DBから取ったデータが文字化けしてしまいます。 全ての文字コードをujisにしたいのですが、変更できず困っています。 現在は以下のようになっています。 ――――――――――――――――――――――――――――――――――――― ■環境 Windows7(64bit) Mysql 5.5 ――――――――――――――――――――――――――――――――――――― ■my.iniのパス C:\ProgramData\MySQL\MySQL Server 5.5\my.ini ――――――――――――――――――――――――――――――――――――― ■サービスの起動パス "C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld" --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.5\my.ini" MySQL55 (my.iniでポート変えたらCLIから接続できなくなったので、設定は反映していると思います。) ――――――――――――――――――――――――――――――――――――― ■my.ini [client] port=3306 default-character-set=ujis [mysql] default-character-set=ujis [mysqld] port=3306 character-set-server=ujis init-connect=SET NAMES ujis skip-character-set-client-handshake default-character-set=ujis default-storage-engine=INNODB sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" max_connections=100 query_cache_size=0 table_cache=256 tmp_table_size=10M thread_cache_size=8 myisam_max_sort_file_size=100G myisam_sort_buffer_size=69M key_buffer_size=55M read_buffer_size=64K read_rnd_buffer_size=256K sort_buffer_size=256K innodb_additional_mem_pool_size=3M innodb_flush_log_at_trx_commit=1 innodb_log_buffer_size=2M innodb_buffer_pool_size=107M innodb_log_file_size=54M innodb_thread_concurrency=10 [mysqldump] default-character-set=ujis skip-opt create-options set-charset hex-blob single-transaction ――――――――――――――――――――――――――――――――――――― ■コマンドラインからの確認 mysql> status; --------------------------------- Server characterset: utf8 Db characterset: utf8 Client characterset: ujis Conn. characterset: ujis ――――――――――――――――――――――――――――――――――――― 何かヒントを頂けないでしょうか。

  • mysqlのmy.iniを設定したら起動しない

    phpからmysqlにデータをINSERTしたところ文字化けしたため、 my.iniに下記を追記しなければならないということを知り、設定しました。 [mysqld] default-character-set = utf8 skip-character-set-client-handshake [mysqldump] default-character-set=utf8 [mysql] default-character-set=utf8 ところが、my.iniファイルをちょっとでも編集すると、mysqlが起動しないというトラブルが発生しています。 mysqlからmy.iniファイル自体は見に行っているようなのですが、原因が分からず困っております。 環境は、 ・Windows7 Ultimate(64bit) ・Pleiades3.6 (Eclipse3.6 Helios) です。 お詳しい方からのご教示お待ちしております。

  • MySQLのストレージエンジンの種類について

    Windows環境でMySQL5.1.36のデータベースを使っています。 phpMyAdminで見るとストレージエンジンの種類が6つあります。 1) MEMORY 2) MyISAM 3) BLACKHOLE 4) MRG_MyISAM 5) CSV 6) ARCHIVE 私はInnoDBを良く使うのですがphpMyAdminではどのように設定するのでしょうか? InnoDBもMySQLのパラメータでバッファを増やすと、MEMORYエンジンと同じように 高速でINSERTのSQLが実行できます。 それを考えると、InnoDBだけ1個エンジンあれば良いと思ってしまうのですが、 なぜphpmyAdminでは6つのストレージエンジンがあるのでしょうか? それぞれの存在意義が知りたいです。

    • ベストアンサー
    • MySQL