(Мой первый вопрос здесь, поэтому, если я нарушаю какие-либо соглашения, я заранее извиняюсь!)
Это моя первая попытка создать сценарий оболочки. Я пытаюсь создать новые базы данных, пользователей и пароли, указав их в командной строке вместе со сценарием оболочки. Мое имя пользователя root и пароль указаны в сценарии оболочки. Вот мой сценарий оболочки, который делает это:
#! / bin / sh
# создает таблицы
masteruser = "корень"
masterpassword = "dumbpassword"
# требуется один аргумент в командной строке
если [$ # -ne 3]; затем
echo "Usage: createdb.sh dbname dbuser dbpassword"; exit 1;
фи
dbname = "$ 1"
dbuser = "$ 2"
dbpassword = "$ 3"
#echo $ dbname
#echo $ dbuser
#echo $ dbpassword
mysql -u "$ masteruser" -p "$ masterpassword" << EOF
создать базу данных $ 1; предоставить все по 1 доллару * до «2 долларов», обозначенных как «3 доллара»;
сбросить привилегии
EOF
Я запускаю это из командной строки следующим образом:
./shellscriptname.sh newdbname newdbuser newdbpassword
После запуска этого сценария (который успешно создает базы данных) несколько раз, когда я пытаюсь подключиться, происходит следующее:
# mysql --user root --password dumbpassword
Введите пароль: ОШИБКА 1049 (42000): Неизвестная база данных dumbpassword
Я не знаю, почему это происходит. (Примечание: после привилегий очистки нет точки с запятой)
Почему он больше не работает? Мне любопытно, так как я не могу найти никаких проблем со своим скриптом. Это тоже не работает:
mysql -u root -p dumbpassword
Мне больше интересно выяснить, почему это произошло, чем решить проблему. Вот я и подумал, что спрошу здесь гуру!
Вы должны использовать следующие
mysql --user root --password=dumbpassword
или
mysql -u root -pdumbpassword
Обратите внимание, что между -p / - password и самим паролем нет пробела.
Правильный формат для входа в mysql:
mysql -u username -p mydbname
Это позволяет вам войти в базу данных mydbname. Вместо этого вы передали пароль в качестве имени базы данных, поэтому mySQL сообщает вам, что не может найти базу данных «dumbpassword»
Попробуй это:
mysql -u username -p
Это позволит вам войти в mysql после запроса пароля, а затем вы можете выбрать базу данных с помощью:
use mydbname
Если вы запустите mysql без переключателей u / p, он подберет имя пользователя и пароль из текущего контекста.