Π Π½Π°Π²Π΅ΡΠ΅ΡΠΈΠ΅ΡΠΎ Π½Π° ΡΡΠ°ΡΡΠ° Π½Π° Π½ΠΎΠ²ΠΈΡ Π½Π°Π±ΠΎΡ ΠΊΡΡΡΒ Β ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π°ΠΌΠ΅ Ρ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅ΡΠΈΡ ΡΡΠ°ΡΠΈΠΈ Π·Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ Π² MySQL.
Π ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° ΡΡΠ°ΡΠΈΡ ΠΎΡ ΡΠ°Π·ΠΈ ΡΠ΅ΡΠΈΡ ΠΎΠ±ΡΡΠ΄ΠΈΡ ΠΌΠ΅, . ΠΠ½Π΅Ρ, ΠΎΡΠ½ΠΎΠ²Π°Π²Π°ΠΉΠΊΠΈ ΡΠ΅ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΈ Π·Π½Π°Π½ΠΈΡ, ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΡΠΎΡΠ°ΡΠΈΡΡΠ° Π½Π° Π³Π»Π°Π²Π½ΠΈΡΠ΅ ΠΊΠ»ΡΡΠΎΠ²Π΅.
Π ΠΎΡΠ°ΡΠΈΡΡΠ° Π½Π° Π³Π»Π°Π²Π½ΠΈΡΠ΅ ΠΊΠ»ΡΡΠΎΠ²Π΅ ΡΠ΅ ΡΡΡΡΠΎΠΈ Π² ΡΠΎΠ²Π°, ΡΠ΅ ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ° Π½ΠΎΠ² Π³Π»Π°Π²Π΅Π½ ΠΊΠ»ΡΡ ΠΈ Ρ Π½Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²ΠΎ ΡΠ΅ ΠΊΡΠΈΠΏΡΠΈΡΠ°Ρ ΠΊΠ»ΡΡΠΎΠ²Π΅ΡΠ΅ Π½Π° ΡΠ°Π±Π»ΠΈΡΠΈΡΠ΅ (ΠΊΠΎΠΈΡΠΎ ΡΠ° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈ Π² Π·Π°Π³Π»Π°Π²ΠΈΡΡΠ° Π½Π° ΡΠ°Π±Π»ΠΈΡΠΈΡΠ΅).
ΠΠ΅ΠΊΠ° ΡΠΈ ΠΏΡΠΈΠΏΠΎΠΌΠ½ΠΈΠΌ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π·Π°Π³Π»Π°Π²ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°:

ΠΡ ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° ΡΡΠ°ΡΠΈΡ Π·Π½Π°Π΅ΠΌ, ΡΠ΅ ΡΡΡΠ²ΡΡΡΡ ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ ΠΏΡΠΎΡΠΈΡΠ° Π·Π°Π³Π»Π°Π²ΠΈΡΡΠ° Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½ΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ ΠΈ Π·Π°ΠΏΠΎΠΌΠ½Ρ Π½Π°ΠΉ-Π³ΠΎΠ»ΡΠΌΠΎΡΠΎ KEY ID. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΡΡΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ Ρ KEYID = 3 ΠΈ Π΅Π΄Π½Π° ΡΠ°Π±Π»ΠΈΡΠ° Ρ KEYID = 4, ΡΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΈΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π½Π° ΠΊΠ»ΡΡΠ° ΡΠ΅ Π΅ ΡΠ°Π²Π΅Π½ Π½Π° 4. ΠΠ΅ΠΊΠ° Π½Π°ΡΠ΅ΡΠ΅ΠΌ ΡΠΎΠ²Π° KEY ID β MAX KEY ID.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠΈ ΡΠΎΡΠ°ΡΠΈΡΡΠ° Π½Π° Π³Π»Π°Π²Π½ΠΈΡ ΠΊΠ»ΡΡ
1. ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ ΠΈΠ·Π²ΡΡΡΠ²Π° ALTER INNODB MASTER KEY.
2. Π‘ΡΡΠ²ΡΡΡΡ Π·Π°ΠΏΠΈΡΠ²Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ Π½Π° ΠΊΠ»ΡΡΠΎΠ²Π΅ (keyring) Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π½ΠΎΠ² Π³Π»Π°Π²Π΅Π½ ΠΊΠ»ΡΡ Ρ UUID Π½Π° ΡΡΡΠ²ΡΡΠ° ΠΈ KEYID, ΡΠ°Π²Π΅Π½ Π½Π° ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ Ρ Π΅Π΄Π½ΠΎ MAXKEYID. ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π½Π° Π³Π»Π°Π²Π½ΠΈΡ ΠΊΠ»ΡΡ, ΡΠ°Π²Π΅Π½ Π½Π° INNODBKEY-UUID- (MAXKEYID + 1). ΠΡΠΈ ΡΡΠΏΠ΅ΡΠ½Π° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π½Π° Π³Π»Π°Π²Π½ΠΈΡ ΠΊΠ»ΡΡ, MAX KEY ID ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π° Ρ Π΅Π΄Π½ΠΎ (Ρ.Π΅. MAXKEYID = MAXKEYID + 1).
3. Π‘ΡΡΠ²ΡΡΡΡ ΠΏΡΠ΅Π³Π»Π΅ΠΆΠ΄Π° Π²ΡΠΈΡΠΊΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ, ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½ΠΈ Ρ Π³Π»Π°Π²Π½ΠΈΡ ΠΊΠ»ΡΡ, ΠΈ Π·Π° Π²ΡΡΠΊΠ° ΡΠ°Π±Π»ΠΈΡΠ°:
ΠΊΡΠΈΠΏΡΠΈΡΠ° ΠΊΠ»ΡΡΠ° Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Ρ Π½ΠΎΠ²ΠΈΡ Π³Π»Π°Π²Π΅Π½ ΠΊΠ»ΡΡ;
ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π½Π° ΠΊΠ»ΡΡΠ° Π½Π° Π½ΠΎΠ²ΠΈΡ MAXKEYID;
Π°ΠΊΠΎ UUID ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π° ΠΎΡ UUID Π½Π° ΡΡΡΠ²ΡΡΠ°, ΡΠΎ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π° UUID Π½Π° ΡΡΡΠ²ΡΡΠ°.
ΠΠ°ΠΊΡΠΎ Π·Π½Π°Π΅ΠΌ, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡΡ Π½Π° Π³Π»Π°Π²Π½ΠΈΡ ΠΊΠ»ΡΡ (Master Key ID), ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π·Π° Π΄Π΅ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°, Π΅ ΡΡΡΡΠ°Π²Π΅Π½ ΠΎΡ UUID ΠΈ KEY ID, ΠΏΡΠΎΡΠ΅ΡΠ΅Π½ΠΈ ΠΎΡ Π·Π°Π³Π»Π°Π²ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°. ΠΡΠΈΡΠΊΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠ°Π²ΠΈΠΌ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ°, Π΅ Π΄Π° ΠΎΠ±Π½ΠΎΠ²ΠΈΠΌ ΡΠ°Π·ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² Π·Π°Π³Π»Π°Π²ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΡΡΠ²ΡΡΡΡ Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π° ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈΡ Π³Π»Π°Π²Π΅Π½ ΠΊΠ»ΡΡ.
ΠΠΊΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΡΠ°Π±Π»ΠΈΡΠΈ, ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈ ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΌΠ΅ΡΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΈ ΠΊΠΎΠΏΠΈΡ, ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π³Π»Π°Π²Π½ΠΈ ΠΊΠ»ΡΡΠΎΠ²Π΅. ΠΡΠΈΡΠΊΠΈ ΡΠ΅Π·ΠΈ Π³Π»Π°Π²Π½ΠΈ ΠΊΠ»ΡΡΠΎΠ²Π΅ ΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈ ΠΎΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΡΠ²ΡΡΠ°. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π°Π±Π°Π²ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΡΡΠ²ΡΡΠ°, ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π°ΠΊΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡΡΠ²ΡΡΠ½ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π½Π° ΠΊΠ»ΡΡΠΎΠ²Π΅. Π‘ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠΎΡΠ°ΡΠΈΡ Π½Π° Π³Π»Π°Π²Π½ΠΈΡ ΠΊΠ»ΡΡ Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²ΠΎ ΡΠΈΡΡΠΎΠ²Π°ΠΌΠ΅ ΠΊΠ»ΡΡΠΎΠ²Π΅ΡΠ΅ Π½Π° ΡΠ°Π±Π»ΠΈΡΠΈΡΠ΅ Ρ Π΅Π΄ΠΈΠ½ Π³Π»Π°Π²Π΅Π½ ΠΊΠ»ΡΡ, ΡΡΡΠΈΡΡ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ. Π‘Π΅Π³Π° ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ ΡΡΡΠ²ΡΡΡΡ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈ ΡΠ°ΠΌΠΎ Π΅Π΄ΠΈΠ½ Π³Π»Π°Π²Π΅Π½ ΠΊΠ»ΡΡ.
Π Π°Π·Π±ΠΈΡΠ° ΡΠ΅, ΡΠΎΠ²Π° Π΅ ΡΠ°ΠΌΠΎ ΠΏΡΠΈΡΡΠ΅Π½ ΡΡΡΠ°Π½ΠΈΡΠ΅Π½ Π΅ΡΠ΅ΠΊΡ. ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ΅Π» Π½Π° ΡΠΎΡΠ°ΡΠΈΡΡΠ° Π½Π° Π³Π»Π°Π²Π½ΠΈΡΠ΅ ΠΊΠ»ΡΡΠΎΠ²Π΅ Π΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ Π½Π°ΡΠΈΡ ΡΡΡΠ²ΡΡ ΠΏΠΎ-ΡΠΈΠ³ΡΡΠ΅Π½. Π ΡΠ»ΡΡΠ°ΠΉ ΡΠ΅ Π³Π»Π°Π²Π½ΠΈΡΡ ΠΊΠ»ΡΡ Π΅ ΠΎΡΠΊΡΠ°Π΄Π½Π°Ρ ΠΏΠΎ Π½ΡΠΊΠ°ΠΊΡΠ² Π½Π°ΡΠΈΠ½ ΠΎΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡ Vault Server), ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°ΠΌΠ΅ Π½ΠΎΠ² Π³Π»Π°Π²Π΅Π½ ΠΊΠ»ΡΡ ΠΈ ΠΎΡΠ½ΠΎΠ²ΠΎ Π΄Π° ΡΠΈΡΡΠΎΠ²Π°ΠΌΠ΅ ΠΊΠ»ΡΡΠΎΠ²Π΅ΡΠ΅ Π½Π° ΡΠ°Π±Π»ΠΈΡΠΈΡΠ΅, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΠΎΡΠΊΡΠ°Π΄Π½Π°ΡΠΈΡ ΠΊΠ»ΡΡ Π½Π΅Π²Π°Π»ΠΈΠ΄Π΅Π½. ΠΠΈΠ΅ ΡΠΌΠ΅ Π² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ... ΠΏΠΎΡΡΠΈ.
Π ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° ΡΡΠ°ΡΠΈΡ Π³ΠΎΠ²ΠΎΡΠΈΡ Π·Π° ΡΠΎΠ²Π°, ΡΠ΅ ΡΠ»Π΅Π΄ ΠΊΡΠ°ΠΆΠ±Π° Π½Π° ΠΊΠ»ΡΡΠ° Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° ΡΡΠ΅ΡΠ° ΡΡΡΠ°Π½Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ. ΠΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠ΅, ΡΠ΅ ΠΈΠΌΠ° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π½Π°ΡΠΈΡ Π΄ΠΈΡΠΊ. Π ΡΠ»ΡΡΠ°ΠΉ Π½Π° ΠΊΡΠ°ΠΆΠ±Π° Π½Π° Π³Π»Π°Π²Π½ΠΈΡ ΠΊΠ»ΡΡ ΠΈ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΡΠΊΡΠ°Π΄Π½Π°ΡΠΈΡΡ Π³Π»Π°Π²Π΅Π½ ΠΊΠ»ΡΡ Π·Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠ»ΡΡΠ° Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½ΠΈ Π΄Π°Π½Π½ΠΈ. ΠΠ°ΠΊΡΠΎ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, ΡΠΎΡΠ°ΡΠΈΡΡΠ° Π½Π° Π³Π»Π°Π²Π½ΠΈΡ ΠΊΠ»ΡΡ Π² ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ Π½Π΅ ΠΏΠΎΠΌΠ°Π³Π°. ΠΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²ΠΎ ΡΠΈΡΡΠΎΠ²Π°ΠΌΠ΅ ΠΊΠ»ΡΡΠ° Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° Ρ Π½ΠΎΠ² Π³Π»Π°Π²Π΅Π½ ΠΊΠ»ΡΡ, Π½ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»Π½ΠΈΡΡ ΠΊΠ»ΡΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΡΠΈΡΡΠΎΠ²Π°Π½Π΅ / Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΎΡΡΠ°Π²Π° ΡΡΡΠΈΡΡ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ "Ρ Π°ΠΊΠ΅ΡΡΡ" ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ. ΠΠΎ-ΡΠ°Π½ΠΎ Π½Π°ΠΌΠ΅ΠΊΠ½Π°Ρ , ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΈΡΡΠΈΠ½ΡΠΊΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΡΠΈΡΡΠΎΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π±Π»ΠΈΡΠΈΡΠ΅, Π° Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΠΏΡΠΎΡΡΠΎΡΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΡΠΈΡΡΠΎΠ²Π°Π½Π΅ Π½Π° ΠΊΠ»ΡΡΠ° Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ°. Π’Π°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ΅ Π½Π°ΡΠΈΡΠ° ΠΏΠΎΡΠΎΡΠΈ Π½Π° ΡΠΈΡΡΠΎΠ²Π°Π½Π΅ (encryption threads). ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, ΠΊΡΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π²ΡΠ΅ ΠΎΡΠ΅ Π΅ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½Π°.
Π ΠΎΡΠ°ΡΠΈΡΡΠ° Π½Π° Π³Π»Π°Π²Π½ΠΈΡ ΠΊΠ»ΡΡ Π΅ ΠΏΠΎΠ»Π΅Π·Π½Π°, ΠΊΠΎΠ³Π°ΡΠΎ Π³Π»Π°Π²Π½ΠΈΡΡ ΠΊΠ»ΡΡ Π΅ ΠΎΡΠΊΡΠ°Π΄Π½Π°Ρ, Π½ΠΎ Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡΡ Π½ΡΠΌΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ° ΠΊΠ»ΡΡΠΎΠ²Π΅ΡΠ΅ Π½Π° ΡΠ°Π±Π»ΠΈΡΠΈΡΠ΅.
ΠΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΠΎΡΠ΅:
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
