.sql数据的最佳位置以及在mysql数据库中检索它们的方法?

时间:2018-06-23 21:58:40

标签: mysql mysql-workbench mamp

我对.bash_profile,终端,MAMP和MySQL Workbench感到困惑。

我的目标是从终端将.sql数据文件加载到数据库中。 Paul Dubois撰写的有关MySQL的书中的教程。附录A表示要向.bash_profile添加PATH设置:

PATH=/usr/local/mysql/bin:/bin:/usr/bin:/usr/local/bin

我将上述路径添加到.bash_profile中。尽管在第一章中它说了一个名为(sampdb)的示例.sql文件的文件夹可以位于任何地方。所以我尝试了:

export PATH="/Users/trevorpan/Documents/MySQL/sampdb:$PATH"

使用以下命令添加此PATH找不到文件:

mysql> sampdb < create_grade_event.sql;

它给了我这个错误。而且我认为它必须与路径相关,因为所有堆栈溢出,本书和在线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 'sampdb < create_grade_event.sql' at line 1

我也尝试过:

mysql> source create_grade_event.sql;
ERROR: 
Failed to open file 'create_grade_event.sql', error: 2

这也不起作用。

现在,我认为这些文件应该放在bin文件夹中。但是我不确定它们是否应该保留在文件夹(sampdb)或其他内容中。

这是.bash_profile:

export PATH=/Applications/MAMP/bin/php/php7.1.12/bin:/usr/local/opt/gnu-tar/lib$
export MAMP_PHP=/Applications/MAMP/bin/php/php7.1.12/bin
export PATH="$MAMP_PHP:$PATH"
ICU_DIR=/usr/local/Cellar/icu4c/60.2/
EXT_DIR=/Applications/MAMP/bin/php/php7.1.12/lib/php/extensions/no-debug-non-zt$

if [ -f ~/.bashrc ]; then
        source ~/.bashrc
fi

export PATH="/usr/local/opt/m4/bin:$PATH"
PATH=/usr/local/mysql/bin:/bin:/usr/bin:/usr/local/bin

谢谢。

编辑

我尝试将文件拖到终端并成功。

mysql> source /Applications/MAMP/bin/sampdb/insert_member.sql 
Query OK, 0 rows affected (0.05 sec)

Query OK, 1 row affected (0.02 sec)

Query OK, 1 row affected (0.00 sec)

Query OK, 1 row affected (0.04 sec)

Query OK, 1 row affected (0.01 sec) etc. etc.

编辑#2

啊哈。迈克尔,

我尝试更改目录并收到此错误。 mysql在终端中加载时,cd无法指向目录,因此我不确定从当前目录加载它的方法:

mysql> cd /Applications/MAMP/bin/sampdb;
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 /Applications/MAMP/bin/sampdb' at line 1

我的目标是指向文件夹位置,并且能够上传.sql数据文件,而不必每次都输入路径。以下帖子也有类似的问题,但似乎从未解决过以下简单的导入命令:

mysql> source create_grade_event.sql

How to import an SQL file using the command line in MySQL?

我原来的帖子名称试图做到这一点。 .sql数据文件是否应该放在bin中?如果是这样,我如何指示mysql用上述查询加载它们?您有更好的存储项目.sql文件的地方吗?

谢谢。

1 个答案:

答案 0 :(得分:2)

将.sql文件加载到现有数据库中的步骤如下:

shell> mysql sampdb < create_grade_event.sql

与这个有很大不同:

mysql> sampdb < create_grade_event.sql;

...这确实是错误的。

此问题与您的路径无关。

mysql> source create_grade_event.sql

...本来应该起作用,但是您没有说明是这样做还是这样:

shell> source create_grade_event.sql;

...这也不正确。无论如何,“没有用”是不够详细的。

此处,如MySQL文档中所述,shell>指的是系统外壳程序提示符,通常以$结尾。