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

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

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

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

Ruby on Rails 3

Ruby on Rails3はRubyによって書かれたオープンソースのウェブフレームワークです。Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

2回答

12857閲覧

sqlでのmax_allowed_packetの方法について。

YasutakaKonishi

総合スコア10

MySQL

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

Ruby on Rails 3

Ruby on Rails3はRubyによって書かれたオープンソースのウェブフレームワークです。Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2016/07/11 07:52

現在、Ruby on Railsでサービスを開発中のものです。

ユーザーが音声ファイルをデータベースに登録できるサービスを作成しているのですが、6MB程度のファイルをアップした時は、大容量のため、アップロードできないようになってしまいます。

色々調べたのですが、コマンドライン(ターミナル)上で、max_allowed_packetを変更すれば容量が大きなファイルもアップロード可能になるということで、ターミナルで以下のように設定したのですが、反映されません。

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

(ログイン後)
mysql> set global max_allowed_packet=33553408;


(以下が表示)
Query OK, 0 rows affected (0.00 sec)

(反映を確認のため、以下を入力)
mysql> show variables like 'max_allowed_packet';
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+
1 row in set (0.00 sec)

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

上記のように、max_allowed_packetが反映されません。
原因等お分かりになる方がいらっしゃれば、ご教示頂けますと幸いです。

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

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

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

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

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

guest

回答2

0

ベストアンサー

globalが抜けていませんか?

show global variables like 'max_allowed_packet';

以下、追記

set global ...

した後は、新しいセッションに対してその値が有効となります。
既存のセッションは変更されていないので、古い値が表示されています。

一度そのセッションを終了して、再度接続すれば

show variables like 'max_allowed_packet';

でも、設定値が確認できます。

投稿2016/07/11 07:57

編集2016/07/11 08:03
moonphase

総合スコア6621

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

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

KiyoshiMotoki

2016/07/11 11:31

おっしゃる通り、マニュアルにその旨が記載されていますね。 https://dev.mysql.com/doc/refman/5.6/ja/set-statement.html > グローバルシステム変数を変更すると、その値はサーバーが再起動するまでの間記憶され、新しい接続に利用されます。 > (中略) > ただし変更は、変更後に接続するクライアントの対応するセッション変数にのみ影響を与えます。 > グローバル変数の変更は、現在接続中のクライアントのセッション変数に影響を与えません > (SET GLOBAL ステートメントを発行するクライアントのセッション変数にも影響を与えません)。
YasutakaKonishi

2016/07/11 14:40

ありがとうございます!こちら、一時的な変更なようで、この方法で永続的にサイズ変更をする方法をご存知でしたら、教えていただけるとありがたいです。
moonphase

2016/07/11 23:19

永続的に変更する場合は /etc/my.cnf max_allowed_packet を設定してください。 次回のMySQL起動時にその値が設定されます。
guest

0

ファイルはファイルとして管理して、DBに投入しなければよいのでは?

投稿2016/07/11 08:06

yambejp

総合スコア114583

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

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

YasutakaKonishi

2016/07/11 14:40

ありがとうございます。ど素人のため、その方法を理解しておらず、今回はDB投入で進めたいと思っています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問