|
Буквально в двух словах о том, как использовать phpmyadmin для работы с базой данных MySQL.
Форум phpbb установлен, настроен, работает. Начали появляться первые посетители. Ведутся горячие дискуссии. По совету старших товарищей, Вы установили пару небольших модов. Ничего сложного, подумали Вы, как вдруг, очередная инструкция выдаёт Вам странную и не понятную директиву: #-----[ SQL ]------------------------------------------- # ALTER TABLE phpbb_users ADD user_info VARCHAR(255) AFTER user_interests; ALTER TABLE phpbb_users ADD user_regip CHAR(8) NOT NULL DEFAULT '0'; # |
Вы решаете, что это часть приветствия от автора и на этом успокаиваетесь... Через каких-нибудь полчаса тире сорок минут на форуме поддержки появляется сообщение вроде: Установил такой-то мод. Всё делал по инструкции. А форум выдаёт такое... В ответ на Ваш вопль поступает предложение выполнить SQL-запрос. Вы в панике... О чём же всё-таки речь?Как известно, форум phpbb состоит из двух основных частей: - файлы, содержащие код; - база данных, в которой содержится вся информация (пользователи, пароли, темы, сообщения...) Разделение на две части весьма условное, но для этого случая, вполне подходящее. Дело в том, что для успешной работы некоторых модов достаточно лишь отредактировать лежащие на сервере файлы. Рано или поздно Вы всё равно столкнётесь с модом, которому этого мало и, который захочет внести изменения в базу данных Вашего форума. Кстати, если Вы читаете эту статью, значит: а. я Вас умолял её прочитать; б. Вы-таки столкнулись с подобным модом. Поздравляю! И так, перед нами задача: внести необходимые моду изменения в базу. Как правило, это добавление нового поля в, уже существующую таблицу, или же создание новой таблицы, в пределах Вашей базы данных (далее БД). Вроде всё предельно ясно. Но, порывшись в файлах форума на сервере, Вы, естественно, ничего похожего не нашли. Не удивительно, ведь БД где-то далеко. Это если речь идёт о форуме в глобальной сети. Если же Вы работаете в локальной - БД гораздо ближе, но легче от этого не становится. Тем временем, на форуме поддержки Вы продолжаете осаждать народ вопросами. В ответ сыплются совсем уже не приличные слова: командная строка, консоль, шелл, терминал, ssh... пхпмайадмин. Последнее задевает Вас особенно сильно. Прежде чем совершить роковую ошибку и начать разбираться с обидчиками, кликните по ссылке phpmyadmin и скачайте самую свежую версию этого монстра. Примечание. Когда не качать:1. Если Вы разбираетесь со своим форумом на своём компьютере, используя Джентельменский набор Денвер, как я обычно советую всем начинающим (и не только начинающим), качать phpmyadmin не надо, так как он уже идёт в комплекте и находится где-то здесь: http://localhost/Tools/phpmyadmin/index.php 2. Прежде чем качать phpmyadmin, проконсультируйтесь со своим хостером: возможно этот продукт уже стоит на сервере и Вам просто скажут, как до него дойти. 3. Не качайте если не уверены. Скачал.Молодец. Разархивируем и копируем на сервер в папку с красивым, а главное редким, именем. Желательно придумать нечто более интересное, чем phpmyadmin. Установленный на сервере пхпмайадмин - это своего рода отверстие в безопасности. Другими словами, злоумышленник может обратиться к нему и сделать с Вашей БД всё что ему вздумается. Это если не прикрыть папку паролем... Скопировали? Отлично. Путь у нас примерно такой теперь: http://lca.net.ru/папка_куда_я_залил_пхпмайадмин/index.php Но прежде, чем вбивать это в адресную строку, надо бы провести некоторые настройки. Кстати, их можно провести заранее у себя на компьютере, а затем уже заливать на сервер. Да не нервничайте Вы так. Ни что не мешает Вам перезалить отредактированный файл. Делов-то. Я надеюсь на Вашу любознательность, которая наверняка подтолкнула Вас на просмотр файла README, в котором есть кое-что интересное, а именно: Installation: Please see the Documentation.txt/.html file. Ах да, если бы Вы знали английский, то не читали бы сейчас эту фигню. Логично. Но я могу и обидеться. В двух словах: эта строка означает, что про инсталляцию читать в файлах на выбор: - Documentation.txt - Documentation.html В этих же файлах есть пара слов и про безопасность... Вы ещё здесь? Я думал, что Вы уже мчитесь в книжный магазин за словариком, по дороге записываясь на всевозможные курсы ускоренного изучения нерусского языка по специальности веб. Нет, так нет. Настройка. А сколько вас? Тонкий юмор, с исользованием особенностей родной речи. Забейте. В файле Documentation.txt, который Вы до сих не посмотрели, сказано, что редактировать надо config.inc.php. Для этого открываем этот файл в блокноте или, чем Вы там редактируете текстовые документы (умоляю, не надо ворда!) и млеем. Я Вас понимаю. Если этот файл открыть в блокноте... Поэтому я рекомендую для этих целей PHP Expert Editor. Но сойдёт и вордпад (не ворд!). Что тут у нас? Находим эту строку: $cfg['PmaAbsoluteUri'] = ''; обратите внимание: перед точкой с запятой стоят кавычки. Это не обычные кавычки, а одинарные. Улавливаете? То есть путь до пхпмайадмин, надо вписать между ними. Получится примерно следующее: $cfg['PmaAbsoluteUri'] = 'http://lca.net.ru/папка_куда_я_залил_пхпмайадмин/'; Знак влево, знак вправо карается сообщением об ошибке, с последующей ссылкой на форум поддержки. А там Вы всех уже достали. Едем дальше. Нас интересует код, который начинается примерно отсюда: * Server(s) configuration. К слову сказать, строк там до фига. Нас интересуют всего четыре. К сожалению, идут они не подряд, так что внимательней. $cfg['Servers'][$i]['host'] $cfg['Servers'][$i]['user'] $cfg['Servers'][$i]['password']
$cfg['Servers'][$i]['only_db']
| = 'адрес БД'; = 'пользователь БД'; = 'пароль к БД';
= 'имя БД'; | // MySQL hostname or IP address // MySQL user // MySQL password (only needed // with 'config' auth_type) // If set to a db-name, only |
Как видите, строки довольно знакомые. Где же Вы их могли видеть? Ну, конечно же, в нашем любимом config.php от форума. Так что, особо не заморачиваясь, можете скопировать данные из config.php в config.inc.php И опять же: данные вставлять между одинарных кавычек. Если же у Вас Денвер, то пользователь root, а пароля нет. в значение: $cfg['Servers'][$i]['host'] = 'адрес БД'; //MySQL hostname or IP address не вздумайте вписать адрес сайта. Сохраняем изменения. Убеждаемся, что файл не приобрёл у нас лишнего расширения и по-прежнему зовётся config.inc.php. Льём на сервер. Вы звери, Вы в сером... Упс. Нам обещали SQL!Вот только вруном меня называть не надо. Да? в браузере вбиваем нечто вроде: http://lca.net.ru/папка_куда_я_залил_пхпмайадмин/index.php и если кавычки не трогали, точку с запятой не обижали, и данные ввели верно, то взору Вашему может открыться занятная картинка. // может не сработать при наступлении форс-мажора и конца света. кликнуть, что бы увеличить: 
рис. 1. После того как справа Вы выберете русский язык, для Вас многое станет понятно. В случае, если у Вас есть возможность создавать Базы Данных самостоятельно, обратите внимание на кодировку создаваемой базы данных. Просто что бы потом, при переезде этой самой БД в другое место, избежать некоторых неудобств. И не стоит экспериментировать с написанием русских букв в имени БД. После создания базы данных, её можно выбрать слева, в выпадающем меню. Там же находятся уже существующие базы данных. Выбирайте нужную Вам в данный момент. 
рис. 2. Мне приспичило выбрать базу с интригующим названием forum17. Ничем не примечательная база от форума phpbb 2.0.17. Обратите внимание на цифру 1 (один): forum17 (29) - это значит, что в настоящий момент мы просматриваем базу с именем forum17, в которой 29 таблиц. Чуть ниже, там где цифра 2 (два), мы видим тоже имя БД, но 29 таблиц уже можно потрогать. Точнее, посмотреть и при необходимости отредактировать Структуру таблицы. Теперь смотрим вправо, куда я не сунул ни одной цифры. Здесь можно выбрать таблицу и... и что-нибудь с ней сделать. Причём, действие можно выбрать как сверху: | Структура | SQL | Экспорт | и т.д., так и прямо в строке с именем таблицы. Наведите на иконку, подождите, и увидите, что же именно эта иконка делает с таблицей. Но будьте внимательны и не кликайте без нужды. Не помешает перед упражнением сделать дамп базы данных (копию, по нашему.) Об этом чуть позже. А пока по быстрому глянем в низ этой страницы: 
рис. 3. Это то, что не вошло в рисунок 2. Здесь можно выделить все таблицы одним нажатием, а потом со всеми сразу сделать что-нибудь из выпадающего меню. Например, починить. Теперь поговорим и посмотрим на основные действия, которые чаще всего и придётся выполнять. Первое и самое важное: Дамп базы данных.Закладка Экспорт.
рис. 4. Цифра 1: здесь мы вибираем какие именно таблицы мы будем сохранять. Обычно нужны все, но мало ли чего. Вдруг Вас припёрло только пользователей сохранить... Цифра 2: выбираем SQL. Цифра 3: ставим галочку: Добавить удаление таблицы. Если я ещё что-то понимаю, в этот предрассветный час, то эта штучка добавит команду: удалить таблицы, если он существуют. Зачем: Вы сделали копию базы, после чего Вам захотелось эту копию восстановить. Вы пытаетесь это сделать, но поскольку база не пустая, Вам пишут: такая-то таблица олреди экзист. То есть, уже существует. Поэтому-то её и надо перед этим удалить. Как вариант, можете удалять вручную. Но гуманней будет, если скрипт всё сделает сам. Крутим страницу ниже и переходим к рисунку 5: 
рис. 5. Шаблон имени файла: здесь мы обзываем файл. Практичней в название файла добавлять имя базы данных и число, когда копия была сделана. Имя, потому что баз может быть несколько. Число, потому что, я надеюсь, копию Вы делаете часто. Сжатие: Нет: не архивировать - в этом случае дамп будет выведен в новом окне. Вы сможете его просмотреть, и, при необходимости скопировать в буфер обмена, что бы потом, вставить в текстовый файл. Не забудьте этот самый файл сохранить с расширением .sql. Рекомендован для тех, кто не ищет лёгких путей. архивировать в zip: дамп волшебным образом заархивируется в зип, и, Вам будет предложено, его куда-нибудь сохранить. архивировать в gzip: аналогично с zip, с поправкой на гзип. Поздравляю: дамп готов. Скромно так:SQLПомните с чего всё началось? Вот, вот. Именно с этих трёх букв. 
рис. SQL. Изначально это поле пустое. Это я заранее добавил команды :) Собственно, в это текстовое поле и ставятся странные строки SQL. Обратите внимание: каждая команда в MySQL заканчивается точкой с запятой. Как видите: две команды - две точки с запятой. Кстати, сюда же можно скопировать дамп базы и нажать первую Пошёл. 
рис. 8. Картинка говорит сама за себя. Мне к этому добавить нечего. Или Месторасположение текстового файла: угадайте с трёх раз. Это Вам предлагается указать путь до Вашего дампа, который может быть просто файлом .sql или же архивом. Минимальный размер: 8,192 KB - это реально бред. Во-первых, не минимальный, а максимальный (баг перевода, я полагаю). Во-вторых, не 8,192, а раза в четыре меньше. Это я как-то увеличивал размер съедаемого файла... Не суть. В общем, если размер дампа превышает 2ххх с чем-то кб, могут, и обязательно возникнут, проблемы. Другими словами, при большом размере, восстановление через пхпмайадмин будет всё ещё выполнимо, но через... через большой труд. Поэтому, есть смысл подумать об изучении нескольких команд в консольке. Это не так тяжело, как кажется, но весьма полезно. Эпилог.Как Вы наверное уже поняли всё вышесказанное справедливо не только для форума phpbb, но и для различных cms (limbo, joomla, spaiz-nuke и т.д). В общем, это для работы с MySQL. И только с MySQL. Напоминаю: держать phpmyadmin в открытом доступе на сервере - опасно! ПиЭс Распространяется: бесплатно, в надежде быть полезной, но без каких-либо гарантий. Лицензия: GNU General Public License Требования: php 4.1.0 и больше MySQL 3.23.32 и больше вэб-браузер. Официальный сайт: http://phpmyadmin.net ПиПиЭс С возникшими вопросами, милости прошу на форум. |