Блог очередного разработчика

Sanasol

MySQL utf8 Incorrect string value

How to fix “Incorrect string value” errors?
Mysql support only 3 bytes in «basic» utf8.
So in case of use some new characters like emoji it gives Incorrect string value error.

To fix this error you need change encoding utf8 to utf8bm4.

Отказоустойчивость use case

Схема серверов

VPS #1 — Франция

  • nginx+php
  • mysql-1
  • haproxy

VPS #2 — Канада

  • nginx+php
  • haproxy

VPS #3 — Нидерланды

  • nginx+php
  • mysql-2
  • haproxy

mysql — master-master репликация.

haproxy — балансирует запросы на два mysql мастера.

haproxy.cfg

На каждый сервер идёт свой поддомен.
Чтобы завалить сервис необходимо положить как минимум 2 хоста из 3.
Для этого надо знать какие хосты держат mysql сервера.
В противном случае класть придётся все хосты, дабы вывести из строя сервис.

Работает 🙂

Eloquent query logging outside Laravel

Class db does not exist eloquent

A facade root has not been set

and other terrible errors.

This post for those who like me using Eloquent outside Laravel.
With config like this:

Sometime need to log queries or just count it.
Almost all google results show code like this:

But outside Laravel you will get errors written above.

I spent some time to get it work.
And now i got solution 😀

To get work query logs outside Laravel use this 🙂

История о том как одним запросом весь сервер занять

И так почему же важно указывать правильный тип столбца в структуре таблицы
Наглядный пример почему не надо делать столбцы (varchar), особенно если этот столбец задуман как (int)eger

describe с колонкой varchar
describe с колонкой varchar

describe с колонкой integer
describe с колонкой integer

мунин до и после исправления
Изменение типа столбца в одной таблице

PMA 4.1.0 Recaptcha fix