Быстрый перенос базы данных с одного сервера на другой

14.04.2009 от nikolay

Имея доступ к консоли исходного сервера можно легко скопировать БД на другой сервере (например, при переезде вебсайта к другому хостинг-провайдеру). Единственное требование для успешности этой операции - новый сервер должен разрешать удаленные подключения к БД. Итак, как можно сделать копию БД на другом сервере?

1. Войдите в консоль на исходном сервере.

2. Введите команду mysqladmin -h ‘destination_host’ -u user -p create dest_db, где destination_host - ip адрес или имя удаленного сервера, user - имя пользователя на удаленном сервере, а dest_db имя создаваемой базы данных.

3. Введите команду mysqldump -u user2 –password=XXXX –opt –compress source_db | mysql -h ‘destination_host’ -u user -p dest_db, user2 и XXXX это логин и пароль на локальном сервере.

См. также:
Как сбросить пароль MySQL?
Название текущей базы данных MySQL
Вывод доступных баз данных MySQL

Рубрики: Настройки, Разное | Комментариев нет »

Изменяем параметр max_allowed_packet на лету

08.04.2009 от nikolay

Иногда нужно увеличить параметр max_allowed_packet временно, для конкретного приложения, работающего с MySQL. В этом случае удобно воспользоваться следующим запросом:

SET max_allowed_packet = 1500000;

Таким образом, мы можем временно для конкретной сессии менять значения данного параметра.

См. также:
LAST_INSERT_ID и его параметр
DES_ENCRYPT и DES_DECRYPT
Вывод результатов запроса по вертикали в консоли MySQL

Рубрики: Настройки, Разное | Комментариев нет »

Опция SQL_BUFFER_RESULTS

11.03.2009 от nikolay

Оказывается у запросов SELECT есть множество опций, которые могут оказывать значительное воздействие на производительность запроса.

Так, например, запрос вида SELECT SQL_BUFFER_RESULTS… заставит MySQL сделать временный результат в промежуточном буфере. Как только временные данные в буфере будут сделаны, все блокировки с таблицы будут сняты. Это может помочь, если у вас проблемы с блокировками таблицы или когда требуется много времени для передачи полученных данных к клиенту.

См. также:
Типы таблиц MySQL
SELECT HIGH_PRIORITY…
Кодировки, кодировки, кодировки…

Рубрики: Настройки, Производительность | Комментариев нет »

Пара слов о полнотекстовом поиске

17.02.2009 от nikolay

Если у вас после реализации полнотекстового поиска почему-то не ищутся слова короче 4-х букв, то вам нужно просто изменить в конфиге MySQL значение опции ft_min_word_len. По умолчанию ft_min_word_len = 4, что означает минимальную длину у слова 4 символа. Но это еще не все, после изменения опции нужно:

  1. перезапустить MySQL-сервер
  2. выполнить для таблицы с полнотекстовым индексом команду REPAIR TABLE table_name QUICK

См. также:
Особенности работы с UTF-8 и MySQL
Конструкция SELECT SQL_NO_CACHE…
Опция i-am-a-dummy

Рубрики: Настройки, Разное | Комментариев нет »

Кодировки, кодировки, кодировки…

17.02.2009 от nikolay

Оказывается в настройках MySQL есть просто туева куча кодировок. Кодировка для того, кодировка для сего… а потом мы удивляемся отчего не работает сортировка или поиск по таблице. Вот коллега постарался и собрал информацию воедино. Собственно соответствующий список параметров конфига MySQL:

  • character_set_client - кодировка в которой данные будут поступать от клиента
  • character_set_connection - кодировка по умолчанию для всего, что в рамках соединения не имеет кодировки
  • character_set_database - кодировка по умолчанию для баз
  • character_set_filesystem - кодировка для работы с файловой системой (LOAD DATA INFILE, SELECT … INTO OUTFILE, и т.д.)
  • character_set_results - кодировка, в которой будет выбран результат
  • character_set_server - кодировка, в которой работает сервер
  • character_set_system - кодировка, в которой задаются идентификаторы MySQL, всегда UTF8
  • character_sets_dir - папка с кодировками

Лично я, работая только и всегда с UTF-8, придерживаюсь простого правила и у меня всегда все работает - база, таблицы и поля у меня всегда в кодировке utf8_general_ci, из скрипта при подключении выполняется SET NAMES UTF8. Всё!

Перевод технической документации MySQL осуществлен при поддержке бюро переводов Bues.ru.

См. также:
Доступные кодировки в MySQL
Имена таблиц чувствительные к регистру… но не всегда!
Как быстро узнать сколько всего строк без учета LIMIT?

Рубрики: Настройки, Разное | Комментариев нет »

Тюнинг конфига MySQL

03.02.2009 от nikolay

Наткнулся тут на один оптимизационный скрипт, выдающий советы по тюнингу конфига MySQL. Качать здесь.

Оптимизировал у себя на одном сервере - вроде все ок, правда прироста не заметил особого :).

См. также:
Как сбросить пароль MySQL?
MySQL: error 28
Быстрый перенос базы данных с одного сервера на другой

Рубрики: Настройки, Утилиты, Производительность | Комментариев нет »

Как сбросить пароль MySQL?

27.01.2009 от nikolay

Забыл тут рутовский пароль MYSQL на одном сервере, - вот хоть убей помнил, но забыл :). Поиск по сети дал следующее работающее решение.

Ксати, у меня на одном серваке стоит Debian и там mysql как-то автоматом логинится под root’ом - просто вбиваешь в консоли mysql и ты уже под рутом. В этом случае, похоже, хватит и таких команд:

UPDATE user SET password=password('new_password') WHERE user='root';
flush PRIVILEGES;

См. также:
Быстрый перенос базы данных с одного сервера на другой
Как определить самую ресурсоемкую таблицу MySQL?
Тюнинг конфига MySQL

Рубрики: Настройки, Утилиты | Комментариев нет »