Создание базы данных MySQL из командной строки

#mysql #windows #command-line

#mysql #Windows #командная строка

Вопрос:

Я пытаюсь создать пакетный файл для создания базы данных MySQL. Пока что ни одна из найденных мной сведений не работает. Просто для тестирования, это то, что я пытаюсь…

 C:>mysql -uroot -ppassword < CREATE DATABASE testdb;
C:>mysql -uroot -ppassword mysql < CREATE DATABASE testdb;
  

Независимо от того, как я это ставлю, я продолжаю получать ошибку «Система не может найти указанный файл». Если я просто поставлю…

 C:>mysql -uroot -ppassword
  

Он регистрируется в командной строке MySQL нормально. Что именно я делаю не так?

Ответ №1:

Я согласен с другими плакатами, гораздо лучше поместить схему в файл. Однако, вот как вы можете сделать это в командной строке:

 mysql -uroot -ppassword -e "CREATE DATABASE testdb"
  

Ответ №2:

доступ от имени пользователя root :

 mysql -u root -p
  

запрашивается пароль ..введите свой пароль

затем запустите команду create следующим образом:

 mysql> create database database_name;
  

Ответ №3:

Лучше записать ваш MySQL внутри файла, а затем импортировать этот файл. Таким образом, когда вам нужно будет запустить ее снова (переустановка или миграция), у вас будет запись MySQL для запуска. Код, который я использую для подобного файла, следующий, который уничтожает все, что уже есть, а затем создает базу данных и назначает выделенного пользователя.

 # uninstall if anything's already there
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%';
DROP USER 'username'@'%';
DROP DATABASE IF EXISTS `tablename`;

# create the user
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
CREATE DATABASE IF NOT EXISTS `tablename`;
GRANT ALL PRIVILEGES ON `tablename` . * TO 'username'@'%';
  

Комментарии:

1. Это идеально, за исключением того, что я не могу поместить это в файл. Пакетный скрипт записывается в нашей веб-панели, затем выполняется на соответствующем компьютере. Именно по этой причине я на самом деле выписываю скрипт, а не создаю файл .sql и выполняю его. Я смог создать базу данных с помощью «mysqladmin -urroot -ppass CREATE testdb», но что касается создания пользователей и назначения разрешений, это работает не слишком хорошо.

Ответ №4:

Попробуйте поместить свой sql в текстовый файл, например ‘createDb.sql’, а затем запустите:

 mysql -uroot -ppassword < createDb.sql; 
  

Комментарии:

1. Вы уверены, что в конце нужна точка с запятой?

2. @JW. нет, это не так. Но это не причиняет вреда, поскольку shell поглощает его.