SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 14.05.2008 12:01:36

Set
Участник
Зарегистрирован: 14.05.2008
Сообщений: 11

mysqldump "по слогам"

Добрый день. Прошу помощи для чайника.
Существует комп под вин хр_сп3 на нём апач2.х + рнр5 +  mysql5.
Подробнее о базе:
Server version:         5.0.22-community-nt
Protocol version:       10
Connection:             localhost via TCP/IP
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
TCP port:               3306
Назначение сервера. Опробывание различных движков форумов, порталов, игр (вов, линейка).  Овладеване простыми навыками администрирования mysql, а также перенос от всех веб проектов нашей локалки на 1 выделенный серв под базу (а то куча народу что то поподымало и требуют “хостинг“.
И вот на чём я заткнулся : mysqldump. Работаю в сом строке, никаких нивикатов и прочих интерфейсов не использую и не планирую испльзовать (далее все бызы перекачуют на фрю, небольшой опыт работы с ней есть).
В инете очень много информации, но как бы я не извращася над синтаксисом, но каждый раз выдаёт, что ошибка прямо перед mysqldump.
… to your MySQL server version for the right syntax to use near 'mysql
… at line 1'…
Не могли бы вы привести пример рабочего синтаксиса команды с опциями:
Делать полный бекап всех баз от рута.
Делать бекап конкретной базы от рута
Делать бекап конкретной базы от пользователся (у которого есть права на эту базу).
И команда что бы залочии потом зарлочить базы (для корректного бекапа).
Зарание спасибо.

Неактивен

 

#2 14.05.2008 12:07:25

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: mysqldump "по слогам"

Делать полный бекап всех баз от рута.

mysqldump -u root -p --all_databases > имя_файла.sql

Делать бекап конкретной базы от рута.

mysqldump -u root -p имя_базы --routines > имя_файла.sql
(routines - это чтобы вместе с процедурами и функциями этой из этой базы)

Делать бекап конкретной базы от пользователся (у которого есть права на эту базу).

mysqldump -u имя_пользователя -p имя_базы --routines > имя_файла.sql

И команда что бы залочии потом зарлочить базы (для корректного бекапа).

mysqldump сам залочит READ LOCK'ом и сам разлочит. Избыточно делать не нужно.
А вообще
LOCK TABLES таблица1, таблица2;
UNLOCK TABLES; -- разлочит сразу все таблицы - по-другому нельзя

Неактивен

 

#3 14.05.2008 12:12:55

Set
Участник
Зарегистрирован: 14.05.2008
Сообщений: 11

Re: mysqldump "по слогам"

mysql> mysqldump -u root -p --all_databases > file.sql;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'mysql
dump -u root -p --all_databases > file.sql' at line 1
mysql>

Неактивен

 

#4 14.05.2008 12:14:33

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: mysqldump "по слогам"

Ой, пардон.. перечитал первое сообщение и понял, что это Вы внутри консоли mysql пишете.
Вводите команды прямо в cmd (не заходя в mysql).
mysqldump - это отдельный клиент (нельзя вызвать один клиент из другого smile )

Неактивен

 

#5 14.05.2008 12:37:25

Set
Участник
Зарегистрирован: 14.05.2008
Сообщений: 11

Re: mysqldump "по слогам"

smile я подозревал, что "лыжи едут нормально..." спс, ща похожу по крышам, потом буду дальше мучать.

Отредактированно Set (14.05.2008 14:58:35)

Неактивен

 

#6 17.05.2008 01:11:01

Set
Участник
Зарегистрирован: 14.05.2008
Сообщений: 11

Re: mysqldump "по слогам"

простите за наивность. но подскажите как правильно запустить mysqldump из cmd, а то как то не выходит.
напимер вот путь к нему C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqldump.exe

Неактивен

 

#7 17.05.2008 01:27:58

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: mysqldump "по слогам"

Например так
"C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqldump.exe" -u и.т.д.
или
C:\"Program Files"\MySQL\"MySQL Server 5.0"\bin\mysqldump.exe

Неактивен

 

#8 17.05.2008 17:03:26

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: mysqldump "по слогам"

Чтобы не писать каждый раз длинные пути, добавьте их в переменную среды PATH:

System Propertries (вызывается нажатием Win + Break) -> Advanced -> кнопка Environment variables
там в нижнем окне выбираете Path, в начало добавляете "C:\Program Files\MySQL\MySQL Server 5.0\bin\";

или же в autoexec.bat прописать строку
SET PATH="C:\Program Files\MySQL\MySQL Server 5.0\bin\";%PATH%

Если так сделаете, то сможете писать mysqldump из любого каталога без указания полных путей

Неактивен

 

#9 11.06.2008 17:20:17

Set
Участник
Зарегистрирован: 14.05.2008
Сообщений: 11

Re: mysqldump "по слогам"

всё было хорошо, игрался дампами как хотел, но сегодня произошло следующее: при попытке развернуть из дампа:

Код:

C:\Documents and Settings\alex13>mysqldump -u root -p def < c:\dump\def1.sql
Enter password: **********
-- MySQL dump 10.10
--
-- Host: localhost    Database: def
-- ------------------------------------------------------
-- Server version       5.0.22-community-nt

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0
*/;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;


C:\Documents and Settings\alex13>

база остаётся пустой
в чём дело?
____
такое происходит с любой базой (их там с десяток), выбираю бд , делаю дамп, удаляю бд, создаю бд, пытаюсь востановить из дампа: результат приведён выше. sad
пробовал переконфигурировать сервер. переустанавливать не стал, тк хочется разобраться с проблемой, чт бы уметь решать в будущем.

Отредактированно Set (11.06.2008 19:17:48)

Неактивен

 

#10 12.06.2008 16:31:18

Set
Участник
Зарегистрирован: 14.05.2008
Сообщений: 11

Re: mysqldump "по слогам"

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

Неактивен

 

#11 13.06.2008 22:35:35

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: mysqldump "по слогам"

Приведите фрагмент дампа, где начинаются данные (у Вас в примере ни создания таблиц, ни вставки данных что-то совсем не видно).
Нужно убедиться, что в файле дампа все нормально.

Неактивен

 

#12 15.06.2008 18:52:13

Set
Участник
Зарегистрирован: 14.05.2008
Сообщений: 11

Re: mysqldump "по слогам"

и снова с лыжами всё нормально.
вот повторял процедуры "дампирования"и заметил, что я пытался развернутьбекап через mysqldump вместо mysql.
очень стыдно. спасибо за внимание.

Неактивен

 

#13 17.06.2008 14:49:45

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: mysqldump "по слогам"

Ой. И я тоже проглядел..
Ну, бывает smile

Неактивен

 

#14 25.01.2009 09:20:03

rhammer
Участник
Зарегистрирован: 25.01.2009
Сообщений: 2

Re: mysqldump "по слогам"

Добрый день.
Используется следующая конфигурация:
Debian 4.0 r4a (kernel 2.6.26-1-486)
Mysql 5.0.51a-21

Необходимо сделать дамп БД, использую mysqldump:

mysqldump -uroot --ppass data > ~/data.sql

Все нормально создается, но в дамп вставляются строки вида, хотя параметр --disable-keys не установлен:

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

/*!40000 ALTER TABLE `dle_banned` DISABLE KEYS */;
/*!40000 ALTER TABLE `dle_banned` ENABLE KEYS */;

Это не позволяет восстановить базу из дампа, вылетает ошибка 1065 (Query was empty).
Как справиться с проблемой?

Неактивен

 

#15 25.01.2009 12:09:46

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: mysqldump "по слогам"

А каким образом восстанавливаете дамп?

Неактивен

 

#16 25.01.2009 12:43:03

rhammer
Участник
Зарегистрирован: 25.01.2009
Сообщений: 2

Re: mysqldump "по слогам"

Если восстанавливать дамп через консоль (mysql -uroot -ppass data < data.sql)- работает, но необходима возможность работы с мусклом через клиенты - например navicat.

Неактивен

 

#17 25.01.2009 12:56:38

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: mysqldump "по слогам"

Для таких клиентов, Вам скорее всего потребуется удалить комментарии из дампа.

Неактивен

 

#18 19.03.2009 18:40:13

Golova
Завсегдатай
Зарегистрирован: 23.03.2007
Сообщений: 92

Re: mysqldump "по слогам"

можно ли с помощью mysqldump сделать бэкап с фильтром в виде сложного запроса (например присутствует вложеный запрос) ? Я такого в документации не нашел. С помощью phpMyAdmin это можно сделать но, хотелось бы из командной строки. Может есть еще какие то пути ?

Неактивен

 

#19 23.03.2009 13:14:25

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: mysqldump "по слогам"

mysqldump -w?

Неактивен

 

#20 27.10.2009 17:54:08

Aquasonick
Участник
Зарегистрирован: 21.10.2009
Сообщений: 5

Re: mysqldump "по слогам"

пипец... я это никогда не освою! ))

Неактивен

 

#21 27.10.2009 17:55:08

Aquasonick
Участник
Зарегистрирован: 21.10.2009
Сообщений: 5

Re: mysqldump "по слогам"

Где это хоть всё писать??

Неактивен

 

#22 27.10.2009 18:14:22

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: mysqldump "по слогам"

В командной строке

Неактивен

 

#23 08.02.2010 23:23:21

sergeyR
Участник
Зарегистрирован: 08.02.2010
Сообщений: 1

Re: mysqldump "по слогам"

Доброго времени суток.

Для экспорта использовал каманду:  mysqldump --all-databases > all_databases.sql


Как ее импортировать ?

при помощи mysql.exe ?

Пошу : mysql -uroot -p  all-databases < all_databases.sql

Отвечает что нет такой базы "all-databases"

Неактивен

 

#24 09.02.2010 00:03:09

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: mysqldump "по слогам"

mysql -uroot -p  < all_databases.sql

Неактивен

 

#25 21.05.2010 15:14:27

aliputin
Завсегдатай
Зарегистрирован: 08.03.2010
Сообщений: 36

Re: mysqldump "по слогам"

А есть ли какие-нибудь подводные камни, из-за которых целевая база данных будет отличаться от исходной при дампировании? Что следует прописать, чтобы гарантировать идентичность обеих баз данных?

Например, вот мои команды:
mysqldump --routines -u root -p database1 > backup.sql
mysql -uroot -p database2 < backup.sql

Отредактированно aliputin (21.05.2010 15:15:27)


MySQL 5.5.27
MariaDB 5.5.27

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson