質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

UNIX

UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。

Q&A

解決済

1回答

887閲覧

【MySQL】CREATE TABLEの保存先をデフォルト以外のディレクトリに指定したい【Linux】

hei

総合スコア12

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

UNIX

UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。

0グッド

0クリップ

投稿2017/12/28 04:22

表題について,お力を貸してください.
サーバー関係,データベース関係共に初心者のため,読み辛い点等ありましたらすみません.

現在,Linuxサーバーに構築されたデータベース(MySQL)を使って作業しているのですが,
ある日を境に,LOAD DATA中に"The table is full"といった表示が出て処理が完了しなくなりました.

そこでサーバーのディスク使用状況をdfコマンドで確認したところ,1行目にあるディレクトリが使用率100%となっており,それ以外は数%程度しか使われていない状況でした.

ネットで調べたところ,CREATE TABLE時にデータの保存先(ディレクトリ)を指定できることがわかり,下記コードを実行してみました(作成テーブル名:ex,指定ディレクトリ:/data/external)

mySQL

1CREATE TABLE ex (x int) data directory = '/data/external'

しかし,下記のエラーコードが出力されてしまいます.

MySQL

1ERROR 1030 (HY000): Got error 168 from storage engine

以上,情報が少なく申し訳ありませんが,想定できる対処法等ご教授いただけますでしょうか.

なお,MySQLのデフォルトの保存先を変更する方法もあるようなのですが,今回は勉強のため
デフォルト以外のディレクトリを指定する方法を教えていただきたいです.

どうぞよろしくお願いいたします.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

MySQLにおいてデータベースはディレクトリなので
シンボリックリンクで別のディスク(?)に逃してあげて下さい

投稿2017/12/28 04:44

yambejp

総合スコア114572

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hei

2017/12/28 05:14

素早いご回答ありがとうございます. 確認させていただきたいのですが,デフォルトの保存先にある個々のデータベース(ディレクトリ)を別のディスクに移動させて,移動先へのシンボリックリンクを作成するということでしょうか.
yambejp

2017/12/28 05:23

mkdir /hoge/fuga をつくっておいてデフォルトのディレクトリが /var/db/mysql ならば ln -s /hoge/fuga /var/db/mysql/fuga のようにDBを作成します。 ※/hoge/fuga自体のパーミッション設定もきちんとしておいてください mysql:mysql が650あたりですかね 既存のDBを移すならmkdirをmvでディスク間移動したあとlnすればよいでしょう
hei

2017/12/28 07:51

補足いただきありがとうございます. 大変厚かましいお願いですが,シンボリックリンクを使わない方法で対処する方法など思いつくものなどあれば教えていただけないでしょうか. (サーバーを管理している者が,シンボリックリンクはできるだけ使用したくないと申しております.) 大変お手数ですが,よろしくお願いします.
yambejp

2017/12/28 08:10

innodbを利用するのであれば --skip-symbolic-links オプションを使用しておらず innodb_file_per_table オプションが有効であれば create table でテーブル作成する際にengine=innodbとともに data directoryが指定できるみたいです マニュアルには「指定されたディレクトリ内にデータベース名に対応するサブディレクトリを作成し、さらにその中に新しいテーブルの .ibd ファイルを作成」とあります https://dev.mysql.com/doc/refman/5.6/ja/create-table.html
hei

2017/12/28 16:48

大変わかりやすく教えていただき、本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問