Чтобы избежать ввода пароля вручную нужно использовать флаг -p
и сразу же без пробела указать пароль.
$ mysql -h "server-name" -u "root" "-pXXXXXXXX" "database-name" < "filename.sql"
Если после флага -p
будет стоять пробел, то клиент MySQL
будет интерактивно запрашивает пароль, а затем он интерпретирует следующий аргумент команды как имя базы данных:
$ mysql -h "server-name" -u "root" -p "XXXXXXXX" "database-name" < "filename.sql"
Enter password: <you type it in here>
ERROR 1049 (42000): Unknown database 'XXXXXXXX'
Можно хранить имя пользователя и пароль в файле ~/.my.cnf
. В этом случае не нужно передавать имя и пароль в качестве параметров в командную строку:
[client]
user = root
password = XXXXXXXX
Затем:
$ mysql -h "server-name" "database-name" < "filename.sql"