[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Экспорт базы данных
kent666
Всем привет.
Такой вопросик. Мне нужно в админ панели предусмотреть backup базы данных.
Подскажите каким запросом я могу экспортировать все таблицы базы данных.
Речь идет о mysql:)



Спустя 6 минут, 53 секунды (6.01.2012 - 15:23) dadli написал(а):
експортируи через phpmyadmin

Спустя 3 минуты, 18 секунд (6.01.2012 - 15:26) Игорь_Vasinsky написал(а):
копипаст
Скрипт для резервного копирования БД MySQL
<?php

$host = "localhost"; // имя сервера
$user = "root"; // имя пользователя
$password = ""; // пароль
$db_name = "sql"; // имя базы данных
$dump_dir = "./dump"; // директория, куда будем сохранять резервную копию БД

$link = mysql_connect($host, $user, $password) or die( "Сервер базы данных не доступен" );
$db = mysql_select_db($db_name) or die( "База данных не доступна" );
$tables = "SHOW TABLES";
$res = mysql_query($tables) or die( "Ошибка при выполнении запроса: ".mysql_error() );
while( $table = mysql_fetch_row($res) )
{
$fp = fopen( $dump_dir."/".$table[0].".sql", "a" );
if ( $fp )
{
$query = "TRUNCATE TABLE `".$table[0]."`;\n";
fwrite ($fp, $query);
$rows = 'SELECT * FROM `'.$table[0].'`';
$r = mysql_query($rows) or die("Ошибка при выполнении запроса: ".mysql_error());
while( $row = mysql_fetch_row($r) )
{
$query = "";
foreach ( $row as $field )
{
if ( is_null($field) )
$field = "NULL";
else
$field = "'".mysql_escape_string( $field )."'";
if ( $query == "" )
$query = $field;
else
$query = $query.', '.$field;
}
$query = "INSERT INTO `".$table[0]."` VALUES (".$query.");\n";
fwrite ($fp, $query);
}
fclose ($fp);
}

Спустя 19 минут, 39 секунд (6.01.2012 - 15:46) kent666 написал(а):
Игорь_Vasinsky спасибо)

Спустя 7 минут, 28 секунд (6.01.2012 - 15:53) kent666 написал(а):
А можно сделать просто как в phpmyadmin экспорт в тхт!
Мне не особо нужно сохранять в табличном виде
В полне подойдет такой вид
-- phpMyAdmin SQL Dump
-- version 3.2.3
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Jan 06, 2012 at 02:00 PM
-- Server version: 5.1.40
-- PHP Version: 5.3.3

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Database: `svv_mysql`
--

-- --------------------------------------------------------

--
-- Table structure for table `images`
--

CREATE TABLE IF NOT EXISTS `images` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`description` varchar(500) DEFAULT NULL,
`main` int(1) DEFAULT NULL,
`section_id` int(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=19 ;

--
-- Dumping data for table `images`
--

INSERT INTO `images` (`id`, `date`, `description`, `main`, `section_id`) VALUES
(4, '2012-01-04 14:20:12', 'Зима фото 1', NULL, 1),
(7, '2012-01-04 15:42:20', 'Рисунок', NULL, 2),
(6, '2012-01-04 14:26:09', 'Изображение', NULL, 6),
(5, '2012-01-04 14:23:16', 'Фото', NULL, 1),
(18, '2012-01-06 11:09:31', 'Внешний вид', NULL, 4),
(9, '2012-01-05 13:16:39', 'rehdreth', NULL, 1),
(12, '2012-01-05 15:03:05', 'кнщекщ', NULL, 9),
(13, '2012-01-05 15:39:58', 'прл', NULL, 7),
(14, '2012-01-05 17:06:50', 'Описание', NULL, 12),
(15, '2012-01-05 17:11:11', 'вкор еноу не', NULL, 15),
(16, '2012-01-05 17:25:10', 'еры унеоуке но', NULL, 17),
(17, '2012-01-06 10:02:54', 'нгщенгд', NULL, 16);

-- --------------------------------------------------------

--
-- Table structure for table `information`
--

CREATE TABLE IF NOT EXISTS `information` (
`section_id` int(10) NOT NULL AUTO_INCREMENT,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`keywords` varchar(300) DEFAULT NULL,
`description` varchar(500) DEFAULT NULL,
`text` text,
`cost` int(10) DEFAULT NULL,
`rest` int(10) DEFAULT NULL,
`currency` varchar(10) DEFAULT NULL,
PRIMARY KEY (`section_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=21 ;

--
-- Dumping data for table `information`

Спустя 1 час, 14 минут, 30 секунд (6.01.2012 - 17:08) kent666 написал(а):
Ауууу. Может есть еще предложения? smile.gif

Спустя 14 минут, 58 секунд (6.01.2012 - 17:23) killer8080 написал(а):
kent666
В mysql есть штатные средства для бэкапа
mysqldump -uLOGIN -PPORT -hHOST -pPASS DBNAME > dump.txt 

Не говоря уж о множестве php скриптов в нете user posted image

Спустя 1 час, 41 минута, 45 секунд (6.01.2012 - 19:05) inpost написал(а):
kent666
sypex.net - я ей пользуюсь, может справляться с безумно огромными таблицами, очень удобна!

Спустя 12 минут, 30 секунд (6.01.2012 - 19:17) kent666 написал(а):
inpost я думал что будет как то проще)))
что то на подобии запроса в одну строку и выпадет весь дамп! А потом если надо просто засунуть его в mysql_query и все таблицы появятся вместе с данными)
unsure.gif

Спустя 54 минуты, 17 секунд (6.01.2012 - 20:11) killer8080 написал(а):
Цитата (kent666 @ 6.01.2012 - 18:17)
что то на подобии запроса в одну строку и выпадет весь дамп!

А это что по твоему smile.gif
Цитата (killer8080 @ 6.01.2012 - 16:23)
kent666
В mysql есть штатные средства для бэкапа
mysqldump -uLOGIN -PPORT -hHOST -pPASS DBNAME > dump.txt


Спустя 28 минут, 54 секунды (6.01.2012 - 20:40) Игорь_Vasinsky написал(а):
я так понял это можно поcлать в mysqli_query() ???

если нет - то ТС вроде бы сказал из админки...

Спустя 7 минут, 38 секунд (6.01.2012 - 20:48) killer8080 написал(а):
Цитата (Игорь_Vasinsky @ 6.01.2012 - 19:40)
я так понял это можно поcлать в mysqli_query() ???

mysqldump - консольная команда. Бэкапами должен заниматься админ. Если это VDP/VPS доступ к консоли по определению есть, если виртуальный хостинг, то есть панель администрирования через которую нужно делать бэкап. Если хостер таких услуг не предоставляет, то самое время задуматься о смене хостера. wink.gif

Спустя 16 часов, 21 минута (7.01.2012 - 13:09) kent666 написал(а):
killer8080 дело в том что бэкап будет делаться через админ панель сайта.

Смысл заключается в следующем:
=> делаю сайт на локальном сервере
=> захожу в админ панель и делаю бэкап базы в текстовый файл который находиться в специальной папке
=> переношу весь сайт с локального сервера на хостинг
=> на хостинге захожу в админ панель и выбираю установку базы из данных бекапа
=> база устанавливается (та которая была на локальном сервере)
=> продолжаю работу с наполнением сайта!


Это один из вариантов использования!
Или просто делать бэкап базы на хостинге, так как сайт написан с нуля и могут быть проблемы с безопасностью!
Работа через админ панель сайтам минимизирует работу со сторонними программами!
Работа с консолью тоже не вариант!!!
Сайтом может заниматься человек далекий от программирования smile.gif

Спустя 5 часов, 31 минута, 30 секунд (7.01.2012 - 18:40) killer8080 написал(а):
Цитата (kent666 @ 7.01.2012 - 12:09)
Сайтом может заниматься человек далекий от программирования

Вот это и плохо, когда люди занимаются не своим делом smile.gif
Цитата (kent666 @ 7.01.2012 - 12:09)
Работа с консолью тоже не вариант!!!

Необязательно работать с консолью. Команду можно поместить в шел скрипт, и дергать его кроном например, раз в неделю. В общем это дело хозяйское, можешь юзать и php скрипты для этого, выше уже предлагали варианты smile.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.