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

Форум MySQL

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

 

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

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

тема: Помогите новичку переместить базу на новый комп
 
 автор: Killer   (12.11.2005 в 16:23)   письмо автору
 
 

Установил MySQL на другой комп. Скопировал базу board со старого компа в новый в каталог Data. Но при обращении к ней (к таблице) desk m_tab; пишет ERROR 1146 (42S02): Table 'board.m_tab' doesn't exist. Но когда набираю show tables; то выходит Tables_in_board m_tab. Т.е. таблица существует, но не создана?????
Помогите, может что не так сделал, что еще надо перенести?

   
 
 автор: 10100100   (12.11.2005 в 16:32)   письмо автору
 
   для: Killer   (12.11.2005 в 16:23)
 

попробуй удалить всё что перенёс на новом компе, зайди затем на старый комп, найди SQL запрос на создание таблицы, скопируй запрос и вставь его в новую БД на новом компе, вот в принципе и всё. либо я не так понял проблему..

   
 
 автор: Killer   (12.11.2005 в 16:44)   письмо автору
 
   для: 10100100   (12.11.2005 в 16:32)
 

найди SQL запрос на создание таблицы,
>скопируй запрос и вставь его в новую БД на новом компе,

Я создавал таблицу в окне ДОС.
Если я чего то не понимаю, как можно его найти этот запрос и вставить в новую базу???

   
 
 автор: 10100100   (12.11.2005 в 16:57)   письмо автору
 
   для: Killer   (12.11.2005 в 16:44)
 

щит... тогда не знаю... должен быть какой то запрос который это показывает... :( жди Хеопса - он умный! не то что я! !:))

   
 
 автор: WebTech   (12.11.2005 в 17:33)   письмо автору
 
   для: Killer   (12.11.2005 в 16:44)
 

Через командную строку делаем так.
На старом компе сделаем дамп базы, которую нужно перенести

mysqldump -u root -p _имя_базы_ > c:\base.sql

Здесь _имя_базы_ - это имя базы данных, которую хочешь перенести, base.sql - имя файла, в котором будет сохранен дамп базы. Нужно указывать полный путь к файлу.

Затем берешь base.sql и переносишь его на новый комп, например в c:\
Затем в командной строке на новом компе выполняешь

mysql -u root -p < c:\base.sql

Будет создана новая бд со всеми таблицами и данными в них

   
 
 автор: cheops   (12.11.2005 в 22:45)   письмо автору
 
   для: Killer   (12.11.2005 в 16:23)
 

А вы перед копированием сервер останавливали на обоих машинах? Дело в том, что можно перенести безболезненно таблицы, только при нулевой активности сервера (таблицы должны быть типа ISAM или MyISAM, остальные так запросто не переносятся, таблицы InnoDB вообще хранятся в едином табличном пространстве, а в data - только заголовки таблиц).

   
 
 автор: Killer   (13.11.2005 в 15:38)   письмо автору
 
   для: cheops   (12.11.2005 в 22:45)
 

>А вы перед копированием сервер останавливали на обоих
>машинах? Дело в том, что можно перенести безболезненно
>таблицы, только при нулевой активности сервера (таблицы
>должны быть типа ISAM или MyISAM, остальные так запросто не
>переносятся, таблицы InnoDB вообще хранятся в едином
>табличном пространстве, а в data - только заголовки таблиц).

В смысле, как остановить сервер? Тип базы как посмотреть?

На новом компе по вышеприведенной команде выскакивает это:
Error 1046 (3D000) at line 22: No database selected

   
 
 автор: WebTech   (13.11.2005 в 16:58)   письмо автору
 
   для: Killer   (13.11.2005 в 15:38)
 

Пардон! На новом компьютере надо сначала создать вашу базу данных затем выполнить

mysql -u root -p _имя_базы_ < c:\base.sql

   
 
 автор: WebTech   (13.11.2005 в 17:10)   письмо автору
 
   для: Killer   (13.11.2005 в 15:38)
 

Или вот так.
На старом компе:

mysqldump -u root -p --databases _имя_базы_ >c:\base.sql

На новом компе:

mysql -u root -p < c:\base.sql

Тогда не придется специально создавать бд на новом компе.

   
 
 автор: Killer   (13.11.2005 в 17:35)   письмо автору
 
   для: WebTech   (13.11.2005 в 17:10)
 

Спасибо огромное, получилось.
А скажи, на WEBserver как перенести? Так же точно не получится наверное. Вы тут писали о програмке php А как быть, если у меня на Perl?

   
 
 автор: WebTech   (13.11.2005 в 18:05)   письмо автору
 
   для: Killer   (13.11.2005 в 17:35)
 

На сервер сложнее :-(
Если ты имеешь право создавать бд на своем сервере, то действуй по моему последнему варианту. Если не имеешь таких прав, то по предпоследнему :-) Только базу данных в таком случае тебе создадут, и выдадут ее имя, а также логин и пароль для доступа к серверу бд.
Естественно, чтобы все это сделать нужен шелл-доступ к твоему сайту. Если шелла нет, то тогда не знаю как :-( Т.е. можно в таком случае с помощью PHP, могу написать тебе скрипт. А Perl я не знаю, к сожалению :-(

   
 
 автор: Killer   (13.11.2005 в 19:45)   письмо автору
 
   для: WebTech   (13.11.2005 в 18:05)
 

>можно в таком случае с помощью PHP, могу написать тебе
>скрипт. А Perl я не знаю, к сожалению :-(

Если не трудно, то буду рад:-))
Кстати хочу РНР тоже изучать, они наверное не намного различаются с Perl?

   
 
 автор: WebTech   (14.11.2005 в 03:31)   письмо автору
 
   для: Killer   (13.11.2005 в 19:45)
 

Сейчас на работу надо бежать... Вечером тебе обязательно напишу :-)

   
 
 автор: WebTech   (14.11.2005 в 16:29)   письмо автору
 
   для: Killer   (13.11.2005 в 19:45)
 

Попробовал я тут... Оказалось, что это довольно проблематично :-( Дело в том, что php не может обработать файл дампа базы целиком, его нужно разбивать на отдельные операторы (CREATE, INSERT и т.д.). а это отдельная тема. Или может кто-нибудь может что-нибудь по этому поводу сказать? Теперь уже самому интересно :-) cheops?
Можно установить на сервер phpMyAdmin (как самый лучший, на мой взгляд :-)) или какую-нибудь другую прогу, с помощью которой можно перенести бд.
А вообще, сделай все через шелл, с помощью mysqldump и mysql. Это, на самом деле, гораздо проще (по-моему :-)), чем заморачиваться с php. Если уж тебе позволено иметь бд на сервере, то и шелл наверняка предоставляется.
Насчет похожести Perl'a и PHP ничего не могу сказать, совсем не знаю Perl. Но, если ты знаешь Perl, то сможешь начать писать на PHP очень быстро :-)

   
 
 автор: cheops   (15.11.2005 в 00:19)   письмо автору
 
   для: WebTech   (14.11.2005 в 16:29)
 

Да, для переноса дампа средствами PHP - дамп необходимо разбить, это можно сделать при помощи функции preg_split(), разбивающей строку по регулярному выражению http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=1407, если есть возможность установить phpMyAdmin - это самый простой вариант.

   
 
 автор: WebTech   (15.11.2005 в 16:57)   письмо автору
 
   для: cheops   (15.11.2005 в 00:19)
 

Кстати.
Порылся в исходниках phpMyAdmin'a... Он это и делает с файлом дампа. Разбивает его на части.

   
 
 автор: cheops   (15.11.2005 в 00:22)   письмо автору
 
   для: Killer   (13.11.2005 в 19:45)
 

>Кстати хочу РНР тоже изучать, они наверное не намного
>различаются с Perl?
Если знаете Perl, то никаких сложностей (почти) с PHP не возникнет - он вас даже разчарует меньшей функциональностью, но зато порадают большей прозрачностью и читабельностью, что важно при изучении кода по листингам чужих программ.

   
 
 автор: Killer   (16.11.2005 в 00:08)   письмо автору
 
   для: Killer   (13.11.2005 в 17:35)
 

Все номально, на хосте такое написано:
"Администрировать свою базу данных вы сможете через shell, либо установив
phpMyAdmin."

   
Rambler's Top100
вверх

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