Если кто-то говорит "Не надо ставить этого монстра" - не верьте! Надо и очень надо!
phpMyAdmin - утилита для управления базами данных через интерфейс броузера (формы, кнопки, ссылки). Распространяется бесплатно ("open source"), первая публичная версия появилась в октябре 98 года. За более чем два года программа доведена до высокого уровня - она умеет почти всё, что можно делать с базами данных.
В принципе, PHPMyAdmin (версией 2.1.0 и выше) может пользоваться человек, совсем не знающий SQL. Все операции по созданию, удалению и настройке баз и таблиц можно выполнять именно через эту утилиту.
Разумеется, необходимости знания языка запросов никто не отменял, но досконально учить синтаксис всех запросов (CRETE TABLE, ALTER TABLE, например) не требуется. Тому, кто не очень хорошо знает язык запросов (SQL), эта утилита будет очень полезна.
Даже головастые программисты предпочитают использовать PHPMyAdmin вместо "ручной работы".
Очень важно, что PHPMyAdmin есть на большинстве (если не всех) языках мира. Ссылочки, меню и т.д. на Вашем родном языке приведут Вас по адресу и сделаете Вы то, что задомали, не заблудившись в дебрях.
Вот чего, единственное, не рекомендую - так это следовать правилу "А что если нажать на "уничтожить" или "удалить"?" На все остальные ссылочки можно смело нажимать - информацию не потеряете.
1. Заходите в PHPMyAdmin на текущем сервере.
2.1. Если баз несколько, то выберите необходимую из списка.
2.2. Если одна, то нажмите на нее.
3. Заходите в пункт меню "Экспорт".
4. В колонке "Экспорт" выделяем все таблицы из списка путем нажатия на ссылочку "Отметить все".
5. В колонке "Опции SQL" галочки должны стоять напротив следующих вариантов: "Структура", "Добавить значение AUTO_INCREMENT", "Обратные кавычки в названиях таблиц и полей" (кстати, в большинстве случаев галочки на этих вариантах стоят по-умолчанию).
6. Колонка "Данные". Галочки должны стоять напротив следующих выборок: "Полная вставка". Export type: "INSERT" (по-умолчанию).
7. Колонка "Послать". Поставьте галочку.
8. Подколонка "Сжатие". Если база большая, то для более быстрого скачивания (в раз 10 быстрее) выберите тот или иной вид архивирования данных.
9. Нажимаете кнопочку "Пошел".
10. После этого Дамп Базы Данных будет скачан и сохранен на Вашем компьютере.
11. Если Вы скачали сжатый (заархивированный) вариант Базы Данных, то Вам следует его разархивировать.
12. Заходите в PHPMyAdmin на сервере нового хостинг-провайдера.
13.1. Если баз несколько, то выберите необходимую из списка.
13.2. Если одна, то нажмите на нее.
14. Заходите в пункт меню "SQL".
15. Нажимаете на кнопочку "Обзор" и находите на своем компьютере Дамп Базы Данных.
16. Нажимаете на кнопочку "Пошел" и дожидаетесь (чем больше База Данных, тем дольше нужно ждать) сообщения об успешном выполнении инструкций.
Можно!
... и не только PHPMyAdmin, а целый сервер с необходимой функциональностью можно поставить на свой компьютер. Что самое интересное, время на установку - 5 минут.
Есть такой чудо джентельменский набор для разработчика под названием "Денвер".
Подробности здесь: http://dklab.ru/chicken/web/base.html
1. Нужно изменить немного скрипт подключения к БД.
Пример, как можно было подключиться раньше:
$db = @mysql_connect("$dbhost","$dbuser","$dbpass");
@mysql_select_db($dbname,$db);
Пример, как нужно в MySQL 4.1 и выше:
$db = @mysql_connect("$dbhost","$dbuser","$dbpass");
@mysql_select_db($dbname,$db);
@mysql_query('SET NAMES cp1251;');
2. При залитии дампа со старого мускула в MySQL 4.1 и выше во все запросы с "CREATE TABLE" нужно вконце перед точкой с запятой добавить:
TYPE=MyISAM DEFAULT CHARACTER SET cp1251
Да, это возможно. Для этого нужно зайти в панель управления аккаунтом и выбрать "Управление MySQL" и потом уже создавать новую базу данных через доступный интерфейс.
-dbhost: mysql.доменное_имя_сайта
Хост (адрес mysql-сервера) для подсоединения к базе данных.
-dbname: db_username_N
имя базы данных MySQL из принадлежащих Вашему аккаунту (можно посмотреть список баз данных в панели управления)
-dbuser: dbu_username_N
имя субпользователя MySQL, которому присвоены права на соответствующую базу данных
-password: пароль
пароль субпользователя базы данных.
Не старайтесь поместить в базы данных всю информацию, которая у Вас есть. Например, не нужно хранить там картинки, хоть MySQL это и позволяет. Помещая в базу данных двоичные образы графических файлов, Вы только замедлите работу своего сервера. Прочитать файл с картинкой с диска гораздо проще и, с точки зрения потребляемых ресурсов, экономичнее, нежели соединиться из скрипта к SQL, сделать запрос, получить образ, обработать его и, выдав нужные http-заголовки, показать посетителю веб-сервера. Во втором случае операция выдачи картинки потребует в несколько раз больше ресурсов процессора, памяти и диска. Также стоит помнить о том, что существуют механизмы кэширования веб-документов, которые позволяют пользователю экономить на трафике, а при динамической генерации контента Вы фактически лишаете своих посетителей этой удобной возможности.
Вместо картинок лучше хранить в MySQL информацию, на основе которой можно генерировать ссылки на статические картинки в динамически создаваемых скриптами документах.
Теперь как лучше направлять запросы:
вот так не верно $rc = mysql($db , "select 1");
хотя работать тоже будет, но Вы каждый раз будете делать выборку базы данных.
Делайте просто $rc = mysql_query ("select 1");
use mysql;
insert into user (host,user,password) values ('localhost', 'пользователь', password('пароль'));
insert into db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv, Drop_priv,Grant_priv,References_priv,Index_priv,Alter_priv) values ('localhost','БД','пользователь','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
flush privileges;
Необходимо скачать MyODBC и установить, после этого в Access в базе данных - "создать / связь с таблицами" - тип файлов указываем ODBC . Для обновления таблиц удобно пользоваться служебной утилитой Access2000 "Сервис / Служебные программы / Диспетчер связанных таблиц".
Подключите к проекту libMySql.lib, положите заголовочные файлы из поставки MySQL в директорию заголовочных файлов вашего компилятора, либо в каталог с программой, либо вообще куда душе угодно (лишь бы сами их не потеряли), libmysql.dll в каталог с программой, и пользуетесь функциями API MySQL, которые подробнейшим образом описаны в поставляемой вместе с сервером документацией. libmysql.lib и libmysql.dll берутся после установки дистрибутива MySQL в каталоге lib\opt.
libmysql.lib ОБЯЗАТЕЛЬНО должен работать с libmysql.dll ТОЙ ЖЕ поставки/версии. По этой причине НАСТОЯТЕЛЬНО НЕ рекомендуется хранить libmysql.dll в системном каталоге WINDOWS! Храните свою libmysql.dll в каталоге со своей программой.
Для C++ Builder получить libmysql.lib нужно импортом из libmysql.dll:
> implib libmysql.lib libmysql.dll
Из заголовочных файлов требуются:
mysql.h
mysql_com.h
mysql_version.h
В последних версиях ещё и my_alloc.h
Всё это добро берётся после установки дистрибутива MySQL в каталоге include.
Из всех в программе подключается только mysql.h. Перед ним обязательно должно быть подключен windows.h
#include
#include
Особенности Билдеровского VCL: В программах, использующих VCL, компилятор ругается на my_socket, объявленную в mysql.h как #define my_socket SOCKET. Заменяем на #define my_socket UINT_PTR и всё работает. (SOCKET в winsock.h объявлен как typedef UINT_PTR SOCKET).
Вот например так
mysql> select rec_id from rec where rec_id regexp "^1[0]+$" limit 10;
+--------+
| rec_id |
+--------+
| 10 |
| 100 |
| 1000 |
+--------+
Данный запрос выведет все записи в которых ключевое поле это степень десяти. Обратите внимание на то что регулярное выражение не имеет ограничителей !
Для тестирования повреждений рекомендуется выполнять: myisamchk tables[.MYI]
Параметры уровня проверки:
--medium-check - средний
--extend-check - расширенный
В crontab:
35 0 * * 0 /usr/local/mysql/bin/myisamchk --fast --silent /path/to/datadir/*/*.MYI
Внимание, myisamchk нужно запускать при _не_ запущенном mysqld, иначе нужно использовать утилиту mysqlcheck (mysqlcheck --repair --analyze --optimize --all-databases --auto-repair)
Восстановление таблицы:
REPAIR TABLE tbl_name или myisamchk -r table_name или myisamchk --safe-recover table_name
Скорее всего, это связано с ошибками PHP при буферизации на выходе и сжатии.
Попробуйте установить в config.inc.php для переменной $cfg['OBGzip'] значение FALSE, и php.ini для директивы zlib.output_compression значение Off.
Кроме того, известно о проблемах при работе PHP - 4.2.0 (кандидата в релиз) с Internet Explorer MS (проверенно на PHP 4.2.0 RC1 к RC4). Обновите версию релиза PHP 4.2.0.
Это - известная проблема с PHP ISAPI фильтром, которая заключается в его нестабильности. Для разрешения данной проблемы рекомендуется использование вместо данного режима 'cookie' - аутентификацию.
Скорее всего, это - баг PWS. Решением этой проблемы (лучшего пока не предложили) является удаление или закомментирование декларации DOCTYPE (2 линии) в скриптах libraries/header.inc.php, libraries/header_printview.inc.php, index.php, navigation.php и libraries/common.lib.php.
Эти возможности основаны на функциях PHP gzencode () и bzcompress (), для достижения большей независимости от платформы (Unix/Windows, безопасного режима, и т.д.). Таким образом, должен быть установлен PHP4> = 4.0.4, с поддержкой Zlib/Bzip2 (-с - zlib и - с - bz2). Если "падения" PHP возникают при попытке загрузки дампа с помощью Internet Explorer MS, при phpMyAdmin, запущенным под бетой PHP 4.2.0. В этом случае необходимо установить как минимум релиз PHP 4.2.0.
Ваш загруженный файл сохраняется PHP в директорию "upload dir", которая определена в php.ini переменной upload_tmp_dir (обычно, по умолчанию -/tmp). Мы рекомендуем, следующие установки для серверов Apache, запущенных в безопасном режиме, чтобы обеспечить разумную безопасность загрузки файлов:
создать отдельную директорию для загрузок: mkdir /tmp/php
дать права (монопольное использование) user.group Апача: chown apache.apache /tmp/php
дать соответствующие разрешения: chmod 600 /tmp/php
задать upload_tmp_dir = /tmp/php in php.ini
перезапустить Apache.
Если у Вас стоит RedHat 7.0 и Вы обновили PHP RPM до php-4.0.4pl1-3.i386.rpm, то в этом случае эта проблема связана не с phpMyAdmin, а с RedHat 7.0. Дело в том, что данный пакет имеет серьезную ошибку, которая была давным-давно исправлена в PHP.
Проблема усугубляется еще тем, что сбойный пакет все еще доступен, хотя данный баг был исправлен. Поэтому если у Вас возникает даная проблема, то для её решения загрузите исправленный пакет. Данное действие решит также \r\n проблему загружаемого файла!
Начиная с версии 2.2.4, phpMyAdmin может работать с серверами, поддерживающими open_basedir с завершающим слешем. Завершающий слеш позволит открывать файлы в текущей директории ('.'), все, что требуется, - создать директорию 'tmp' в папке phpMyAdmin, установить права на доступ 777 и остальным - такие же права как и у папки phpMyAdmin. Загружаемые файлы будут помещаться сюда, и после выполнения ваших SQL команд - удаляться.
В старших версиях MySQL, поля User и Password назывались соответственно user and password. Преобразуйте имена полей, с целью приведения их к текущему стандарту.
Начиная с версии 2.7.0, механизм импорта был переписан, и эта проблема в принципе не должна иметь место. По возможности, обновите установленный phpMyAdmin до последней версии, чтобы использовать новые возможности импорта.
Первым делом проверьте (или попросите проверить вашего хост-провайдера) значения переменных upload_max_filesize, memory_limit и post_max_size в php.ini. Все три перечисленные параметры ограничивают максимальный размер данных, которые могут быть переданы и обработаны PHP. Существует также мнение, что post_max_size и memory_limit должны быть больше чем upload_max_filesize.
Существует несколько вариантов, которые можно применить в случае необходимости загрузки слишком больших файлов, либо в случае невозможности конфигурирования php.ini:
Обратите внимание на переменную $cfg ['UploadDir']. Она позволяет загружать файл на сервер с помощью scp, ftp, либо с помощью другого предпочитаемого вами метода передачи данных. PhpMyAdmin в данном случае может импортировать файлы из временной директории. Более подробная информация доступна в разделе документации "Конфигурация".
Использование утилиты (такой как BigDump), для разбития файлов на части перед загрузкой.
Если Вы имеете shell-доступ, используйте MySQL, для непосредственного импортирования файлов. Это выполняется с помощью запуска sql-команды изнутри MySQL: источник filename.sql.
Полностью поддерживаются все версии MySQL с 3.23.32 до 5.0 (за исключением 4.1.0 и 4.1.1). Обратите внимание на то, что чем старше версия MySQL, тем больше ограничений накладывается. phpMyAdmin может соединяться с вашим MySQL сервером, используя классические php-расширения: MySQL и его усовершенствованный вариант (MySQLi), который доступен в php 5.0. И в том и другом случае, разработчики обоих расширений рекомендуют использовать классическое расширение для MySQL 4.0 и ниже и MySQLi для MySQL 4.1 и новее.
При компилировании php, настоятельно рекомендуется, вручную связать выбранное Вами MySQL расширение с клиентской библиотекой MySQL по крайней мере с упрощенными версиями, которые присутствуют в дистрибутивах php. Чаще всего библиотеки, входящие в дистрибутив php - старые, их использование может вызывать проблемы (см. FAQ 1.17a). Если Ваш веб-сервер запущен под Windows вы можете попробовать MySQL Connector/PHP вместо MySQL / MySQLi расширений, который входит в состав сборки php под Win32.
Вы пытаетесь получить доступ к MySQL со старой клиентской библиотекой MySQL. Версия клиентской библиотеки MySQL может быть проверена с помощью phpinfo (). Как правило, версия должна быть той же, что ваш сервер - как упомянуто в FAQ 1.17.
Эта проблема как правило, возникает при использовании версии 4.1 MySQL или более новой. MySQL изменил хеш аутентификации, а ваш PHP пытается использовать старый метод. Решение состоит в использовании расширения mysqli с клиентской библиотекой, соответствующей вашей установке MySQL. Выбранное расширение определено в $cfg ['Servers'] [$i] ['extension']. Дополнительную информацию и примеры можно найти в документации MySQL.
Библиотека "FPDF", которая используется для этой опции, подключает некоторые специальные файлы для использования шрифтов. Для получения большей информации об этих файлах ознакомьтесь с мануалом FPDF.
Чтобы соединиться с MySQL сервером, PHP необходимо установить MySQL расширение (MySQL extension). Это расширение может быть частью PHP дистрибутива (compiled-in), в противном случае необходимо подгружать его динамически. Его имя скорее всего mysql.so или php_mysql.dll. В данном случае phpMyAdmin пытается загрузить расширение но безуспешно.
Это происходит потому что MySQL директива lower_case_table_names по умолчанию имеет значение 1 (ON) в Win32 версии MySQL. Вы можете изменить это поведение, просто присвоив директиве значение 0 (OFF): Только не забудьте отредактировать файл my.ini, который обычно по умолчанию расположен в каталоге Windows и добавьте следующую строчку в группу [mysqld]:
set-variable = lower_case_table_names=0
Затем, сохраните файл и перезапустите MySQL. Вы всегда можете проверить значение этой директивы, используя запрос
В данной версии mod_gzip на Apache (Windows) имеет проблемы при обращении с PHP скриптами. Разумеется, после изменений не забудьте перезапустить Apache.
Это проблема разрешений. Кликните правой кнопкой на папке phpmyadmin и выберите свойства. На вкладке Security, кликните "Add" и выберите пользователя "IUSR_machine" из списка. Теперь задайте для него разрешения - как правило, это решает проблему.
Это - баг PHP, который проявляется, когда разрешена GZIP буферизация на выходе. Если отключить эту опцию ($cfg ['OBGzip'] = FALSE в config.inc.php), проблема, как, правило решается. Эта ошибка пофиксена в PHP 5.0.0.
Это может происходить из-за бага MySQL, который проявляется в случае использования прописных букв в названиях баз данных/таблиц, хотя lower_case_table_names установлена в 1. Чтобы пофиксить проблему, отключите эту директиву, преобразуйте все имена базы данных и названия таблиц к строчным буквам и включите директиву снова. Как альтернатива -- bug-fix доступный начиная с MySQL 3.23.56 / 4.0.11-gamma.
Возможно Apache сконфигурирован таким образом, что PHP имеет проблемы с интерпретированием .php файлов.
Проблемы возникают, при использовании двух различных (и конфликтующих) наборов директив: SetOutputFilter PHP
SetInputFilter PHP
&
AddType application/x-httpd-php .php
Вышеуказанная настройка есть в /etc/httpd/conf/httpd.conf, в то время как другая установка - в /etc/httpd/conf/addon-modules/php.conf.
Рекомендуется - использовать AddType, поэтому закомментируйте первые строчки и перезапустите Apache: