Как правильно выполнить файл SQL в MySQL в командной строке Windows 10? - PullRequest
0 голосов
/ 13 ноября 2018

Я почти тридцать минут пытался выяснить, как выполнить файл sql из командной строки Win 10, и я до сих пор не могу понять, как это сделать.

Я нахожусь в mysql> каталог, и я не могу понять, что такое «источник» до пути к файлу.Что такое «источник», который мне нужно ввести перед указанием пути к файлу MySql?

Вот мой путь к файлу bookorama.sql, который я пытаюсь выполнить: C: \ wamp64 \ bin\ mysql \ mysql5.7.23 \ bin

Bookorama.sql находится в пути к файлу в последней папке 'bin'.

Вот что я пытался найти до сих пор, но я продолжаюпробовал много предложений для ответов в этих постах, но я все еще не могу понять это правильно.

Не могу запустить MySQL из командной строки

Выполнение файла SQL

Как импортировать файл SQL с помощью командной строки в MySQL?

выполнить файл .sql с помощью командыстрока

https://tecadmin.net/run-sql-text-file-on-mysql-command-prompt/

Вот копия командной строки, которая пытается выполнить файл sql:

C:\wamp64\bin\mysql\mysql5.7.23\bin>mysql -hlocalhost -uroot -p
Enter password: *********
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 22
Server version: 5.7.23 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input 

mysql> use books
Database changed
mysql> -u bookorama -d books < bookoroma.sql
    -> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual 
that corresponds to your MySQL server version for the right syntax to use 
near '-u bookorama -d books < bookoroma.sql' at line 1
mysql> mysql
    -> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual 
that corresponds to your MySQL server version for the right syntax to use 
near 'mysql' at line 1
mysql> mysql -h localhost - u bookorama -p < bookorama.sql
    -> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual 
that corresponds to your MySQL server version for the right syntax to use 
near 'mysql -h localhost - u bookorama -p < bookorama.sql' at line 1
mysql> cd..
    -> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual 
that corresponds to your MySQL server version for the right syntax to use 
near 'cd..' at line 1
mysql> mysql -h localhost -u bookorama -D books -p < bookorama.sql
    ->
    -> CREATE TABLE Customers
    -> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual 
that corresponds to your MySQL server version for the right syntax to use 
near 'mysql -h localhost -u bookorama -D books -p < bookorama.sql

CREATE TABLE Custom' at line 1
mysql> -u bookorama -D books -P < bookorama.sql
    -> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual 
that corresponds to your MySQL server version for the right syntax to use 
near '-u bookorama -D books -P < bookorama.sql' at line 1mysql> -u root
    -> -p Oscar545* -D bookorama < bookorama.sql
    -> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual 
that corresponds to your MySQL server version for the right syntax to use 
near '-u root
-p Oscar545* -D bookorama < bookorama.sql' at line 1
mysql> mysql -h localhose u-root -D bookorama < 
C:\wamp64\bin\mysql\mysql5.7.23\bin.bookorama.sql
Show warnings disabled.
ERROR:
Unknown command '\b'.
ERROR:
Unknown command '\m'.
ERROR:
Unknown command '\m'.
ERROR:
Unknown command '\b'.
    -> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual 
that corresponds to your MySQL server version for the right syntax to use 
near 'mysql -h localhose u-root -D bookorama < 
C:amp64\bin\mysql\mysql5.7.23\bin.booko' at line 1
mysql> mysql -h localhose u-root -D bookorama < bookorama.sql
    -> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual 
that corresponds to your MySQL server version for the right syntax to use 
near 'mysql -h localhose u-root -D bookorama < bookorama.sql' at line 1
mysql> mysql -u root -p books < bookorama.sql
    -> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual 
that corresponds to your MySQL server version for the right syntax to use 
near 'mysql -u root -p books < bookorama.sql' at line 1
mysql> use books
Database changed
mysql> mysql -u root -p books < bookorama.sql
    -> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual 
that corresponds to your MySQL server version for the right syntax to use 
near 'mysql -u root -p books < bookorama.sql' at line 1
mysql> C:\wamp64\bin\mysql\mysql5.7.23\bin bookorama.sql
Show warnings disabled.ERROR:
Unknown command '\b'.
ERROR:
Unknown command '\m'.
ERROR:
Unknown command '\m'.
ERROR:
Unknown command '\b'.
    -> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual 
that corresponds to your MySQL server version for the right syntax to use 
near 'C:amp64\bin\mysql\mysql5.7.23\bin bookorama.sql' at line 1
mysql> source C:\wamp64\bin\mysql\mysql5.7.23\bin;
Show warnings disabled.
ERROR:
Unknown command '\b'.
ERROR:
Unknown command '\m'.
ERROR:
Unknown command '\m'.
ERROR:
Unknown command '\b'.
ERROR:
Failed to open file 'C:amp64\bin\mysql\mysql5.7.23\bin', error: 2
mysql> C:\wamp64\bin\mysql\mysql5.7.23\bin\bookorama.sql
Show warnings disabled.
ERROR:
Unknown command '\b'.
ERROR:
Unknown command '\m'.
ERROR:
Unknown command '\m'.
ERROR:
Unknown command '\b'.
ERROR:
Unknown command '\b'.
    -> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual 
that corresponds to your MySQL server version for the right syntax to use 
near 'C:amp64\bin\mysql\mysql5.7.23\bin\bookorama.sql' at line 1
mysql> mysql -h localhost -u root
    -> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual 
that corresponds to your MySQL server version for the right syntax to use 
near 'mysql -h localhost -u root' at line 1
mysql> -h localhost -root -pOscar545* books < bookorama.sql
    -> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual 
that corresponds to your MySQL server version for the right syntax to use 
near '-h localhost -root -pOscar545* books < bookorama.sql' at line 1
mysql> mysql -u root -p books < bookorama.sql
    -> ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual 
that corresponds to your MySQL server version for the right syntax to use 
near 'mysql -u root -p books < bookorama.sql' at line 1
mysql>

Ответы [ 2 ]

0 голосов
/ 26 декабря 2018

MySQL CLI (интерфейс командной строки), как и другие CLI или программы оболочки, включая базы данных (psql Postgres, sqlite3 SQLite, sqlcmd SQL Server, sqlplus Oracle), langauges (python.exe, perl.exe, php.exe, r .exe) и другие являются исполняемыми файлами (.exe), которые не запускаются с графическим интерфейсом, как большинство программных файлов .exes, но вызывают сеанс внутри окна терминала.

Для запуска таких сеансов CLI используются интерпретаторы командной строки, такие как Windows PowerShell и Cmd.exe или терминал Bash Unix (MacOS / Linux). По сути, есть два способа запуска команд MySQL:

  1. Вызов mysql.exe с аргументами без открытия продолжительного сеанса.

  2. Запустите сеанс mysql и выполните отдельные вызовы.

Ваша проблема заключается в том, что вы пытаетесь связать две вышеупомянутые команды, когда вы пытаетесь вызвать из командной строки mysql.exe с аргументами внутри mysql.exe или запустить его аргументы верхнего уровня в сеансе. Внутри CLI синтаксический анализатор интерпретирует только специальные команды MySQL, такие как source и прямые запросы SQL, которые не выполняются, mysql, вызовы или аргументы соединения (-h, -u) без вызывающей команды оболочки: \!.

Просто используйте соответствующие вызовы вне сеанса CLI:

cd C:\amp64\bin\mysql\mysql5.7.23\bin
mysql -h localhost -u bookorama -p < bookorama.sql

Или внутри сеанса CLI:

cd C:\amp64\bin\mysql\mysql5.7.23\bin
mysql -h localhost -u bookorama -p
mysql> source bookorama.sql

Сказав это, вы можете сделать обратное.

  • Выполнение командных запросов снаружи:

    mysql -h localhost -u bookorama -p -e "source bookorama.sql"
    
  • Вызов терминальных звонков внутри:

    mysql> \! mysql -h localhost -u bookorama -pXXXXX < bookorama.sql
    
0 голосов
/ 25 декабря 2018

В приглашении mysql> вы будете использовать:

use books;
source bookorama.sql;

В командной строке вы должны использовать:

mysql.exe -h localhost -root -pOscar545* books < bookorama.sql
...