jung lee Ответов: 1

Как запустить mysql скрипт из пакетного файла


Привет, я хочу запустить скрипт mysql из пакетного файла. Для того чтобы сделать это, когда я пытался войти в систему, это было неудачно. Как войти в mysql и запустить скрипт?

Что я уже пробовал:

Ниже приведен сценарий, который я попробовал.
if (!File.Exists(batFilePath))
            {
                using (FileStream fs = File.Create(batFilePath))
                {
                    fs.Close();
                }
            }
            using (StreamWriter sw = new StreamWriter(batFilePath))
            {
                sw.WriteLine("mysql -u techu -p");  //techu is username 
                sw.WriteLine("12341234");   // password
                sw.WriteLine("source H:\testscript.sql");
                sw.WriteLine("@echo done");
                //sw.WriteLine("pause");
            }

1 Ответов

Рейтинг:
2

phil.o

Вы не можете определить командную строку в нескольких строках. Она должна быть непрерывной.

using (StreamWriter sw = new StreamWriter(batFilePath))
{
   sw.Write("mysql -u techu -p");  //techu is username 
   sw.Write("12341234");   // password
   sw.WriteLine(" < H:\testscript.sql");
   sw.WriteLine("@echo done");
   //sw.WriteLine("pause");
}
MySQL :: MySQL 5.7 справочное руководство :: 4.5.1 mysql — клиент командной строки MySQL[^]


jung lee

если мы напишем "mysql-u techu-p" в командной строке, то на следующем шаге он предложит ввести пароль. если пароль верен, он переходит в режим mysql. затем, если мы введем "source<space> path/of/sqlscript, то он выполнит этот файл sql-скрипта.
Здесь происходит то, что он не принимает пароль, потому что sw.writeline дает пароль в качестве новой команды. на этом этапе он не может быть выполнен.

phil.o

пароль [^]
Если вы введете пароль в командной строке, он не будет запрашиваться.