2009-07-18 4 views
1

이 질문은 this thread을 기반으로합니다.MySQL에서 .sql-file을 실행하려면

나는

sudo mysql 
\. /users/cs/SO_db/posts.sql 

나는 오류

ERROR 1146 (42S02): Table 'personal.posts' doesn't exist 

MySQL's manual

A five-character SQLSTATE value ('42S02'). The values are specified by ANSI SQL and ODBC and are more standardized. Not all MySQL error numbers are mapped to SQLSTATE error codes. The value 'HY000' (general error) is used for unmapped errors.

Error: 1146 SQLSTATE: 42S02 (ER_NO_SUCH_TABLE)

Message: Table '%s.%s' doesn't exist

말한다 얻을 실패 실행

어떻게 오류 메시지를 해결할 수 있습니까?

+1

정확히 무엇을하려고합니까? –

+0

저는 SO 사용자 데이터를 .xml -form 형식으로 MySQL에 저장하려고합니다. –

답변

2

내가 언급 한 게시물에서 언급했듯이 먼저 테이블을 만들어야합니다. 필요한 열의 XML 또는 SQL 출력을 확인하십시오. 예 : 여기에 badges.xml의 출력을 저장할 수있는 테이블이 있습니다. (다른 것들은 현재 사용 가능하지 않습니다.)

CREATE TABLE `badges` (
    `Id` int(11) NOT NULL default '0', 
    `UserId` int(11) not NULL, 
    `Date` datetime not NULL, 
    `Name` varchar(32) not NULL, 
    PRIMARY KEY (`Id`), 
    KEY `Date` (`Date`), 
    KEY `UserId` (`UserId`) 
) ; 
+0

답변 해 주셔서 감사합니다. --- mysql db_name output.file'에 의해 MySQL 매뉴얼에 따라 SQL 명령어를 실행할 수 있습니다. –

+0

MyQSL 데이터베이스'test'에 테이블'badges'가 있습니다. ** http://stackoverflow.com/questions/1146470/to-read-sos-data-dump-effectively/1147259#1147259에서 Python 코드를 실행하면 데이터를 직접 MySQL 데이터베이스에 삽입 할 수 있습니다. 현재로서는 텍스트 파일입니까? ** –

+0

"python importscript.py badges"를 실행하십시오.xml | mysql test " 사용자 이름/암호 등을 지정해야하는 경우 mysql 명령에 다른 인수가 필요할 수 있습니다. – nos

0

실제로 '개인 데이터베이스'와 '게시물'테이블을 만들었습니까?

mysql -h localhost -u <user> -p<password> -D personal < /users/cs/SO_db/posts.sql 
0

귀하의 posts.sql 개인 스키마에 존재하지 않는 게시물의 테이블을 참조하는 일부 진술이 포함되어

당신은 뭔가를 시도 할 수 있습니다.

오류를 "해결"하려면 테이블이 만들어 졌는지 확인하십시오!

3

로드 한 SQL 스크립트는 데이터베이스에 존재하지 않는 데이터베이스 및/또는 테이블을 참조합니다.

일반적으로 시스템 사용자 권한이 MySQL 사용자와 다르므로 sudo과 함께 mysql 도구를 호출하지 않습니다. 이 명령은 사용자 <mysqluser>localhost에 MySQL 서버에 연결하고 선택 mysql 도구로 'somefile.sql'를로드 할

cat somefile.sql | mysql -u <mysqluser> -p <mysqldb> 

:

내가 뭔가를 시도 할 것입니다 mysql을 통해 SQL 스크립트를 실행하려면 데이터베이스 <mysqldb>. mysql 도구는 스크립트를 실행하기 전에 <mysqluser>의 액세스 암호를 묻는 메시지를 표시합니다.

0

아마도 "create table"명령이 sql 파일에 포함되어 있지 않습니다.

관련 문제