2014-05-10 2 views
0

BLOB 유형의 img라는 이름의 열이있는 MYSQL 데이터베이스가 있습니다.BLOB 값을 MySQL 데이터베이스에 삽입하십시오.

나는 다음과 같이 해당 컬럼에 값을 삽입 할 때 :

LOAD_FILE('C:/Documents and Settings/All Users/Documents/My Pictures/Sample Pictures/Sunset.jpg') 

작동!

그러나이 같은

:

LOAD_FILE('C:/Documents and Settings/Administrator/My Documents/My Pictures/picture.jpg') 

작동하지 않으며 나를 열 IMG가 null 될 수 없음을 알려줍니다!

두 경우 모두 파일이 존재하며 루트 사용자 (모든 권한)로 데이터베이스에 연결하고 있는데 왜이 오류가 발생하는지 이해할 수 없습니다. 사전

+2

당신이 관리자 권한으로 데이터베이스 서버 (mysqld를)를 실행하는 큰 그림이다? 최신 Windows 버전에서는 Administrator 폴더의 파일에 액세스하기 위해 관리자 (관리자 명령 프롬프트 또는 서비스 인 경우 관리자 계정)로 실행해야합니다. –

+0

Windows에서 "Administrator"사용자로 로그인하고 있습니다! – Simo03

+0

Windows에는 UAC (사용자 액세스 제어)가 있습니다. 관리자 권한으로 로그인 한 경우에도 권한 상승없이 특정 작업이 수행되는 것을 허용하지 않습니다. 관리자 명령 프롬프트 (명령 프롬프트 아이콘을 마우스 오른쪽 버튼으로 클릭하고 관리자 권한으로 실행 선택) 또는 관리자 서비스로 mysqld를 실행해야합니다. –

답변

0

에서

덕분에 나는 대답으로이를 게시 할거야, 필요에 따라 그것을 수정할 수 있습니다. mysqld가 관리자 권한으로 실행해야한다고 언급 한 의견에서. 고려할 때, 나는 창유리가 이유를 위해 장소에 있기 때문에 이것이 실제로 좋은 생각이 아니다는 것을 깨달았다. 더 나은 옵션은 폴더에 필요한 권한을 추가하는 것입니다.

관리자의 내 문서 폴더로 이동하고 내 그림을 마우스 오른쪽 단추로 클릭 한 다음 보안으로 이동하고 읽기 속성으로 사용 권한에 "LOCAL SERVICE"를 추가하십시오. 그런 다음 MySQL 서버는 해당 폴더에서 읽을 수 있어야합니다.

로컬 서비스가 적절한 계정인지 확인하려면 start -> run으로 이동하여 services.msc을 입력하고 Enter 키를 누릅니다. MySQL을 찾아 마우스 오른쪽 버튼을 클릭하고 속성을 클릭 한 다음 Log On 탭으로 이동하여 실행되는 계정을 확인하십시오. 이 폴더는 읽기 권한이있는 폴더의 보안 탭에 추가해야합니다.

1

아마 의 max_allowed_packet

1.JPG에 문제는 작은 그림과 2.JPG이

mysql> DESCRIBE blob_files; 
+-------+---------+------+-----+---------+----------------+ 
| Field | Type | Null | Key | Default | Extra   | 
+-------+---------+------+-----+---------+----------------+ 
| id | int(11) | NO | PRI | NULL | auto_increment | 
| file | blob | YES |  | NULL |    | 
+-------+---------+------+-----+---------+----------------+ 
2 rows in set (0.01 sec) 

mysql> INSERT INTO blob_files(file) VALUE(LOAD_FILE('D:/2.jpg')); 
Query OK, 1 row affected, 1 warning (0.00 sec) 

mysql> SHOW WARNINGS; 
+---------+------+-------------------------------------------------------------- 
------------------+ 
| Level | Code | Message 
        | 
+---------+------+-------------------------------------------------------------- 
------------------+ 
| Warning | 1301 | Result of load_file() was larger than max_allowed_packet (104 
8576) - truncated | 
+---------+------+-------------------------------------------------------------- 
------------------+ 
1 row in set (0.00 sec) 

mysql> INSERT INTO blob_files(file) VALUE(LOAD_FILE('D:/1.jpg')); 
Query OK, 1 row affected (0.05 sec) 
관련 문제