MySQL에서 SQL 쿼리가 포함 된 텍스트 파일을 실행하고 싶습니다.
나는 달리기를 시도 source /Desktop/test.sql
하고 오류를 받았다.
mysql>. \ home \ sivakumar \ Desktop \ test.sql 오류 : '\ home \ sivakumar \ Desktop \ test.sql'파일을 열지 못했습니다 : 오류 : 2
내가 뭘 잘못하고 있는지에 대한 아이디어가 있습니까?
MySQL에서 SQL 쿼리가 포함 된 텍스트 파일을 실행하고 싶습니다.
나는 달리기를 시도 source /Desktop/test.sql
하고 오류를 받았다.
mysql>. \ home \ sivakumar \ Desktop \ test.sql 오류 : '\ home \ sivakumar \ Desktop \ test.sql'파일을 열지 못했습니다 : 오류 : 2
내가 뭘 잘못하고 있는지에 대한 아이디어가 있습니까?
답변:
MySQL 명령 줄에 mysql>
있는 경우 SQL 파일을로 선언해야합니다 source
.
mysql> source \home\user\Desktop\test.sql;
\
공백보다 먼저 사용 하거나 파일 이름을로 바꿉니다 "
.
많은 옵션이 있습니다.
mysql -h hostname -u user database < path/to/test.sql
-p
이 옵션을 사용하여 암호를 제공 할 수 있지만 권장하지는 않습니다. 동일한 호스트에있는 다른 사용자 ps
는이 경우 시스템 도구를 사용 하여 읽을 수 있습니다 .
-p
암호가 다음 줄에 입력하는 인수 프롬프트없이
다음 명령을 사용하여 텍스트 파일로 작성된 mysql 문을 실행할 수 있습니다.
mysql -u yourusername -p yourpassword yourdatabase < text_file
데이터베이스가 아직 생성되지 않은 경우 먼저 다음을 사용하여 mysql에 로그인하십시오.
mysql -u yourusername -p yourpassword yourdatabase
그때:
mysql>CREATE DATABASE a_new_database_name
그때:
mysql -u yourusername -p yourpassword a_new_database_name < text_file
그렇게해야합니다!
자세한 정보는 여기 : http://dev.mysql.com/doc/refman/5.0/en/mysql-batch-commands.html
mysql -u yourusername -p"yourpassword"
가장 좋아하는 옵션은 다음과 같습니다.
mysql --user="username" --database="databasename" --password="yourpassword" < "filepath"
""로 문자열을 묶을 때 잘못된 경로와 공백으로 인한 실수를 피하고 아마도 내가 경험하지 못한 문자에 대한 더 많은 문제를 피하기 때문에이 방법을 사용합니다.
@elcuco 주석을 사용하면이 명령을 [space]와 함께 사용하여 bash에 기록에 저장하지 말라고 명령하면 대부분의 bash에서 즉시 작동합니다.
여전히 명령을 기록에 저장하는 경우 다음 솔루션을 확인하십시오.
추가 보안 편집
추가 안전을 위해 다음 명령을 사용하고 명령 행 입력에 비밀번호를 입력하십시오.
mysql --user="username" --database="databasename" -p < "filepath"
모든 최고의 답변이 좋습니다. 그러나 다만 만일 누군가가 원격 서버에 텍스트 파일에서 쿼리를 실행하고자 AND , 당신은이 작업을 수행 할 수 있습니다 (대신 콘솔에 표시의) 파일에 결과를 저장 :
mysql -u yourusername -p yourpassword yourdatabase < query_file > results_file
이것이 누군가를 돕기를 바랍니다.
-p
암호와 비밀번호 사이에 공백이 없어야 합니다
SELECT ... INTO OUTFILE /path/to/file.csv
보다 효율적인 방법 이라고 생각 합니다. 여기에서 옵션과 구문을 참조하십시오 -dev.mysql.com/doc/refman/5.7/en/select-into.html
나는이 답변을 찾기 위해 여기에 왔으며, 여기에 내가 가장 잘 맞는 것을 발견했습니다. 참고 Ubuntu 16.xx를 사용하고 있습니다.
mysql -u <your_user> - p
source file_name.sql
도움이 되었기를 바랍니다.
mysql -u<user> -p -e 'source filename.sql'
mysql> source C:\Users\admin\Desktop\fn_Split.sql
작은 따옴표를 지정하지 마십시오.
위의 명령이 작동하지 않으면 파일을 c : 드라이브에 복사하고 다시 시도하십시오. 아래 그림과 같이,
mysql> source C:\fn_Split.sql
명령 행에서 직접 비밀번호 인수를 전달하지 않는 것이 좋습니다. ~/.bash_history
파일에 저장 되며 다른 응용 프로그램에서 액세스 할 수 있습니다.
대신 이것을 사용하십시오 :
mysql -u user --host host --port 9999 database_name < /scripts/script.sql -p
Enter password:
mysql -uusername -ppassword database-name < file.sql
그것을하는 많은 방법.
From Workbench: File > Run SQL Script -- then follow prompts
From Windows Command Line:
Option 1: mysql -u usr -p
mysql> source file_path.sql
Option 2: mysql -u usr -p '-e source file_path.sql'
Option 3: mysql -u usr -p < file_path.sql
Option 4: put multiple 'source' statements inside of file_path.sql (I do this to drop and recreate schemas/databases which requires multiple files to be run)
mysql -u usr -p < file_path.sql
명령 행에서 오류가 발생하면 이전에 실행했는지 확인하십시오
cd {!!>>mysqld.exe home directory here<<!!}
mysqld.exe --initialize
이것은 mysqld.exe 디렉토리 내에서 실행해야하므로 CD입니다.
이것이 도움이 되길 바랍니다.
mysql -u yourusername -p yourpassword yourdatabase < text_file
원격 서버 (Amazon의 EC2)에서 작동하지 않았기 때문에 ...
데이터베이스가 먼저 작성되어 있는지 확인하십시오.
그때:
mysql --host=localhost --user=your_username --password=your_password your_database_name < pathTofilename.sql
나중에 참조 할 수 있도록 msql 콘솔의 Windows에서 위에서 언급 한 방법과 비교하여 작동합니다.
mysql >>source c://path_to_file//path_to_file//file_name.sql;
루트 드라이브의 이름이 "c"가 아닌 경우 드라이브 이름과 교환하십시오. 먼저 백 슬래시를 시도하십시오. 작동하지 않으면 슬래시를 시도하십시오. 작동하지 않으면 전체 파일 경로, 파일 이름에 .sql 확장자가 있는지 확인하고 버전이 세미콜론을 요구하는 경우 해당 경로가 있는지 확인한 후 다시 시도하십시오.
나는이 오류가 있었고 아무 소용이 없었던 모든 조언을 시도했다.
마지막으로 문제는 내 폴더에 폴더 이름에 공백이있어 폴더 경로에 슬래시로 표시된다는 것입니다. 찾아서 제거하면 정상적으로 작동합니다.