Такой вопросик. Мне нужно в админ панели предусмотреть backup базы данных.
Подскажите каким запросом я могу экспортировать все таблицы базы данных.
Речь идет о mysql:)
Спустя 6 минут, 53 секунды (6.01.2012 - 15:23) dadli написал(а):
експортируи через phpmyadmin
Спустя 3 минуты, 18 секунд (6.01.2012 - 15:26) Игорь_Vasinsky написал(а):
копипаст
Скрипт для резервного копирования БД MySQL
Скрипт для резервного копирования БД 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 написал(а):
Ауууу. Может есть еще предложения?

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

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

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

Цитата (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 доступ к консоли по определению есть, если виртуальный хостинг, то есть панель администрирования через которую нужно делать бэкап. Если хостер таких услуг не предоставляет, то самое время задуматься о смене хостера.

Спустя 16 часов, 21 минута (7.01.2012 - 13:09) kent666 написал(а):
killer8080 дело в том что бэкап будет делаться через админ панель сайта.
Смысл заключается в следующем:
=> делаю сайт на локальном сервере
=> захожу в админ панель и делаю бэкап базы в текстовый файл который находиться в специальной папке
=> переношу весь сайт с локального сервера на хостинг
=> на хостинге захожу в админ панель и выбираю установку базы из данных бекапа
=> база устанавливается (та которая была на локальном сервере)
=> продолжаю работу с наполнением сайта!
Это один из вариантов использования!
Или просто делать бэкап базы на хостинге, так как сайт написан с нуля и могут быть проблемы с безопасностью!
Работа через админ панель сайтам минимизирует работу со сторонними программами!
Работа с консолью тоже не вариант!!!
Сайтом может заниматься человек далекий от программирования
Смысл заключается в следующем:
=> делаю сайт на локальном сервере
=> захожу в админ панель и делаю бэкап базы в текстовый файл который находиться в специальной папке
=> переношу весь сайт с локального сервера на хостинг
=> на хостинге захожу в админ панель и выбираю установку базы из данных бекапа
=> база устанавливается (та которая была на локальном сервере)
=> продолжаю работу с наполнением сайта!
Это один из вариантов использования!
Или просто делать бэкап базы на хостинге, так как сайт написан с нуля и могут быть проблемы с безопасностью!
Работа через админ панель сайтам минимизирует работу со сторонними программами!
Работа с консолью тоже не вариант!!!
Сайтом может заниматься человек далекий от программирования

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

Цитата (kent666 @ 7.01.2012 - 12:09) |
Работа с консолью тоже не вариант!!! |
Необязательно работать с консолью. Команду можно поместить в шел скрипт, и дергать его кроном например, раз в неделю. В общем это дело хозяйское, можешь юзать и php скрипты для этого, выше уже предлагали варианты
