Выпущен финальный релиз MySQL 5.6 GA

Оффтопик: Выпущен финальный релиз MySQL 5.6 GA

5 февраля 2013 компания Oracle представила долгожданный релиз MySQL 5.6 GA. Это означает, что теперь его можно использовать на продакшене.

Версия MySQL 5.6 предоставляет улучшенные возможности линейного масштабирования, позволяя полностью
Читать дальше →

Настройка сервера под Ruby on Rails на nginx + Phusion Passenger + MySQL

image

Создание и запуск проекта на Ruby on rails в девелопменте делается в несколько строк. Как настроить рабочий сервер в продакшене еще неделю назад я представлял себе довольно смутно. Но так уж сложилось, что мне пришлось этим заняться, и все оказалось не так уж плохо. В статье рассмотрим настройку рабочего сервера для Rails приложений с нуля.


Читать дальше →

Мониторинг mysql с помощью nagios и perl

Не так давно возникло у меня желание наглядно видеть использование сервера mysql, т.е. информацию об интенсивности запросов, поступающих к нему в каждый конкретный момент времени. Благо nagios и pnp4nagios уже были настроены и показывали красивые графики по использованию процессора и памяти. В коллекции плагинов nagios имелся check_mysql, но по сути все, что он делал, это определял доступность mysql, а вот информацию о запросах с его помощью не собрать. В результате я решил написать соответствующие скрипты сам с использованием языка perl 5.12.
Читать дальше →

Пример архитектуры, используемой на высоконагруженном видео портале

В этой статье мне немного хотелось бы рассказать про архитектуру, которую мы используем в нашей компании. Проект, над которым я работаю, является видео-порталом с большим количеством посещений в день (16 миллионнов уникальных пользователей). Ну вот, перейдет к архитектуре:

Читать дальше →

MySQL репликация от простого к сложному

Задача: Научится репликации, понимать что и зачем на простых примерах.

Репликация master-slave.

Вводные:
Есть два VM сервера ubuntu linux
Server1: IP 192.168.1.1
Server2: IP 192.168.1.2

Hа серверах установлен MySQL.
На сервере1 установлена база данных 'testdb' в базе есть несколько таблиц.
Пользователь testuser имеет полные права на базу test.
Вся работа ведется именно с сервером 1, база данных сервера 2 нужна как копия (схема master — slave)
Считается что вы знаете как работать с MySQL а именно как создавать пользователей, присваивать им права, создавать базы, бекапы.

Итак приступим.

Читать дальше →

Установка и настройка Apache, MySQL, PHP, Exim, Dovecot, Ruby on Rails и Redmine на CentOS 5.4

Установка и настройка Apache, MySQL, PHP, Exim, Dovecot, Ruby on Rails и Redmine на CentOS 5.4
Задача
Установка по ssh, иногда прибегая к помощи WinSCP as FAR Plugin следующего ПО на VDS:
  • CentOS 5.4 32bit (если у Вас x86_64, незабывайте делать поправку на архитектуру при установке rmp, в частности)
  • Apache 2.2.3
  • MySQL 5.1.53
  • PHP 5.3.3
  • Exim 4.72
  • Dovecot 1.0.7
  • Ruby 1.8.7
  • Rails 2.3.5
  • Redmine 1.0.4
Руководство получилось весьма обширным, в основном благодаря тому, что я старался осветить поставленные вопросы наиболее подробно. К тому же, не редко приводил тезисно (или в качестве ссылок) альтернативные варианты решения, которые не были выбраны мной в силу тех или иных причин, указанных по возможности. Описание пестрит ссылками/источниками, поскольку я старался максимально позволить читателю «владеть ситуацией», при необходимости обращаясь к этим источникам где могла быть предоставлена информация более полно и подробно.

Читать дальше →

Журналы (logs) в MySQL

В MySQL на данный момент существуют 4 вида журнала (лога) и при достаточно серьёзной работе с базами на MySQL необходимо за ними следить. Например, бинарный лог у нас за сутки набирает около гигабайта, а размер жёсткого диска на сервере ограничен и за ними надо следить. Однако следить следует не только за бинарным логом, так как логи (журналы) в MySQL могут принести немалую пользу.

Итак, какие логи ведёт MySQL? Это:
1. бинарный лог (binary log)
2. лог ошибок (error log)
3. лог медленный запросов (slow query log)
4. лог запросов (general query log)
5. лог репликаций (relay log)

Каждый из них по-своему полезен.

Читать дальше →

Плагин авторизации через Вконтакте, Yandex, Google, Facebook и другие Open ID

Привет, я начинающий программист и решил встроить в свой сайт плагин авторизации Loginza.

Задача данного скрипта очень проста: авторизация через социальные сети и других провайдеров Open ID
image
image

Для начала нам понадобятся классы для работы с сервисом, которые можно скачать здесь
— LoginzaAPI.class.php
— LoginzaUserProfile.class.php
— JSON.php

Читать дальше →

Архитектура простейшей CMS на PHP+MySQL

Предисловие


Очень лёгкая CMS может понадобиться в разных случаях. Например, если слабый сервер или нужно разместить очень много сайтов на одну железку с ограниченными ресурсами. К примеру, возьмём VDS начальной ценовой категории в $10/месяц. Можно туда поместить 100 сайтов на WordPress? Вряд ли! А можно поместить 100 сайтов на какой-нибудь лёгкой CMS'ке? Можно и даже больше! Данный пример ближе всего SEO'шникам.

Читать дальше →

Cнятие и установка дампа в MySQL (mysqldump) — tips & tricks

В теории


В теории все просто — MySQL из коробки имеет утилиту mysqldump, которая позволяет снять копию базы в виде набора SQL инструкций.

В реальности все гораздо хуже. Дело в том, что mysqldump криво работает с кодировками, отличными от Latin1. Тоесть экспортировать базу в UTF8 следуя официальной документации (man mysqldump), тоесть с указанием --default-character-set=utf8, и импортировать ее потом обратно — не представляется возможным. Кодировка будет битая в следствии «двойного преобразования», выполняемого утилитой mysqldump — пруфлинк

Собственно, по ссылке выше есть и рецеп. Суть его в том, что нужно экспортировать базу и затем импортировать ее в Latin1 вне зависимости от того, какая реально кодировка используется. При этом конечно нужно вычестить из *.sql файл инструкции SET NAMES…

Еще один важный момент, который следует учесть. Как правило мы снимаем дамп базы с именем A и пытаемся накатить его на базу с именем B. Соответственно, возможны коллизии из за того, что в созданном после экспорта файле в SQL запросах и командах СУБД будет присутствовать упоминание A. Нужно заменить все вхождения A на B, ниже под катом будет пример как это сделать средствами VIM.


Читать дальше →