Задавайте вопросы, мы ответим
Вы не зашли.
Добрый день. Прошу помощи для чайника.
Существует комп под вин хр_сп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'…
Не могли бы вы привести пример рабочего синтаксиса команды с опциями:
Делать полный бекап всех баз от рута.
Делать бекап конкретной базы от рута
Делать бекап конкретной базы от пользователся (у которого есть права на эту базу).
И команда что бы залочии потом зарлочить базы (для корректного бекапа).
Зарание спасибо.
Неактивен
Делать полный бекап всех баз от рута.
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; -- разлочит сразу все таблицы - по-другому нельзя
Неактивен
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>
Неактивен
Ой, пардон.. перечитал первое сообщение и понял, что это Вы внутри консоли mysql пишете.
Вводите команды прямо в cmd (не заходя в mysql).
mysqldump - это отдельный клиент (нельзя вызвать один клиент из другого )
Неактивен
я подозревал, что "лыжи едут нормально..." спс, ща похожу по крышам, потом буду дальше мучать.
Отредактированно Set (14.05.2008 14:58:35)
Неактивен
простите за наивность. но подскажите как правильно запустить mysqldump из cmd, а то как то не выходит.
напимер вот путь к нему C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqldump.exe
Неактивен
Например так
"C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqldump.exe" -u и.т.д.
или
C:\"Program Files"\MySQL\"MySQL Server 5.0"\bin\mysqldump.exe
Неактивен
Чтобы не писать каждый раз длинные пути, добавьте их в переменную среды 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 из любого каталога без указания полных путей
Неактивен
всё было хорошо, игрался дампами как хотел, но сегодня произошло следующее: при попытке развернуть из дампа:
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>
база остаётся пустой
в чём дело?
____
такое происходит с любой базой (их там с десяток), выбираю бд , делаю дамп, удаляю бд, создаю бд, пытаюсь востановить из дампа: результат приведён выше.
пробовал переконфигурировать сервер. переустанавливать не стал, тк хочется разобраться с проблемой, чт бы уметь решать в будущем.
Отредактированно Set (11.06.2008 19:17:48)
Неактивен
ну помогите плз. работа стоит, вместо разворачивания бекапов приходится по новой ставить движки
Неактивен
Приведите фрагмент дампа, где начинаются данные (у Вас в примере ни создания таблиц, ни вставки данных что-то совсем не видно).
Нужно убедиться, что в файле дампа все нормально.
Неактивен
и снова с лыжами всё нормально.
вот повторял процедуры "дампирования"и заметил, что я пытался развернутьбекап через mysqldump вместо mysql.
очень стыдно. спасибо за внимание.
Неактивен
Ой. И я тоже проглядел..
Ну, бывает
Неактивен
Добрый день.
Используется следующая конфигурация:
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).
Как справиться с проблемой?
Неактивен
А каким образом восстанавливаете дамп?
Неактивен
Если восстанавливать дамп через консоль (mysql -uroot -ppass data < data.sql)- работает, но необходима возможность работы с мусклом через клиенты - например navicat.
Неактивен
Для таких клиентов, Вам скорее всего потребуется удалить комментарии из дампа.
Неактивен
можно ли с помощью mysqldump сделать бэкап с фильтром в виде сложного запроса (например присутствует вложеный запрос) ? Я такого в документации не нашел. С помощью phpMyAdmin это можно сделать но, хотелось бы из командной строки. Может есть еще какие то пути ?
Неактивен
mysqldump -w?
Неактивен
пипец... я это никогда не освою! ))
Неактивен
Где это хоть всё писать??
Неактивен
В командной строке
Неактивен
Доброго времени суток.
Для экспорта использовал каманду: mysqldump --all-databases > all_databases.sql
Как ее импортировать ?
при помощи mysql.exe ?
Пошу : mysql -uroot -p all-databases < all_databases.sql
Отвечает что нет такой базы "all-databases"
Неактивен
mysql -uroot -p < all_databases.sql
Неактивен
А есть ли какие-нибудь подводные камни, из-за которых целевая база данных будет отличаться от исходной при дампировании? Что следует прописать, чтобы гарантировать идентичность обеих баз данных?
Например, вот мои команды:
mysqldump --routines -u root -p database1 > backup.sql
mysql -uroot -p database2 < backup.sql
Отредактированно aliputin (21.05.2010 15:15:27)
Неактивен