Здравствуйте.
1) Есть ли разница, как писать команды в запросе к MySQL? То бишь, под виндой у меня работает и select, и SELECT абсолютно одинаково. Но я не знаю, где будет крутится база. В общем, зависит ли регистр команд от оси или MySQL'ю всё равно под какой системой он работает и в любом случае select=SELECT?
Просто, насчёт имён таблиц и баз, я знаю что они чувствительны к регистру, а вот насчёт команд не в курсе.upd: команды регистронезависимы и операционка роли не играет. Спасибо
DukeSS2) Как правильно делать перенос базы с сервера на сервер? И что надо сделать на принимающей стороне?
Перенос, как я понимаю, корректно будет делать через mysqldump. То есть:
1. сделать дамп у себя и получить namebase.sql
2. перенести namebase.sql на сервер принимающей стороны
3. выполнить на принимающей стороне mysqldump, чтобы база появилась на новом сервере.
Правильно? upd: разобрался. Правильная последовательность:
на старом сервере:
mysqldump `basename` -u user -p > "namebase.sql"на новом сервере:
mysql -u user -p
mysql>create database `namebase`;
mysql>exit
mysql -u user -p `namebase` < "namebase.sql"Отсюда вытекает ещё несколько вопросов.
3) Если мне надо будет регулярно делать дамп базы, для этого надо чтобы на новом сервере мне сделали учётку в системе с правами на запуск mysqldump? Или это как-то иначе реализовать можно? (без всяких phpmyadmin и иже)
4) Я так понимаю, что надо будет обязательно сделать на новом сервере пользователя MySQL, чтобы обращаться к базам. Вопрос - как правильно прописать права, чтобы я мог делать с базами что угодно, но только со с теми, которые сам создал?
Для одной базы, я понимаю, оно будет выглядеть так:
GRANT ALL ON basename.* TO user@localhost IDENTIFIED BY 'password';
Это откроет мне все права по отношению к указанной базе. Но мне нужно, чтобы я мог создавать другие.
В общем, нужна команда, которая позволит мне творить с базами что угодно, но ТОЛЬКО со своими (которые сам создал) и не даст мне влиять на работу сервера, только на свои базы.
5) Вопрос про кодировки. У меня настройки MySQL прописаны так, что данные внутри баз хранятся в utf-8. Если я перенесу базу на новый сервер, а там настройки кодировки другие, что надо будет сделать, чтобы избежать проблем? Можно ли определить для базы кодировку принудительно (как?) чтобы она была в этой кодировке, вне зависимости от настроек сервера?
6) Вопрос, по возврату данных, после запроса с помощью AJAX. В мануале пишется, что данные с сервера будут находится в XMLHttpRequest.responseText (ссыль). Что должно быть на стороне сервера, чтобы передать данные в это свойство?
То бишь, можно сделать echo "Ответ сервера" и "Ответ сервера" попадёт в responseText или создаётся какая-то переменная, которой надо присваивать передаваемые данные, типа $response = "Ответ сервера".
Вопрос возможно глупый, но а) все с чего-то начинают; б) в мануале описана только клиентская часть, как отправить данные серверу и как обработать полученные, а примеров серверной части не указано.upd: Разобрался. Просто echo работает, его вывод автоматом записывается в responseText.
Пока вроде всё.
-
-
29.03.2012 в 12:492)1 - да, 2 - да, 3 - кажется, нет, надо пользоваться mysql - пусть товарищи поправят
3) Попросить сделать задание по cron для автоматического дампа
-
-
29.03.2012 в 19:32-
-
29.03.2012 в 19:52-
-
29.03.2012 в 21:07-
-
30.03.2012 в 01:11-
-
30.03.2012 в 02:53про файлы данных: копировать конечно можно, но совершенно не нужно. сразу запомните, что если вам нужно скопировать файлы данных, вы делаете что-то не то. данные переносятся дампом всегда, за исключением очень нестандартных ситуаций.
про дамп:
1. возьмите себе за правило сразу жать его: mysqldump ... | gzip > filename.sql.gz
2. никогда-никогда-никогда не создавайте БД без дефолтной кодировки. кодировка всегда юникод.
3. дамп отлично работает по сети есичо (к вопросу о системном юзере)
про гранты:
1. нет никакого смысла указывать хост юзеру, это только мешает и ничего не даёт.
2. мускуль такая помойка, что может выдать грант на несуществующую базу, этим и пользуйтесь. сначала делаете юзера с грантом ALL, потом от него делаете свою базу, очень удобно.
ещё про кодировки: настройки сервера никак не влияют на существующие данные. ставьте явно кодировку каждой базы (бонус за каждую таблицу) и клиентского соединения, и проблем у вас быть не должно.
про аякс: судя по используемой терминологии, HTTP для вас -- это непонятная магия. это плохо. HTTP очень простой протокол, рекомендую потратить пару часиков и прочитать его RFC.
-
-
30.03.2012 в 14:13А можно пример, как кодировку для базы/таблицы ставить?
-
-
30.03.2012 в 17:00-
-
30.03.2012 в 18:22