Как запустить скрипт для базы данных. sql на MySQL Workbench - PullRequest
1 голос
/ 26 марта 2020

Извините за то, что я новичок, я знаю, что это выглядит как глупый вопрос. Я пытаюсь следовать этому учебнику для начинающих. Похоже, что инструктор использует базу данных employees.sql из этой базы данных . Если я просто запускаю команду:

select * from employees;

Я получаю ошибку

Код ошибки: 1046. База данных не выбрана Выберите базу данных по умолчанию для использования, дважды щелкнув ее имя в списке SCHEMAS на боковой панели.

Я попытался открыть employees.sql на стороне:

           <img src="https://i.stack.imgur.com/7uMwq.png" width="400">               

, но затем запустить его возвращает сообщение об ошибке:

Код ошибки: 1064. У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей MySQL версии сервера, чтобы найти правильный синтаксис для использования рядом с 'source load_departments.dump' в строке 1

и этой аналогичной проблемы на их GitHub хранилище тоже не сильно помогает. Я попытался следовать инструкциям по установке в образце репозитория базы данных:

mysql < employees.sql

, однако я получил еще одну ошибку:

ОШИБКА 1045 (28000): доступ отказано для пользователя 'foobar' @ 'localhost' (используя пароль: НЕТ)

Буду признателен, если вы поможете мне узнать, каковы предварительные условия в пошаговой форме, чтобы иметь возможность следовать остальная часть этого урока .

PS Я на MacOS Catalina и у меня версия Workbench 8.0, а MySQL

mysql Ver 8.0.19 для osx10.15 на x86_64 (Homebrew)

следуя инструкциям здесь .

Ответы [ 2 ]

1 голос
/ 26 марта 2020

В этом хранилище есть небольшая ошибка.

Вам придется это исправить.

Откройте employees.sql с помощью редактора, например, Notepad++, затем go в конец файла, где вы найдете это:

SELECT 'LOADING departments' as 'INFO';
source load_departments.dump ;
SELECT 'LOADING employees' as 'INFO';
source load_employees.dump ;
SELECT 'LOADING dept_emp' as 'INFO';
source load_dept_emp.dump ;
SELECT 'LOADING dept_manager' as 'INFO';
source load_dept_manager.dump ;
SELECT 'LOADING titles' as 'INFO';
source load_titles.dump ;
SELECT 'LOADING salaries' as 'INFO';
source load_salaries1.dump ;
source load_salaries2.dump ;
source load_salaries3.dump ;

source show_elapsed.sql ;

Попробуйте заменить:

"SELECT 'LOADING departments' as 'INFO';
source load_departments.dump ;"

на

"SELECT 'LOADING departments' as 'INFO';
source C:/load_departments.dump ;
  • Где C:/ должен быть фактическим путем к рассматриваемому файлу на вашем компьютере.
  • Сделайте это для каждой строки в файле в конце, добавив соответствующий путь.

Теперь импортируйте employees.sql, запустите его и посмотрите, работает ли он.

Если это не так, попробуйте сделать это следующим образом:

Удалить только следующий код и сохраните изменения в файле.

SELECT 'LOADING departments' as 'INFO';
source load_departments.dump ;
SELECT 'LOADING employees' as 'INFO';
source load_employees.dump ;
SELECT 'LOADING dept_emp' as 'INFO';
source load_dept_emp.dump ;
SELECT 'LOADING dept_manager' as 'INFO';
source load_dept_manager.dump ;
SELECT 'LOADING titles' as 'INFO';
source load_titles.dump ;
SELECT 'LOADING salaries' as 'INFO';
source load_salaries1.dump ;
source load_salaries2.dump ;
source load_salaries3.dump ;

Теперь продолжайте делать это:

  • Открыть Workbench

  • Добавьте новый MySQL connection к своему локальному MySQL server.

Убедитесь, что вы подключаете / добавляете пользователя root или другого пользователя, который имеет следующие привилегии, к соединение: * 105 0 *

SELECT, INSERT, UPDATE, DELETE, 
CREATE, DROP, RELOAD, REFERENCES, 
INDEX, ALTER, SHOW DATABASES, 
CREATE TEMPORARY TABLES, 
LOCK TABLES, EXECUTE, CREATE VIEW
  • Дважды щелкните и откройте вновь сформированное соединение

  • Go до Левый верхний угол , нажмите на File, затем нажмите Open SQL Script и выберите employees.sql в репозитории, который вы скачали, и щелкните значок молнии .

После этого:

  • снова используйте Open SQL Script и откройте load_employees.dump, затем снова нажмите Lightning icon во вновь открытом файле.

  • используйте Open SQL Script снова и откройте load_departments.dump, затем снова нажмите Lightning icon во вновь открытом файле.

  • снова используйте Open SQL Script и откройте load_dept_emp.dump, затем снова нажмите Lightning icon во вновь открытом файле.

  • снова используйте Open SQL Script и откройте load_dept_manager.dump, затем снова нажмите Lightning icon во вновь открытом файле.

  • снова используйте Open SQL Script и откройте load_titles.dump, затем снова нажмите Lightning icon во вновь открытом файле.

  • снова используйте Open SQL Script и откройте load_salaries1.dump затем нажмите Lightning icon снова во вновь открывшемся файл.

  • снова используйте Open SQL Script и откройте load_salaries2.dump, затем снова нажмите Lightning icon во вновь открытом файле.

  • снова используйте Open SQL Script и откройте load_salaries3.dump, затем снова нажмите Lightning icon во вновь открытом файле.

Теперь вы завершили импорт базы данных. Теперь вы можете выполнить запрос select * from employees.

enter image description here

enter image description here

0 голосов
/ 26 марта 2020

ОК, я думаю, что нашел решение, и оно требует немного командной строки. Если вы следовали этим инструкциям для установки MySQL и MySQL Workbench с помощью HomeBrew, то у вас уже должны быть установлены пользователь и пароль. Теперь, предположив, что вы загрузили этот репозиторий GitHub , вам нужно go загрузить test_db-master и, следуя инструкциям здесь , из своего терминала и запустить команду:

mysql -u <user_name> -p -t < employees.sql

, где вы заменяете <user_name> пользователем, которого хотите использовать. В моем случае это просто root. Затем он запрашивает пароль пользователя, и вы должны увидеть импортированную базу данных. Теперь пообедайте на MySQL верстаке. И вы должны увидеть базу данных employees на вкладке schemas левой боковой панели / панели. Теперь вам нужно дважды щелкнуть по нему или щелкнуть правой кнопкой мыши по нему и выбрать set as default schema:

       <img src="https://i.stack.imgur.com/3H27N.png" width="400">               

или вы можете добавить

USE employees;

вверху вашего скрипта в первый раз. Теперь вы хорошо справляетесь с go и можете выполнить остальные запросы, следуя инструкции .

...