#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 поглощает его.