我对.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文件的地方吗?
谢谢。
答案 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>
指的是系统外壳程序提示符,通常以$
结尾。