2014-01-21 57 views
1

下面給出了在mySql數據庫中插入視頻的查詢。在數據庫中插入視頻

insert into media(name,data) values ('image', load_file('C:\ao.mp4')) 

該表有2列,名稱和數據,其中數據具有BLOB數據類型。第一列被添加到表中,但第二列返回null。

我已閱讀提供的答案here,但它不工作。

+0

什麼樣的blob你好? TINYBLOB,BLOB,MEDIUMBLOB,LONGBLOB =? – Melon

+0

BLOB,正常的數據類型。我需要LONGBLOB嗎? –

+0

也許是它的問題....你應該嘗試一下。 – Melon

回答

1

我想你甲肝2種選擇:

  1. 創建多個字段:VIDEO1,VIDEO2,等...和他們分裂的視頻編碼。
  2. 增加max_allowed_pa​​cket的:source link

變化my.ini文件。包括下的[mysqld]單線在文件

max_allowed_pa​​cket個= 500M

現在重啓MySQL服務,和你做

How to locate my.ini file.

2

創建表:

CREATE TABLE media (
       GAME_ID INTEGER NOT NULL PRIMARY KEY, 
       name VARCHAR (20), 
       VIDEO LONGBLOB); 

您的插入查詢Ÿ將類似於此

INSERT INTO media values ('File_Name',LOAD_FILE("C:\\Users\\Public\\Videos\\Sample Video\\ao.mp4")); 

LOAD_FILE的結果()比max_allowed_pa​​cket個大(1048576)

你可能不得不改變它在客戶端(你正在運行做導入)以及正在運行並接受導入的守護進程mysqld。此外

mysql --max_allowed_packet=100M -u root -p database < dump.sql 

,改變下的mysqld部分my.cnf中的my.ini或文件,並設置 max_allowed_pa​​cket個= 100M,或者你可以運行:

對於客戶端,你可以在命令行上指定它這些命令在連接到相同的服務器一個MySQL控制檯:(使用一個非常大的值的數據包大小)

set global net_buffer_length=1000000; 
set global max_allowed_packet=1000000000; 

定位.ini文件

要配置客戶端和實用程序應用程序,請在Windows安裝目錄中創建一個新的my.ini文件。更多信息 here

+0

我在Windows上,所以我只需要在命令行上嘗試這些命令,對吧? –

+0

@PrakharMohanSrivastava這應該是mysql命令行提示符 –