2016-11-18 1 views
2

Помогите с MySQL Git Bash winpty mysqldump. «winpty mysqldump» не работает в Git Bash. Здесь детали ошибки:MySQL Git Bash winpty mysqldump stdout не является tty и stdin не является tty

Git Bash

$ winpty mysqldump -u root -p employeedb > "E:\Working\SQL\MySQL\MySQL-Queries\mysqldump\SQL-dump\employeedb_backup.sql" 
stdout is not a tty 

$ winpty mysql -u root -p employeedb < "E:\Working\SQL\MySQL\MySQL-Queries\mysqldump\SQL-dump\employeedb_backup.sql" 
stdin is not a tty 

Однако Git CMD работает отлично:

Гит CMD

C:\Users\Aspire>mysqldump -u root -p employeedb > "E:\Working\SQL\MySQL\MySQL-Queries\mysqldump\SQL-dump\employeedb_backup.sql" 
Enter password: **************** 

C:\Users\Aspire>mysql -u root -p employeedb < "E:\Working\SQL\MySQL\MySQL-Queries\mysqldump\SQL-dump\employeedb_backup.sql" 
Enter password: **************** 

Git Bash работает с winpty туздЫшпр и winpty mysql без ">" и "<"

$ winpty mysqldump -u root -p employeedb 

Enter password: **************** 
-- MySQL dump 10.13 Distrib 5.7.14, for Win64 (x86_64) 
-- 
-- Host: localhost Database: employeedb 
-- ------------------------------------------------------ 
-- Server version  5.7.14-log 

/*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */; 
/*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */; 
/*!40101 SET @[email protected]@COLLATION_CONNECTION */; 
/*!40101 SET NAMES utf8 */; 
/*!40103 SET @[email protected]@TIME_ZONE */; 
/*!40103 SET TIME_ZONE='+00:00' */; 
/*!40014 SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; 
/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; 
/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; 
/*!40111 SET @[email protected]@SQL_NOTES, SQL_NOTES=0 */; 

-- 
-- Table structure for table `employee` 
-- 

DROP TABLE IF EXISTS `employee`; 
/*!40101 SET @saved_cs_client  = @@character_set_client */; 
/*!40101 SET character_set_client = utf8 */; 
CREATE TABLE `employee` (
    `ID` int(11) DEFAULT NULL, 
    `Name` varchar(50) DEFAULT NULL, 
    `Salary` decimal(15,2) DEFAULT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 
/*!40101 SET character_set_client = @saved_cs_client */; 

-- 
-- Dumping data for table `employee` 
-- 

LOCK TABLES `employee` WRITE; 
/*!40000 ALTER TABLE `employee` DISABLE KEYS */; 
INSERT INTO `employee` VALUES (1,'A',10000.00),(2,'B',8000.00),(3,'C',8000.00),(4,'D',6000.00),(5,'E',6000.00),(6,'F',6000.00),(7,'G',5000.00),(8,'H',5000.00),(9,'I',5000.00),(10,' 
J',5000.00),(11,'K',4000.00),(12,'L',4000.00),(13,'M',3000.00),(14,'N',3000.00),(15,'O',1000.00),(16,'P',14000.00),(17,'Q',14000.00),(18,'R',12000.00),(19,'S',12000.00),(20,'T',160 
00.00),(21,'U',16000.00),(22,'V',16000.00),(23,'W',14000.00),(24,'X',12000.00),(25,'Y',12000.00),(26,'Z',10000.00); 
/*!40000 ALTER TABLE `employee` ENABLE KEYS */; 
UNLOCK TABLES; 
/*!40103 SET [email protected]_TIME_ZONE */; 

/*!40101 SET [email protected]_SQL_MODE */; 
/*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */; 
/*!40014 SET [email protected]_UNIQUE_CHECKS */; 
/*!40101 SET [email protected]_CHARACTER_SET_CLIENT */; 
/*!40101 SET [email protected]_CHARACTER_SET_RESULTS */; 
/*!40101 SET [email protected]_COLLATION_CONNECTION */; 
/*!40111 SET [email protected]_SQL_NOTES */; 

-- Dump completed on 2016-11-18 20:43:00 

Пожалуйста, помогите с winpty туздЫшпр/winpty MySQL и стандартный вывод/STDIN терминал?

Git Bash "туздЫшпр" без winpty не работает:

команда $ MySQLDump -u -p корень employeedb> «E: \ Working \ SQL \ MySQL \ MySQL-запросов \ туздЫшпр \ SQL- dump \ utileedb_backup.sql "просто зависает.

Обратитесь к размеру скрипта «employeedb_backup.sql» 0 КБ.

enter image description here

Благодаря

ответ

3

Ошибка на самом деле из winpty, потому что вы пытаетесь перенаправить вывод в файл, и он ожидает, что терминал для интерактивного использования.

Обычно команды родной Git Баш как git, ssh и все выходные данные Перенаправление как node --version | clip должен работать без winpty.

Эти команды mysql отличаются тем, что им требуется интерактивный ввод (для ввода пароля) перед перенаправлением их вывода. Чтобы правильно работать, нам нужно заставить их работать через winpty без использования перенаправления вывода.

$ winpty mysqldump -u USER -p DB_NAME -r OUTPUT.sql 
Enter password: ****** 

--result-file=file_name, -r file_name
Direct output to a given file. This option should be used on Windows to prevent newline "\n" characters from being converted to "\r\n" carriage return/newline sequences. The result file is created and its previous contents overwritten, even if an error occurs while generating the dump.

mysqldump screenshot

$ winpty mysql -u USER -p DB_NAME 
Enter password: ****** 

mysql> source INPUT.sql 

mysql screenshot

+0

Git Bash "туздЫшпр" без winpty не работает: команды $ MySQLDump -u -p корень employeedb> «E: \ Working \ SQL \ MySQL \ MySQL- Запросы \ mysqldump \ SQL-dump \ utileedb_backup.sql "просто зависает. Обратитесь к размеру скрипта «employeedb_backup.sql» 0 КБ. – Impavid

+0

Неплохо, я не понимал, что если у вас есть пароль, для ввода учетных данных потребуется интерактивный tty. Исправлен мой ответ. –

+0

Благодарим вас за ответ. – Impavid

8

У меня была аналогичная проблема с мерзавца Баш на Windows 10 (с помощью команды PHP).

Я установил его, добавив расширение (.exe) в php.

[email protected] MINGW64 /c/xampp/htdocs 
$ php -v > php 
stdout is not a tty 

[email protected] MINGW64 /c/xampp/htdocs 
$ php.exe -v > php 

EDIT:

Вы также можете добавить псевдоним, если вы не хотите, чтобы добавить.ех на все ваши команды, как так:

$ printf "\nalias mysql='mysql.exe'" >> ~/.bashrc 
Смежные вопросы