programing

MySQL에서 SQL 스크립트를 실행하는 방법

copysource 2022. 9. 18. 16:15
반응형

MySQL에서 SQL 스크립트를 실행하는 방법

MySQL에서 SQL 쿼리를 포함하는 텍스트 파일을 실행하고 싶습니다.

는 뛰려고 .source /Desktop/test.sql하였습니다.

mysql> . \home\sivakumar\test.sql 오류: 파일 '\home\sivakumar\Desktop\test.sql'을 열지 못했습니다.오류: 2

내가 뭘 잘못하고 있는지 알기나 해?

MySQL에mysql>을 SQL로 .source.

mysql> source \home\user\Desktop\test.sql;

다음과 같은 다양한 옵션을 선택할 수 있습니다.

  • MySQL my my my my my 。mysql -h hostname -u user database < path/to/test.sql
  • MySQL GUI 도구를 설치하고 SQL 파일을 연 다음 실행합니다.
  • 데이터베이스를 웹 서버를 통해 사용할 수 있는 경우 phpmysql 사용

다음 명령을 사용하여 텍스트파일에 기술된mysql 문을 실행할 수 있습니다.

mysql -u yourusername -p yourpassword yourdatabase < text_file

데이터베이스가 아직 생성되지 않은 경우 먼저 다음을 사용하여 mysql에 로그인합니다.

mysql -u yourusername -p yourpassword

그 후, 다음과 같이 합니다.

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 --user="username" --database="databasename" --password="yourpassword" < "filepath"

이 방법을 사용하는 이유는 "를 사용하면 잘못된 경로와 공백 오류를 피할 수 있기 때문입니다.또, 아마 내가 마주치지 않았던 문자도 문제가 더 많을 것입니다.


@elcuco 코멘트를 사용하면 이 명령어를 [space]와 함께 사용할 것을 권장합니다.그러면 bash는 이 명령어를 이력 내에 저장하는 것을 무시하도록 지시합니다.대부분 bash에서는 즉시 사용할 수 있습니다.

명령어가 기록에 저장되는 경우 다음 해결 방법을 참조하십시오.

기록 없이 명령 실행


추가 보안 편집

만약을 위해 다음 명령을 사용하여 명령줄 입력에 암호를 입력할 수 있습니다.

mysql --user="username" --database="databasename" -p < "filepath"

상위 정답은 모두 좋습니다.단, 리모트서버의 텍스트파일에서 쿼리를 실행하여 결과를 (콘솔에 표시하는 대신) 파일에 저장하려는 경우 다음과 같이 할 수 있습니다.

mysql -u yourusername -p yourpassword yourdatabase < query_file > results_file

이게 도움이 됐으면 좋겠네요.

저도 이 답을 찾아 여기에 왔습니다.그리고 여기 제가 가장 잘 알고 있는 것은 Ubuntu 16.x.x 입니다.

  1. 액세스 mysql:

mysql -u <your_user> - p

  1. mysql 프롬프트에서 다음과 같이 입력합니다.

source file_name.sql

이게 도움이 됐으면 좋겠다.

.sql 파일의 경로를 다음과 같이 지정합니다.

source c:/dump/SQL/file_name.sql;

이미지 참조:

mysql> source C:\Users\admin\Desktop\fn_Split.sql

작은 따옴표를 지정하지 마십시오.

위의 명령어가 동작하지 않는 경우는, 파일을 c:드라이브에 카피하고, 재시도 해 주세요.아래 그림과 같이

mysql> source C:\fn_Split.sql

리다이렉트 대신 다음 작업을 수행합니다.

mysql -h <hostname> -u <username> --password=<password> -D <database> -e 'source <path-to-sql-file>'

그러면 파일 경로에서 sql-file로 실행됩니다.

명령줄에서 직접 password 인수를 전달하는 것은 권장되지 않습니다.이 인수는~/.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 내에서 실행해야 합니다.

이것이 단지 불필요한 것이 아니라 도움이 되기를 바랍니다.

Linux 14.04에서 MySql 5.7로, 사용catmysql login으로 연결된 명령어:

cat /Desktop/test.sql | sudo mysql -uroot -p 

많은 MySQL 명령을 Shell에서 직접 실행할 때 이 방법을 사용할 수 있습니다.예:

echo "USE my_db; SHOW tables;" | sudo mysql -uroot -p 

명령어는 세미콜론(';')으로 구분해야 합니다.

위의 답변에서는 이 접근방식을 볼 수 없었고, 좋은 기여라고 생각했습니다.

슬래시/블랙슬래시를 변경하기만 하면 될 것 같습니다.

 \home\sivakumar\Desktop\test.sql

로.

 /home/sivakumar/Desktop/test.sql

따라서 명령어는 다음과 같습니다.

source /home/sivakumar/Desktop/test.sql

mysql 명령 프롬프트에서 다음 명령을 사용합니다.

source \\home\\user\\Desktop\\test.sql;

따옴표를 사용하지 마십시오.경로에 공백(' ')이 포함되어 있어도 따옴표는 사용하지 않습니다.

부터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 확장자가 있는 것을 확인해 주세요.또, 사용하고 있는 버전이 세미 콜론을 고집하고 있는 경우는, 그 패스가 있는 것을 확인하고, 재시도 해 주세요.

DRUPAL 환경을 찾고 있는 경우

프로젝트 디렉토리에서 drush 명령을 사용하여 실행할 수 있습니다.

drush sqlc

나는 이 오류를 가지고 있었고, 내가 얻을 수 있는 모든 조언을 시도했지만 소용이 없었다.

마지막으로, 폴더 이름에 폴더 경로에 슬래시로 표시되는 공백이 있는 것이 문제였습니다.한 번 찾아서 삭제하면 정상적으로 동작했습니다.

즉시 SQL 실행을 위해 Bash의 Here Strings를 사용합니다.

mysql -uroot -p <<<"select date(now())"

https://www.gnu.org/software/bash/manual/html_node/Redirections.html#Here-Strings

언급URL : https://stackoverflow.com/questions/8940230/how-to-run-sql-script-in-mysql

반응형