• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:テーブルを他のHDにストライピングするには?)

テーブルを他のHDにストライピングする方法とは?

このQ&Aのポイント
  • テーブルを他のハードディスクにストライピングする方法を解説します。
  • 「DATA DIRECTORY」オプションを使用してテーブルを指定したハードディスクに配置することができますが、権限の問題が発生する可能性があります。
  • 権限の設定に関するエラーの対処方法を説明します。

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

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

>システムファイルに作成した「/data」には「HD10G」のシンボリックリンクをはっているのですが、ここにMYSQLのテーブルをストライピングさせようと、MySQLにログインしたユーザーから以下のコマンドを実行しました。 環境についてはよく分かりませんが、気になるところがいくつかあるので確認してみることをお勧めします。 sudo chmod 777 /data これは多分、 /data シンボリックリンクに対して設定しているのであってディレクトリに対するアクセス権限を付与したことになっていないのかも知れません。そうすると、 /tmp はディレクトリですのでうまくいくわけです。 仮に、シンボリックリンクを作成して任意のアクセス権限を付けて、そのアクセス権限でアクセスできるとしたら、任意のファイルに対してアクセスできるというセキュリティ問題になることは常識的に考えられます。 つまり、 /data のリンク先のディレクトリに対するアクセス権限を変更する必要があると考えられます。 /data ==> /mnt/hda sudo chmod 777 /mnt/hda みたいな感じかなと思います。 参考になれば幸いです。

20081217
質問者

お礼

OrangeCup150さんの通りにやって見ましたがダメでした。 解決したので、自分の備忘録として詳しく書き残して置きます。 さらに調べた所、運良く全く同じ環境でこの問題に悩んでいる人をQ&Aサイトで発見しました。 「ERROR 1 (HY000): Can't create/write to file (Errcode: 13) /tmp」でググればヒットしました。 http://stackoverflow.com/questions/2783313/how-can-i-get-around-mysql-errcode-13-with-select-into-outfile Ubuntuのセキュリティツール、AppArmorがデフォルトで「/tmp」以外への作成や書き込みを禁止しているそうです。 /etc/apparmor.d/usr.sbin.mysqldを編集して /usr/sbin/mysqld { ... /var/log/mysql/ r, /var/log/mysql/* rw, /var/run/mysqld/mysqld.pid w, /var/run/mysqld/mysqld.sock w, ... } を以下のように「/data/ r,」と「/data/* rw,」を追加して /usr/sbin/mysqld { ... /var/log/mysql/ r, /var/log/mysql/* rw, /var/run/mysqld/mysqld.pid w, /var/run/mysqld/mysqld.sock w, /data/ r, /data/* rw, } 「# sudo /etc/init.d/apparmor reload」で編集を適応します。

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

関連するQ&A

  • phpmyadminでのテーブル作成

    phpmyadminでテーブルを作成しようとするとエラーが発生します。 <実行されたSQLクエリ> CREATE TABLE `個人情報` ( `氏名` VARCHAR( 30 ) NOT NULL , PRIMARY KEY ( `氏名` ) ) <mysqlのメッセージ> #1 - Can't create/write to file '.\住所録\個人情報.frm' (Errcode: 2) どうやらファイルを作成できないと言われているみたいです。 いろいろ試してみましたがよくわかりません。 初歩の初歩ですいませんがご解答お願いします。

    • ベストアンサー
    • MySQL
  • select * outfileがうまくいきません。

    rootで接続して データのバックアップを試そうとしたのですが、エラーが出ます。 mysql> select * from user into outfile "/root/outfile"; ERROR 1 (HY000): Can't create/write to file '/root/outfile' (Errcode: 13) 他のディレクトリも試したのですがうまくいきません。/var/tmp以下はうまくいきました。なぜでしょうか?

    • ベストアンサー
    • MySQL
  • MySQLの実データはどのフォールダーにありますか?

    現在MySQLのDUMPはphpMyadminを利用して、xport&importを実行しております。 質問は実際に存在するMySQLデータは MySQL/DB名/ テーブル名.frm テーブル名.MYD テーブル名.MYI でしょうか。これをDUMPしているということでしょうか。 また、EXPORTをせずに上記の3種類のファイルをコピーしても同様な結果が得られるのでしょうか。 ご教授をお願いいたします。

    • ベストアンサー
    • MySQL
  • Oracle8iでテーブルをエクスポートする方法

    Oracle10gを使用しています。Oracle8iから特定のテーブルを抽出してOracle10gに入れようとしましたが、Oracle10gのexpコマンドは互換性の問題で8iに対して使えませんでした。そこでOracle8iのexpコマンドを使用しようかと考えましたが、テーブルごとのエクスポートができないとのことで不可(データベースが大きすぎるため、そもそも8iのExpコマンドを実行できる権限を持っていないのでできませんが)。 仕方がないのでExpコマンドはあきらめて、テーブル定義抽出→データをCSVまたはSQLで抽出という手順でデータを移そうかと考えています。データの抽出はできたのですが、テーブル定義の取得は10gで使えるdbms_metadata.get_ddlが使用できないので取得できずにこまっています。8iでテーブル定義を取得するにはどうしたらいいのでしょうか? なお当方8iのデータベースのSystem/Sys権限を所有していないません。また8iがインストールされているサーバへログインすることもできません。それを考慮した上で実現可能な方法をご提示願います。

  • Accessでのテーブルのコピー

    はじめまして、よろしくおねがいします。 リンクテーブルのバックアップテーブルを作りたいのですが、 Accessで出来るでしょうか? Access2003にて、 「Create table TABLE_A as select * from TABLE_B;」 のクエリを実行しようとすると、 「CREATE TABLEステートメントの構文エラーです」 とエラーが出ます。 TABLE_Bテーブルは、他のDBからのリンクテーブルです。

  • MYSQLのテーブルデータについて

    MySQLのテーブルデータ(いくつかある)の中身を、テーブルを残したまま中のデータのみリセットを行いたいのですが、わかりません。 myisamchk -r とかのようにコマンドで出来るものなんでしょうか? 中身のデータのリセット方法があれば教えてください。 よろしくお願いします。

  • WinとLinuxでMySQLのファイルは同じ?

    こんばんは Windowsにwampサーバーを入れてMySQLを使っています。 このたび、Linuxにも同じデータを入れることになったのですが、一部のテーブルでデータ量が大きいものがあり、MYDファイルなどを直接移動できないかと思って試しましたができませんでした。 ファイルのコピーは成功してサイズの大きいファイルを転送できたのですが、phpMyAdminでも、実際のデータ取得画面でもエントリ数が0になってしまっています。 パスは次の通りです。 /usr/local/mysql/var/データベース名 以前に Win から Win に、MYD、MYI、FRMの各ファイルをそっくりそのまま移したことがあるのですが、正常に移行できました。多少のバージョンは違いましたが、どちらもwampです。 Win から Linux へは、MYDファイルなどを直接移しても反映されないのでしょうか?

  • 他ファイルのテーブルの情報を取得したい

    アクセス DCount関数で他のファイルのテーブルの件数を取得することは不可能でしょうか? ファイル1.mdbとファイル2mdbがあり、 ファイル2mdbには、 テーブル名 フィールド:a と言うデータがあります。 ファイル1.mdbにはテーブルはありません。 ファイル1.mdbのVBAで ファイル2.mdbのテーブル名のレコード件数を取りたいのですが 不可能でしょうか? ファイル1.mdbのVBEで Sub 関数で件数を取得() MsgBox DCount("[テーブル名]", "a") End Sub とやってもエラーになります。この関数にファイルを指定する部分もありません。 エラー内容は --------------------------------------------------------- 実行時エラー3078 入力テーブルまたはクエリーが見つかりませんでした。        そのテーブル・クエリーが存在するか確認して下さい。 --------------------------------------------------------- です。 ADOを使うしかないのでしょうか?できればADOは使いたくありません。 アドバイスよろしくお願いします。

  • 大きいデータ数のテーブルに対するインデックス作成

    mySQL server 5.1 でのindex作成について質問です かなり大きいデータ数(1000億)のテーブルを扱う必要があり検索速度向上のためにindexを作成しようとしています。テーブルのdouble型のカラムに対してインデックス作成コマンドを入力しましたが(create index)、数日経ってもまだインデックス作成が終わりません。長すぎて何か問題でも起きているのでは、と思ってのですが同様の形式のサイズの小さいデータベースに対して同様の処理を行うと問題なく終わります。 なんらかの方法でインデックス作成のスピードを上げることは可能でしょうか?たとえばint型のデータ型に変換するとスピードが向上するなどはあるでしょうか?

    • ベストアンサー
    • MySQL
  • 外付けHDについて

    先日40Gの内蔵HDを120Gに交換したので、40GのHDをHDはいーるKIT USBをUSB2.0にて接続し、論理ディスクとしてフォーマット、Cドライブをパーティションを切らずにシステムとして使用(TV録画に使うためパフォーマンス低下を防ぐため)しています。外付けにした元のHDなんですが、データドライブ、Cドライブのデータバックアップとして使用していますが、ファイルが読み込めないエラーが多発して困っています。WinXPのディスクのチェックで再起動後にチェックすることはUSB接続のHDで可能でしょうか?いまは仕方ないのでコマンドプロンプトのCHKDSK d: /f /r にて対応していますが、たびたびファイルが破損するのでCHKDSKをするのが大変です。不良セクタができたら、普通はそのセクタはもうOSでは使用しないんですよね?外付けHDのファイルシステムの保全方法を教えてください。

このQ&Aのポイント
  • 現在、ファーストプラズマに必要な建屋とインフラは75%完成し、機器とプラントの組立が進行中です。
  • ファーストプラズマから2035年の本格的な核融合運転開始までは、運転に向けて施設全体の準備期間です。
  • 2025年にファーストプラズマ(運転開始)を予定しています。その後、運転を徐々に進めて炉内機器を挿入、重水素と三重水素を燃料とした運転開始を2035年に計画しています。
回答を見る