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

Форум MySQL

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

 

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

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

тема: забить базу из файла на сервер через shell
 
 автор: 1999   (05.07.2006 в 17:17)   письмо автору
 
 

здрасте еще раз!
всегда забивал базу через пхп-май-админ, но на новом хосте нету веб-интерфейса
знаю, что можно забивать и через shell
скажите пожалуйста, что нужно написать в командной строке, чтобы забить туда (на сервер) базу?

   
 
 автор: 1999   (05.07.2006 в 21:24)   письмо автору
 
   для: 1999   (05.07.2006 в 17:17)
 

help

   
 
 автор: Unkind™   (05.07.2006 в 21:52)   письмо автору
 
   для: 1999   (05.07.2006 в 21:24)
 

Прям так и писать CREATE TABLE ... и т.д. А в чем проблема? Вообще что за хостинг с MySQL и без phpMyAdmin?

   
 
 автор: ZooM (ССС)   (05.07.2006 в 21:56)   письмо автору
 
   для: Unkind™   (05.07.2006 в 21:52)
 

Да а ты не парься! Возьми сам залей PhpMyAdmin !
Он гдето 2 мега весит потом введи хост логин и пароль и все! Пользуйся! Я всегда так делаю!

   
 
 автор: cheops   (06.07.2006 в 00:12)   письмо автору
 
   для: 1999   (05.07.2006 в 17:17)
 

А что доступно? SSH?

   
 
 автор: 1999   (06.07.2006 в 10:34)   письмо автору
 
   для: cheops   (06.07.2006 в 00:12)
 

не уверен что правильно понимаю что такое SSH но если это командная строка, то наверно да
знаю что можно набрать в командной строке mysql localhost -h admin -u (или как-то так), а потом ввести пароль (поправьте если не так). Но проблема в том, что на сервере то, к чему соединяемся называется как раз localhost. А как командная строка поймет, что надо делать запрос к тому сайту, а не к домашнему MySQL? Подскажите плиз если ячто-то неправильно понимаю тут

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

   
 
 автор: Trianon   (06.07.2006 в 10:40)   письмо автору
 
   для: 1999   (06.07.2006 в 10:34)
 

localhost считается относительно той машины, на которой вы выполняете команду mysql. Т.е. если MySql-сервер и SSH-сервер - это одна и та же машина, то попадете Вы туда, куда надо.

А phpMyAdmin может пригодиться в будущем.
Так что выйдет ли без него попроще - это еще вопрос.

   
 
 автор: cheops   (06.07.2006 в 11:44)   письмо автору
 
   для: 1999   (06.07.2006 в 10:34)
 

> mysql localhost -h admin -u
На самом деле вот так
mysql -h localhost -u admin -pПароль base < base.sql

Где base - база данных, а base.sql - дамп, который нужно развернуть (лучше абсолютный путь), после параметра -p, в отличие от других параметров, пробела быть не должно.

   
 
 автор: 1999   (06.07.2006 в 17:57)   письмо автору
 
   для: cheops   (06.07.2006 в 11:44)
 

Скажите а если у меня сервер на том хостинге localhost
юзер допустим -pasha и пароль допустим pass, то
1) можно ли забить базу из дома через инет по shell'у
2) если да, то в командной строке надо набить
mysql -h localhost -u pasha -p pass database < db.sql???
а он не полезет забивать мою домашнюю database???

   
 
 автор: 1999   (07.07.2006 в 11:36)   письмо автору
 
   для: 1999   (06.07.2006 в 17:57)
 

помогиите

   
 
 автор: XPraptor   (07.07.2006 в 12:23)   письмо автору
 
   для: 1999   (07.07.2006 в 11:36)
 

А язык T-SQL (которым оперирует MySQL) пробовали поучить?
В справочке по MySQL все очень хорошо написано.
В MySQL встроена в язык система дампа базы и таблиц в отдельности.
ИМХО самый простой и удобный способ залить базу - по таблично.

На локальном хосте сброс всех таблиц в файлы:
$flname=$_SERVER["DOCUMENT_ROOT"] . "/Table1.txt";
mysql_query("SELECT * INTO OUTFILE '" . $flname . "' FIELDS TERMINATED BY '~!~' LINES TERMINATED BY '-!!-\r\n' FROM Table1);

На удаленном заброс обратно в базу:
@mysql_query("LOAD DATA INFILE '" . $flname . "' REPLACE INTO TABLE Table1 FIELDS TERMINATED BY '~!~' LINES TERMINATED BY '-!!-\r\n'");

   
 
 автор: 1999   (07.07.2006 в 14:06)   письмо автору
 
   для: XPraptor   (07.07.2006 в 12:23)
 

мля ну слов нет я че это что ли просил?

> А язык T-SQL (которым оперирует MySQL) пробовали поучить?
В справочке по MySQL все очень хорошо написано.
В MySQL встроена в язык система дампа базы и таблиц в отдельности.
ИМХО самый простой и удобный способ залить базу - по таблично.

и чего? да какая мне разница как заливать? потаблично или нет? я вобще про соединение через командную строку спрашивал! я не понимаю как домашний мускул различит при коннекте localhost домашний от localhost'а который на том сайте. как он это сделает?

   
 
 автор: Trianon   (07.07.2006 в 14:16)   письмо автору
 
   для: 1999   (07.07.2006 в 14:06)
 

Вы можете запустить putty.exe и соединиться с сервером хостера.
А можете просто нажать Пуск и выбрать Программы, стандартные, командная строка.
И то и другое будет оболочкой командной строки.
И в том и в другом случае Вы можете в ней запустить mysql -h localhost -u pasha -p pass database < db.sql
Но в первом случае Вы запустите unix'овую программу на сервере взятую с сервера, а во втором - mysql.exe взятый со своей собственной машины на своей собственной машине.
И в том и в другом случае оба варианта этой программы (mysql, а точнее - MySql-клиент) , будут пытаться соединиться с localhost , и оба они будут понимать под локалхостом ту машину, на которой сами же и запущены.
Соответственно в первом варианте это будет сервер хостера, а во втором - ваш собственный комп.

Так понятно?

   
 
 автор: XPraptor   (07.07.2006 в 15:01)   письмо автору
 
   для: Trianon   (07.07.2006 в 14:16)
 

А кто даст заюзать внутренние утилиты сервера для MySQL?
Если с провом словами договорится, то может он пойдет на это и временно откроет доступ.
Какие к е...ям localhost-ы у провайдера? Если и остались такие провы, то их клиентов валят как хотят и они быстро разбегаются.
Пров дает строгий адрес к твоей бд и доступ к ней только от одного юзера, которого тебе пров выдал, а к мускулу доступ закрыт из вне.

Поэтому тебе и написал про встроенную в язык возможность дампа из / в базу.
Самый быстрый и безгемморойный способ, скидываешь у себя все таблицы в текстовые файлы качаешь по фтп на новый сервак а там простейшим скриптом запускаешь загрузку из этих файлов в новую базу.

   
 
 автор: Trianon   (07.07.2006 в 16:01)   письмо автору
 
   для: XPraptor   (07.07.2006 в 15:01)
 

Во первых, выбирайте выражения.
Во вторых, не стоит расписываться за всех провайдеров. Есть достаточно таких, у которых и коннект на localhost и в плане защиты дела обстоят вполне приемлемо. Тем более - так категорично. Я явно дал понять, что излагаемое справедливо в предположении (06.07.2006 в 10:40), что БД и SSH - одна машина.
В третьих, не надо нести откровенный бред. Как про то, что клиент mysql является внутренней утилитой сервера.
Про предложенный Вами код я скажу лишь, что безгеморройным его назвать по меньшей мере легкомысленно. Когда-нибудь Вы от него пострадаете.
Достаточно попробовать перенести им базу форума, в которой он (код) опубликован.

   
 
 автор: 1999   (07.07.2006 в 16:06)   письмо автору
 
   для: XPraptor   (07.07.2006 в 15:01)
 

2Trianon: спасибо все идеально объяснили =) вот только этот самый putty.exe я понял мне запустить совсе не дано? так?

2XPraptor: ну вы зря собственно про localhost'ы. Вот три хостинга на которых стоят поддерживаемые мной сайты имеют как сервер именно localhost (причем один из этих хостов ОЧЕНЬ известный). что значит их клиентов валят как хотят? а насчет способа - спасибо =)

   
 
 автор: Trianon   (07.07.2006 в 16:21)   письмо автору
 
   для: 1999   (07.07.2006 в 16:06)
 

putty.exe Вы запустить сможете в любом случае. Т.к. запускаете его на своей машине.
А соединиться с его помощью с хостом провайдера сможете лишь в том случае, если провайдер предоставил Вам доступ к серверу по протоколу SSH. О чем cheops спросил вас в самом начале диалога.

И еще . И Ваш вариант с <db.sql и вариант XPraptor c LOAD DATA INFILE пройдет лишь в том случае, если Вы тем или иным образом сможете загрузить на сервер файл с данными.
В отличие от phpMyAdmin.

   
Rambler's Top100
вверх

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