У меня есть путаница с .bash_profile, терминал, MAMP и MySQL Workbench.
Моя цель - загрузить файлы данных .sql в базу данных с терминала. Работа над учебными пособиями из книги Пола Дюбуа по MySQL. В Приложении A говорится о том, чтобы добавить параметр PATH в .bash_profile:
PATH=/usr/local/mysql/bin:/bin:/usr/bin:/usr/local/bin
Я добавил указанный выше путь к .bash_profile. Хотя в первой главе говорится, что папка примеров .sql-файлов, называемая (sampdb), может находиться где угодно. Итак, я попробовал:
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
Спасибо.
EDIT
Я попытался перетащить файл в терминал и добился успеха.
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
ах. Майкл,
Я попытался изменить каталог и получил эту ошибку. cd не может указывать на каталог, пока mysql загружен в терминал, поэтому я не уверен, какой метод вы используете для его загрузки из текущего каталога:
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
Как импортировать файл SQL с помощью командной строки в MySQL?
Мое оригинальное название поста пыталось добраться до этого. Должны ли файлы данных .sql быть помещены в корзину? Если так, как я могу направить mysql, чтобы загрузить их с запросом как выше? Есть ли лучшее место для хранения файлов проекта .sql?
Спасибо.