Мене по-хакали…

Близько тижня “Блог фрілансера”, а також інші мої сайти були не доступні.

А все через те, що сервак, на якому знаходяться мої сайти — хакнули 🙁

Продовжувати читання Мене по-хакали…

Doctrine ORM Index Unique

Постановка задачі: Створити Entity, і відповідно таблицю в Базі Даних, в якій будуть подвійні ключі (multiple).

Тобто таблиця в БД повинна бути в такому вигляді:

Продовжувати читання Doctrine ORM Index Unique

Налаштування нового сервера (VPS)

Я вже давно не користуюсь звичайними хостинговими тарифами. Зрозумів, що маючи навіть кілька сайтів – потрібно обзавестись своїм VPS.

Але час від часу трапляється так, що приходиться наново конфігурити сервер. Наприклад, коли щойно купив VPS і потрібно його настроїти.

Сьогодні вирішив поділитись тим списком команд, які необхідні для настройки і запуску віртуального сервера (vps).
На нашому сервері стоїть ubuntu 10.04 LTS.
Продовжувати читання Налаштування нового сервера (VPS)

Java & mySQL (в картинках) ч.5

Кілька годин потратив на підлючення до Бази Даних mySQL.
І нарешті законектився 🙂

Отже, розписую детальний мануал, як підключити Java до Бази Даних mySQL.
Продовжувати читання Java & mySQL (в картинках) ч.5

Дамп Бази Даних на мило

Прийшла пора автоматизувати створення дампів. А оскільки в мене параноя і я навіть не довіряю сервакам на яких тримаю проекти, то вирішено всі бекапи відправляти на мило.

Раніше я вже писав, як зробити бекап Бази Даних. Ось його і використаєм 🙂


Ставлю права на цей файл:


І вішаю це діло на cron:


В результаті: кожен день, в 5-й годині ночі робиться дамп бази my_database. Одна копія кладеться в папочку /home/sergunik/dumps/, а друга – мені на мило.
Бажано налаштувати на гуглі фільтри, щоб ці листи позначались окремими мітками і не перемішувались зі всіми листами.

P.S.: Як настроювати mutt (mail) мені впадло розказувати…

Дамп Бази Даних

Дампів бази ніколи не буває багато!

І в цьому я вкотре переконався.

На днях прийшлось систему переставляти на своєму ноуті. І тільки після того, як вже все було обнолено – я зрозумів що не задампив mysql. Шкода, так довго парсери працювали 🙁

Отже, переходимо на параноїдальний режим і будемо дампити все і завжди 🙂

Використовуєм команду mysqldump.

А щоб не вводити пароль кожного разу – то прописуємо його одразу в команді:

А щоб економити місце на своїй тачці (на серваку) – дамп запаковуєм в архів:

Якщо повішати цю команду на крон, то бажано прописати поточну дату дампа:

Нагадаю, що розпаковуємо такі архіви командою:

MySQL password reset

Трабла сталась з моїм паролем до мускуля.
Завжди було root/root, а сьогодні щось поломалось.

Отже рецепт скидання пароля до mysql:
1) зупиняємо мускул:

2) Запускаєм мускул в безпечному режимі:

3) запускаємо клієнта:

4) а тепер міняєм пароль:

5) і обнулюєм привілегії:

6) все. залишилось тільки включити мускул:

Кількість sql-запитів в скрипті

Коли проект росте – то разом з ним росте кількість sql-запитів на кожній сторінці (ну логічно, впринципі). А це в свою чергу приводить до деяких тормозів в проекті.

Інколи навіть бувають випадки коли в одному скрипті дублюється один і той же запит. Гавнокод, звичайно, але з ким не буває. Тому, щоб відловити такі випадки або щоб просто підрахувати кількість запитів до Бази Даних, я використовую такий підхід:

  1. Використовую самописну обгортку для mysql_query.
  2. На початку скрипта пишу
  3. В обгортку дописую
  4. А вкінці скрипта (в футері) виводжу самі запити
  5. І їх кількість

Цікаві інсерти в mysql

Приступимо одразу до прикладу.

Нехай у нас є таблиця юзерів, їхніх книжок, і їх кількість.


Маємо запис, що 13-й юзер має 5 книжок під номером 1001.

Результат:

А тепер, якщо ми простим інсертом додамо юзеру ще одну книжку, то получимо ще один рядок. А нам він нафіг не потрібен 🙂
Потрібно буде робити 2 запити: спочатку перевірити чи є в нього щось, а потім інсертити або апдейтити 🙁

Я пропоную інше рішення.
Продовжувати читання Цікаві інсерти в mysql