Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Восстановить misqldump из .gz
 
 автор: Eugene77   (11.02.2010 в 16:51)   письмо автору
 
 

Подскажите, пожалуйста, как дамп таблицы обратно сделать таблицей.
Я создал дамп через PMA получился файл mytab.sql.gz
Закачал его.
Теперь мне его надо разархивировать, или утилита mysql это сама умеет?
Вот я ей пишу:
mysql> USE MyBase

А дальше фантазии не хватает....
подскажите, что писать

  Ответить  
 
 автор: cheops   (12.02.2010 в 12:35)   письмо автору
 
   для: Eugene77   (11.02.2010 в 16:51)
 

Нет, mysql его не распакует, это нужно до запуска mysql делать, при помощи утилиты tar
tar -xzf mytab.sql.gz

  Ответить  
 
 автор: Trianon   (12.02.2010 в 12:45)   письмо автору
 
   для: cheops   (12.02.2010 в 12:35)
 

Может всё же gzip , а не tar ?

gzip -cd mytab.sql.gz | mysql -h hostname -u user -Ppassword myBase

  Ответить  
 
 автор: cheops   (12.02.2010 в 14:57)   письмо автору
 
   для: Trianon   (12.02.2010 в 12:45)
 

-z автоматически включит gzip

  Ответить  
 
 автор: Eugene77   (12.02.2010 в 18:00)   письмо автору
 
   для: Trianon   (12.02.2010 в 12:45)
 

$ gzip -cd mytab.sql.gz | mysql -h localhost -PYyyyyy myBase


Unknown suffix 'Y' used for variable 'port' (value 'YYyyyyy')
mysql: Error while setting value 'Yyyyyy' to 'port'

  Ответить  
 
 автор: Trianon   (12.02.2010 в 18:03)   письмо автору
 
   для: Eugene77   (12.02.2010 в 18:00)
 

Это Вы к тому, что я ошибся в названии параметра?
Да, вполне возможно.
Нет, не со зла, а [совершенно непреднамеренно, не смотря на то, что в конечном итоге] исключительно Вам на пользу.

  Ответить  
 
 автор: Eugene77   (12.02.2010 в 18:36)   письмо автору
 
   для: Trianon   (12.02.2010 в 18:03)
 

>Это Вы к тому, что я ошибся в названии параметра?
>Да, вполне возможно.
>Нет, не со зла, а [совершенно непреднамеренно, не смотря на то, что в конечном итоге] исключительно Вам на пользу.


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

Хм... а какое расширение в Линуксе у командных файлов? .bat или .cmd ?

  Ответить  
 
 автор: cheops   (12.02.2010 в 19:12)   письмо автору
 
   для: Eugene77   (12.02.2010 в 18:36)
 

>Хм... а какое расширение в Линуксе у командных файлов? .bat или .cmd ?
Расширение не принято указывать, так как статус исполняемого файла задается правами доступа, а обработчик "ши-бенгом", т.е. расширение, в отличие от Windows, никакой роли не играет.

  Ответить  
 
 автор: Eugene77   (12.02.2010 в 19:48)   письмо автору
 
   для: cheops   (12.02.2010 в 19:12)
 

Как же тогда создать пакетный файл?

Впрочем, пока не до пакетного файла.
Даже один единственный дамп не могу скормить mysql

  Ответить  
 
 автор: Trianon   (12.02.2010 в 20:08)   письмо автору
 
   для: Eugene77   (12.02.2010 в 18:36)
 

>то я так и не пойму возможно ли одновременно коннектится к базе и отдавать ей на обработку дамп?

Пропустил этот ответ. Прошу прощения .
Коннектиться можно и нужно. и я даже показал, как.

>Или это надо организовывать отдельными строками в Командном файле?
Никаких отдельных строк не требуется.
Но перед тем, как совать строки в команлдный файл, стоит попечатать их с клавиатуры.
Во избежание неожиданных срывов, вроде cannot connect


>Пользу можно увидеть во всём, но если подходить прагматично,

Вы МНЕ предлагаете прагматично подойти?

  Ответить  
 
 автор: Eugene77   (12.02.2010 в 20:35)   письмо автору
 
   для: Trianon   (12.02.2010 в 20:08)
 

>Вы МНЕ предлагаете прагматично подойти?

Я всего лишь прошу вас убрать из задачи одну переменную:
Пока их две:
1) Либо я я не разобрался как писать обращение к утилите
либо
2) Что-то в настройках утилиты не то (возможно ошибка в каких-то данных которые я подставляю)

Как тут разобраться? Ну, подскажите, если у вас идея лучше есть...
Но я думаю, что лучше всего проверить на заведомо правильном запросе.

  Ответить  
 
 автор: Trianon   (12.02.2010 в 20:52)   письмо автору
 
   для: Eugene77   (12.02.2010 в 20:35)
 

>Я всего лишь прошу вас убрать из задачи одну переменную:Пока их две:
>1) Либо я я не разобрался как писать обращение к утилите либо
>2) Что-то в настройках утилиты не то (возможно ошибка в каких-то данных которые я подставляю)

Так и (2) и (1) вероятно.
Из-за того, что в настройках утилиты что-то не то ( к примеру - заблокирован протокол связи по TCP/IP (3306 порт) а оставлен лишь протокол связи через именованные транспортеры (named pipes) . Или сервер фактически не на localhost, а на некоем другом адресе, или ... всё это вопросы администрёжа сервера SQL и помочь тут может только сисадмин ) - из-за этого что-то не то, Вы не смогли разобраться в том, как писать обращение.


командная строка, которую я показал - это никакой не запрос.
Это лишь вызов программы с параметрами подключения.
Но и они должны быть адекватны ожиданиям сервера.

  Ответить  
 
 автор: Eugene77   (12.02.2010 в 21:13)   письмо автору
 
   для: Trianon   (12.02.2010 в 20:52)
 

>Из-за того, что в настройках утилиты что-то не то ( к примеру - заблокирован протокол связи по TCP/IP (3306 порт) а оставлен лишь протокол связи через именованные транспортеры (named pipes) .

А можно как то дамп в трубу кинуть?

что-то файл_дампа | mysql ...


Или сервер фактически не на localhost, а на некоем другом адресе, или ... всё это вопросы администрёжа сервера SQL и помочь тут может только сисадмин ) - из-за этого что-то не то, Вы не смогли разобраться в том, как писать обращение.

Так вот я и прошу вас написать такое обращение, которое не показалось бы админу бредовым.
Я ему предъявлю тогда обоснованную претензию - должно работать, а не работает.

>Но и они должны быть адекватны ожиданиям сервера.
Мне никто не сообщал о каких-т особенностях в настройке сервера.
Поэтому я вправе удивляться что не работает при настройках по умолчанию.

  Ответить  
 
 автор: Trianon   (12.02.2010 в 21:31)   письмо автору
 
   для: Eugene77   (12.02.2010 в 21:13)
 

>из-за этого что-то не то, Вы не смогли разобраться в том, как писать обращение.
Обращение - команда клиента mysql / а не петиция админу :)

>Так вот я и прошу вас написать такое обращение, которое не показалось бы админу бредовым.

Меня-то почему? Дока есть.

так и напишите.
Пытаюсь подключиться путем команды
mysql -h localhost -P 3306 -u username -pПАРОЛЬ ИМЯБД
Выводит то-то и то-то. Что я делаю не так?

>А можно как то дамп в трубу кинуть?

>что-то файл_дампа | mysql ...

я и показал, как . gzip -cd файл.sql.gz | mysql -h localhost ...
Если из раззипованного файла mysql <файл.sql.gz -h localhost ...

  Ответить  
 
 автор: Eugene77   (13.02.2010 в 08:27)   письмо автору
 
   для: Trianon   (12.02.2010 в 21:31)
 

Спасибо!
Зря я к вам пристал.
Админ к утру отремонтировал утилиту.

  Ответить  
 
 автор: Trianon   (13.02.2010 в 08:34)   письмо автору
 
   для: Eugene77   (13.02.2010 в 08:27)
 

И неужто дамп подняли?

  Ответить  
 
 автор: Eugene77   (13.02.2010 в 20:03)   письмо автору
 
   для: Trianon   (13.02.2010 в 08:34)
 

>И неужто дамп подняли?

Парочку дампов поднял, но надоело писать для каждого файла такую длинную строку вручную.

  Ответить  
 
 автор: Trianon   (13.02.2010 в 20:16)   письмо автору
 
   для: Eugene77   (13.02.2010 в 20:03)
 

C Вашим уровнем прагматики я б в редакторе из списка файлов давно сделал файл с командами, и скормил бы его шеллу, башу, или кто там голодный...

Сделал бы у себя на локальной виндовой тачке. В любимом редакторе.
С помощью php наконец. Да хоть блокнотом тем же.

Скармливал бы, само собой, на сервере.

  Ответить  
 
 автор: Eugene77   (14.02.2010 в 17:17)   письмо автору
 
   для: Trianon   (13.02.2010 в 20:16)
 

Я бы тоже так сделал, если бы торопился, но эти табицы раньше следующей недели мне всё одно не потребуются. А с Линуксом надо (как бы лень ни было) разбираться. - это раз.
Но это не вся правда.
2) Если бы вы читали эту тему внимательней, то могли бы заметить, что я в недоумении спрашивал как надо оформить файл, чтобы его БАШ скушал. Под винд. я просто добавляю расширение .cmd а под Линукс?
3) Хоть я и пишу выше, что мне лень мешает разобраться с Линуксом, - это неправда. Я с удовольствием учусь практически чему угодно. Мне всегда это доставляет искреннее удовольствие. Но так можно просидеть за книгами всю жизнь... Поэтому я натягиваю на себя маску прагматика и ищу быстрые решения технических проблем, чтобы оставить больше времени для реализации тех идей, ради которых я вообще взялся изучать РНР. (Это я к тому, чтобы вы не судили меня строго за то, что я спрашиваю то, в чём, на ваш взгляд, мог бы и сам разобраться... чтобы спросить мне пришлось перебороть в себе это желание самостоятельно разобраться) Не знаю даже понятно ли я объяснил...

  Ответить  
 
 автор: Trianon   (14.02.2010 в 17:32)   письмо автору
 
   для: Eugene77   (14.02.2010 в 17:17)
 

Первой строкой ставят что-то вроде (путь нужно уточнить)
#! /bin/sh


А на сам файл ставят права исполнения ( chmod 740 )

Судить Вас мне в голову не пришло, и не придет.
А вот оценивать получается не по одному вопросу, а по всей массе за не один уж год.
Так что не взыщите...

  Ответить  
 
 автор: Eugene77   (12.02.2010 в 18:13)   письмо автору
 
   для: Eugene77   (12.02.2010 в 18:00)
 

Когда правильно пишу параметр, тоже не получается

>
$ gzip -cd mytab.sql.gz | mysql -h localhost -pYyyyyy myBase


ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (61)

  Ответить  
 
 автор: Trianon   (12.02.2010 в 18:16)   письмо автору
 
   для: Eugene77   (12.02.2010 в 18:13)
 

Разве сперва не стоит попробовать получить что-то осмысленное от mysql безо всякого gzip?

  Ответить  
 
 автор: Eugene77   (12.02.2010 в 18:39)   письмо автору
 
   для: Trianon   (12.02.2010 в 18:16)
 

>Разве сперва не стоит попробовать получить что-то осмысленное от mysql безо всякого gzip?

осмысленное получил:
$ mysql -u этоЯ -p Пароль База

  Ответить  
 
 автор: Trianon   (12.02.2010 в 18:42)   письмо автору
 
   для: Eugene77   (12.02.2010 в 18:39)
 

Вот так точно неправильно.
Между -p и паролем пробела быть не должно.

  Ответить  
 
 автор: Eugene77   (12.02.2010 в 18:55)   письмо автору
 
   для: Trianon   (12.02.2010 в 18:42)
 

>Вот так точно неправильно.
>Между -p и паролем пробела быть не должно.

Без пробела всё та же ошибка
Впрочем приглашение не меняется с $ на sql>
Подозрительно...

  Ответить  
 
 автор: Trianon   (12.02.2010 в 19:02)   письмо автору
 
   для: Eugene77   (12.02.2010 в 18:55)
 

Не верю.
С пробелом пароль запрашивается из входного потока ( с клавиатуры консоли) А лексема пароля воспринимается как имя БД.
Без пробела - берется из командной строки.

>Впрочем приглашение не меняется с $ на sql>
>Подозрительно...

Оставьте.
Не Ваше это.
Да и не мое, по большому счету.

  Ответить  
 
 автор: Eugene77   (12.02.2010 в 19:22)   письмо автору
 
   для: Trianon   (12.02.2010 в 19:02)
 

>Оставьте.
>Не Ваше это.
>Да и не мое, по большому счету.

Я бы с удовольствием, но как тогда большой дамп в таблицу превратить?

  Ответить  
 
 автор: Trianon   (12.02.2010 в 19:30)   письмо автору
 
   для: Eugene77   (12.02.2010 в 19:22)
 

превратите маленький.

  Ответить  
 
 автор: Eugene77   (12.02.2010 в 19:43)   письмо автору
 
   для: Trianon   (12.02.2010 в 19:30)
 

>превратите маленький.
Не могу. (по моей просьбе не мной)
Дамп уже загружен на сервер, а загрузить его заново у меня возможностей канала связи не хватит.

  Ответить  
 
 автор: Trianon   (12.02.2010 в 19:49)   письмо автору
 
   для: Eugene77   (12.02.2010 в 19:43)
 

Тогда может быть стоит поучиться запускать командно-строчный клиент mysql.exe ?
Сперва на локальной машине в одиночку.
Потом в связке с файлом.
Потом в связке с gzip (возможно , потребуется найти сам gzip.exe)
Потом на сервере в одиночку.
Потом в связке - с небольшим файлом.
Ы?

...Даже один единственный. ...

  Ответить  
 
 автор: Eugene77   (12.02.2010 в 19:55)   письмо автору
 
   для: Trianon   (12.02.2010 в 19:49)
 

На локальной машине у меня получилось.
Простые команды типа USE DB выполнил

Но как скормить ему дамп - не понял

А на сервере не получается даже приглашения добиться.

Поэтому и прошу вас написать мне не в общих чертах, а реально работающий, проверенный пример.

  Ответить  
 
 автор: Trianon   (12.02.2010 в 20:00)   письмо автору
 
   для: Eugene77   (12.02.2010 в 19:55)
 

>Но как скормить ему дамп - не понял

Какой командой пробовали?

>А на сервере не получается даже приглашения добиться.

А без параметров на сервере Вы его запускали?
Отклик читали?


>Поэтому и прошу вас написать мне не в общих чертах, а реально работающий, проверенный пример.

Даже не мечтайте. По больщому счету, я вообще Хеопсу отвечал.

  Ответить  
 
 автор: Eugene77   (12.02.2010 в 20:05)   письмо автору
 
   для: Trianon   (12.02.2010 в 20:00)
 

mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (61)

  Ответить  
 
 автор: Trianon   (12.02.2010 в 20:11)   письмо автору
 
   для: Eugene77   (12.02.2010 в 20:05)
 

и Вы уверены что host , user , password, port и протокол коннекта - именно те, что хостер дал Вам для локального подключения ?

  Ответить  
 
 автор: Eugene77   (12.02.2010 в 20:17)   письмо автору
 
   для: Trianon   (12.02.2010 в 20:11)
 

>и Вы уверены что host , user , password, port и протокол коннекта - именно те, что хостер дал Вам для локального подключения ?

А как мне проверить?
Вы напишите мне работающий пример, я подставлю туда свои данные - тогда видно станет.

  Ответить  
 
 автор: Eugene77   (12.02.2010 в 20:23)   письмо автору
 
   для: Trianon   (12.02.2010 в 20:11)
 

Дело в том, что локально я просто перенаправил значком < данные из файла в утилиту.
Но под Линуксом такой приём не проходит. А как указать файл дампа правильным образом - я не знаю.

  Ответить  
 
 автор: Eugene77   (12.02.2010 в 20:49)   письмо автору
 
   для: Trianon   (12.02.2010 в 20:11)
 

>и Вы уверены что host , user , password, port и протокол коннекта - именно те, что хостер дал Вам для локального подключения ?

user , password - могут разве отличаться от тго, что я использую в своих скриптах?

  Ответить  
 
 автор: Eugene77   (12.02.2010 в 18:07)   письмо автору
 
   для: Trianon   (12.02.2010 в 12:45)
 

>

>gzip -cd mytab.sql.gz | mysql -h hostname -u user -Ppassword myBase
>

А если в директории лежат только дампы нужных таблиц и больше ничего, можно так сделать?:
ls |  gzip -cd mytab.sql.gz | mysql -h hostname -u user -Ppassword myBase

  Ответить  
 
 автор: Trianon   (12.02.2010 в 12:46)   письмо автору
 
   для: Eugene77   (11.02.2010 в 16:51)
 

>Я создал дамп через PMA получился файл mytab.sql.gz

Повезло.
Могло выйти вообще что-нибудь непотребное.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования