बुधवार, 23 मई 2018

प्रॉक्सी MySQL :: HAproxy || ProxySQL और KeepAlived

तो जब आपके MySQL ट्रैफ़िक को रूट करने की बात आती है तो कई विकल्प मौजूद होते हैं। 

अब मैंने देखा है कि ग्राहकों के साथ हैरप्रैक्सी अधिक बार उपयोग किया जाता है, यह सेट अप करने के लिए काफी सीधे है। पेरोकोना में दिलचस्पी रखने वालों के लिए एक उदाहरण है:

व्यक्तिगत रूप से मुझे ProxySQL पसंद है। पेर्कोनिया के पास भी कुछ ब्लॉग हैं
पेर्कोन में प्रॉक्सीएसक्यूएल संस्करण भी उपलब्ध है

मैं सोच रहा था कि मैं कुछ उदाहरण लिखूंगा लेकिन कुल परकोना ने इसे सब कुछ समझाया है। मैं उन पदों से कुछ भी नहीं लेना चाहता हूं, इसके बजाय इंगित करता हूं कि उन यूआरएल के माध्यम से बहुत अच्छी जानकारी उपलब्ध है। तो जो पहले से लिखा गया है उसे फिर से लिखने की बजाय, मैं रुचि रखने वालों के लिए जानकारी का संग्रह तैयार करूंगा।

सबसे पहले तुलना करें और खुद को तय करें कि आपको क्या चाहिए और चाहिए। पाठ्यक्रम का निम्नलिखित लिंक ProxySQL की ओर पक्षपातपूर्ण होने जा रहा है लेकिन यह आपको विचार करने के लिए एक समग्र दायरा देता है।
यदि आपके पास मास्टर के लिए क्लस्टर या मास्टर है और आपको परवाह नहीं है कि कौन से सर्वर लिखते हैं बनाम पढ़ते हैं, बस जब तक आपके पास कनेक्शन हो;तो HAproxy आपके लिए एक सरल तेज़ सेट अप की संभावना है।

ProxySQL के साथ बोनस एक भारित फैशन, आसानी से यातायात को सॉर्ट करने की क्षमता है। तो आप लिख सकते हैं कि नोड 1 पर जाएं, और नोड 2 और नोड 3 से खींचें का चयन करें। इस पर दस्तावेज़ीकरण यहां पाया जा सकता है:
हां यह HAproxy के साथ किया जा सकता है लेकिन आपको तदनुसार आवेदन को निर्देश देना होगा।
यह आपके क्वेरी नियमों के आधार पर ProxySQL में संभाला जाता है।

अब यहां स्पष्ट प्रश्न: ठीक है तो आप ProxySQL को विफलता के एक बिंदु बनने से कैसे रोकते हैं?

आप निवेश कर सकते हैं एक मजबूत लोड बैलेंसर और इत्यादि आदि ... इस पर हार्डवेयर टॉस करें .... या इसे अपने आप को आसान बनाएं और ओपन सोर्स का समर्थन करें और KeepAlive डी का उपयोग करें। यह सेट अप करना बहुत आसान है और इसमें से सभी को फिर से दस्तावेज किया गया है:
यदि आपने कभी लुआ और mysql-proxy से निपटाया है, तो ProxySQL और Keepalived आपके लिए बहुत आसान होना चाहिए। यदि आप अभी भी इसे किसी कारण से चाहते हैं: https://launchpad.net/mysql-proxy

भले ही आप HAproxy, ProxySQL या किसी अन्य समाधान का चयन करते हैं, आपको यह सुनिश्चित करने की ज़रूरत है कि एक बार दूसरे के साथ विफलता के एक बिंदु को प्रतिस्थापित न करें और इसके लिए बनाए रखा जाए। यदि आप प्रॉक्सी का उपयोग कर रहे हैं तो ऐसा करने के लिए बहुत कम कारण नहीं है।

तो ProxySQL पर कुछ और चीजें।
  • यदि आप उन होस्ट्स को ट्रैक करते हैं जो आपकी रिपोर्टिंग या निगरानी के माध्यम से आपके डेटाबेस से कनेक्ट होते हैं, तो उन आईपीएस या होस्टनाम का एहसास हो रहा है जो अब प्रॉक्सी सर्वर होने जा रहे हैं।
  • फिर आपके पास पहले से ही MySQL में मौजूद सभी उपयोगकर्ताओं के बारे में क्या है? क्या आप उन्हें proxysql में माइग्रेट कर सकते हैं? हाँ तुम कर सकते हो। इसमें कुछ कदम उठाए जाते हैं लेकिन यह सक्षम है। यहां इसका एक उदाहरण दिया गया है:
  • सुनिश्चित करें कि आप मल्टी लेयर कॉन्फ़िगरेशन सिस्टम को समझते हैं। डिस्क पर अपनी जानकारी बचाओ!
  • ProxySQL MySQL डिफ़ॉल्ट पोर्ट 3306 पर चला सकता है
  • अब अपने अधिकतम_कनेक्शन को ध्यान में रखें। यदि आपके पास mysql में Max_connections 500 पर सेट है, तो यह मानक उपयोगकर्ताओं के लिए आपकी सीमा की सीमा है। ProxySQL के साथ अब आप सिस्टम भर में उपयोगकर्ताओं को फैला सकते हैं और अधिकतम प्रति नोड सेट कर सकते हैं। तो यह सुनिश्चित करने में सहायता के लिए कि आप 500 कनेक्शन हिट नहीं करते हैं, MySQL-max_connections को MySQL मान से थोड़ा कम सेट करें।
  • मॉनीटर मॉड्यूल और स्टेटस का लाभ उठाएं .. जानें कि आपके प्रॉक्सी और ट्रैफिक के साथ क्या चल रहा है।
  • यदि आपके आवेदन के लिए लागू हो तो क्वेरी कैशिंग का लाभ उठाएं।
http://anothermysqldba.blogspot.com/2018/05/proxy-mysql-haproxy-proxysql-keepalived.html

सोमवार, 19 मार्च 2018

MySQL 8.0.4 आरसी

MySQL 8.0.4 आरसी को अभी " पूर्व-सामान्य उपलब्धता ड्राफ्ट: 2018-03-19 " के रूप में जारी किया गया था। 

मैंने एक त्वरित तिरछी नज़र लेने का फैसला किया और यहां मेरे इंप्रेशन को नोट किया। इनमें से कुछ बहुत पुरानी खबर हैं क्योंकि इस रिलीज के बारे में थोड़ी देर के बारे में बात की गई है लेकिन मैंने अपने विचारों को वैसे भी जोड़ा।

पहली बात मैंने देखा कि अद्यतन किया गया mysql क्लाइंट का उपयोग करने का एक सरल मुद्दा था मेरे पुराने संस्करण अभी भी मेरे रास्ते में था जिसके परिणामस्वरूप

ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded
इतना आसान तय है और सुनिश्चित करें कि आप वैध अपडेट किए गए mysql क्लाइंट का उपयोग कर रहे हैं। बेशक अन्य विकल्प mysql_native_password पर प्रमाणीकरण प्लग-इन को बदलना पसंद करते हैं, लेकिन परेशान क्यों हैं, सुरक्षित विधि का उपयोग करें यह सुरक्षा के लिए बहुत अच्छी वृद्धि है, इसलिए इस संबंध में हैरान मत हो, अगर आपके पास इस अधिक सुरक्षित विधि का उपयोग करते हुए अपने कनेक्शन मिलते समय कुछ कनेक्शन समस्याएं हैं


Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 36
Server version: 8.0.4-rc-log

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

तो पहले बहुत ही शांत वृद्धि ...

mysql> show create table user\G
*************************** 1. row ***************************
तालिका: उपयोगकर्ता
तालिका बनाएँ: टैब बनाएँ `उपयोगकर्ता '(
`होस्ट` कक्ष (60) कॉललेट यूटीएफ 8_बीन नल डिफॉल्ट '',
`उपयोगकर्ता` चार (32) COLLATE utf8_bin नल डिफॉल्ट '',
`चयन करें_प्रार्थी` ('एन', 'वाई') वर्ण सेट करें utf8 नल डिफॉल्ट 'एन',
`Insert_priv` enum ('N', 'Y') वर्ण सेट UTF8 नहीं है, NULL DEFAULT 'N',
`Update_priv` enum ('N', 'Y') वर्ण सेट UTF8 नल डिफॉल्ट 'एन',
`Delete_priv` enum ('N', 'Y') वर्ण सेट करें utf8 नहीं है नल डिफॉल्ट 'एन',
`Create_priv` enum ('N', 'Y') वर्ण सेट यूटीएफ 8 नल डिफॉल्ट 'एन',
`ड्रॉप_परिव एन्म '(' एन ',' वाई ') वर्ण सेट यूटीएफ 8 नल डिफॉल्ट' एन ',
`पुनः लोड_प्रार्थी 'एन्यूम (' एन ',' वाई ') वर्ण सेट यूटीएफ 8 नल डिफॉल्ट एन',
'शटडाउन_प्रिट' एन्यूम ('एन', 'वाई') वर्ण सेट यूटीएफ 8 नल डिफॉल्ट एन ',
`Process_priv` enum ('N', 'Y') वर्ण सेट UTF8 नल डिफॉल्ट 'एन',
`File_priv` enum ('N', 'Y') वर्ण सेट UTF8 नल डिफॉल्ट 'एन',
`Grant_priv` enum ('N', 'Y') वर्ण सेट UTF8 नल डिफॉल्ट 'एन',
`संदर्भ_प्रावित` एन्यूम ('एन', 'वाई') वर्ण सेट यूटीएफ 8 नल डिफॉल्ट 'एन',
`इंडेक्स_परिव एन्म '(' एन ',' वाई ') टाइपकर्ता सेट यूटीएफ 8 नल डिफॉल्ट' एन '
`Alter_priv` enum ('N', 'Y') वर्ण सेट UTF8 नल डिफॉल्ट 'एन',
`Show_db_priv` enum ('N', 'Y') वर्ण सेट UTF8 नल डिफॉल्ट 'एन',
`सुपर_परिव 'एन्यूम (' एन ',' वाई ') वर्ण सेट यूटीएफ 8 नल डिफॉल्ट एन',
`Create_tmp_table_priv` enum ('N', 'Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`Lock_tables_priv` enum ('N', 'Y') टाइपकर्ता सेट अप utf8 नहीं है नल डिफॉल्ट 'एन',
`Execute_priv` enum ('N', 'Y') वर्ण सेट UTF8 नल डिफॉल्ट 'एन',
`Repl_slave_priv` enum ('N', 'Y') वर्ण सेट यूटीएफ 8 नल डिफॉल्ट 'एन',
`Repl_client_priv` enum ('N', 'Y') वर्ण सेट करें utf8 नहीं है, नल डिफॉल्ट 'एन',
`Create_view_priv` enum ('N', 'Y') वर्ण सेट UTF8 नल डिफॉल्ट 'एन',
`Show_view_priv` enum ('N', 'Y') वर्ण सेट यूटीएफ 8 नल डिफॉल्ट 'एन',
`Create_routine_priv` enum ('N', 'Y') वर्ण सेट यूटीएफ 8 नल डिफॉल्ट 'एन',
`Alter_routine_priv` enum ('N', 'Y') वर्ण सेट UTF8 नल डिफॉल्ट 'एन',
`Create_user_priv` enum ('N', 'Y') वर्ण सेट करें utf8 नहीं है नल डिफॉल्ट 'एन',
`Event_priv` enum ('N', 'Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
`ट्रिगर_प्रावित` एन्यूम ('एन', 'वाई') वर्ण सेट यूटीएफ 8 नल डिफॉल्ट एन ',
`Create_tablespace_priv` enum ('N', 'Y') वर्ण सेट UTF8 नल डिफॉल्ट 'एन',
`ssl_type` enum ('', 'ANY', 'X509', 'निर्दिष्ट') वर्ण सेट यूटीएफ 8 नल डिफॉल्ट '',
`ssl_cipher` ब्लॉब नहीं नल,
`x509_आईसीयूआरयूआर 'धधकते नल,
`x509_ विषयक 'बूँद नहीं शून्य,
`max_questions` int (11) अहस्ताक्षरित नहीं शून्य डिफ़ॉल्ट '0',
`max_updates` int (11) अहस्ताक्षरित नहीं नल डिफ़ॉल्ट '0',
`max_connections` int (11) अहस्ताक्षरित नहीं नल डिफ़ॉल्ट '0',
`max_user_connections` int (11) अहस्ताक्षरित नहीं नल डिफ़ॉल्ट '0',
`प्लगइन` चार (64) COLLATE utf8_bin नल डिफॉल्ट 'caching_sha2_password' नहीं,
`प्रमाणीकरण_स्ट्रिंग` पाठ COLLATE utf8_bin,
`पासवर्ड_अपेक्षित` एन्यूम ('एन', 'वाई') टाइपकर्ता सेट यूटीएफ 8 नल डिफॉल्ट 'एन',
`पासवर्ड_last_changed` टाइमस्टैम्प नाल डिफॉल्ट नल,
`पासवर्ड_लिफ़टाइम 'छोटा (5) अहस्ताक्षरित डिफॉल्ट नल,
`account_locked` enum ('एन', 'वाई') वर्ण सेट यूटीएफ 8 नल डिफॉल्ट एन ',
`Create_role_priv` enum ('N', 'Y') वर्ण सेट UTF8 नहीं है, NULL DEFAULT 'N',
`Drop_role_priv` enum ('N', 'Y') वर्ण सेट UTF8 नहीं है, NULL DEFAULT 'N',
`पासवर्ड_reuse_history` छोटा (5) अहस्ताक्षरित डिफॉल्ट नल,
`पासवर्ड_रेउज़_टाइम` छोटा (5) अहस्ताक्षरित डिफॉल्ट नल,
प्राथमिक कुंजी (`होस्ट ',` उपयोगकर्ता`)
) / *! 50100 टैबिलस्पेस `mysql` * / इंजन = InnoDB DEFAULT चार्सेट = utf8 COLLATE = utf8_bin STATS_PERSISTENT = 0 COMMENT = 'उपयोगकर्ता और वैश्विक विशेषाधिकार'
सेट में 1 पंक्ति (0.00 सेकंड)

हाँ यूजर टेबल InnoDB है और खुद की टेबलस्पेस है

नए डाटा डिक्शनरी के अतिरिक्त के साथ आप अब Information_schema परिवर्तनों को नोटिस करेंगे।
इसलिए एक सरल उदाहरण के रूप में स्तंभ तालिका ऐतिहासिक रूप से एक दृश्य नहीं रही है लेकिन अब कई अन्य लोगों के साथ बदल दिया गया है, जैसा कि आप प्रदान किए गए यूआरएल के माध्यम से देख सकते हैं।


mysql> show create table COLUMNS \G
*************************** 1. row ***************************
देखें: COLUMNS
दृश्य बनाएं: एल्गोरिथ्म बनाएं = अनुपयुक्त DEFINER = 'mysql.infoschema` @ `लोकलहोस्ट`

यह information_schema के साथ प्रदर्शन में मदद करने के लिए किया जाता है लेकिन जानकारी के लिए प्रति क्वेरी अस्थायी तालिका क्रिएशन को निकालता है।

प्रलेखन के अध्याय 14 इस पर गहराई से चला जाता है, नीचे दी गई यूआरएल आपको अधिक जानकारी प्राप्त करने में मदद करेगी और भावी ब्लॉग पोस्ट इस पर अधिक छू सकती हैं।
पहले वर्णित डेटा शब्दकोश तब भी परमाणु डेटा परिभाषा भाषा (डीडीएल) बयान या परमाणु डीडीएल की क्षमता की ओर जाता है


यदि आप एक नए MySQL 8.0 उदाहरण के लिए प्रतिकृति सेट करने से पहले अपने प्रश्नों की समीक्षा नहीं करते हैं, तो यह कुछ लेन-देन की संभावना है। मैं कहता हूं कि टेबल रखरखाव का प्रबंधन कैसे प्रभावित हो सकता है। यदि आप "यदि मौजूद हैं" के साथ साफ प्रश्न लिखते हैं तो यह एक बड़ी समस्या नहीं होगी। कुल मिलाकर यह अधिक लेनदेन आधारित सुविधा है जो आपके डेटा और रोलबैक विकल्पों की रक्षा करती है।


संसाधन प्रबंधन बहुत ही दिलचस्प दिखता है और मुझे इस पर ध्यान देने के लिए अधिक समय लेना होगा क्योंकि यह MySQL 8.0 के साथ एक नई सुविधा है। कुल मिलाकर आप समूह निर्दिष्ट कर सकते हैं और अब क्वेरी की प्राथमिकता निर्धारित नहीं करनी चाहिए लेकिन अपने समूह को यह परिभाषित करना चाहिए कि क्वेरी को किस प्रकार व्यवहार करना चाहिए और उसके लिए आवंटित संसाधन होना चाहिए।

mysql> select @@version;
+------------+
| @@ संस्करण |
+ ------------ +
| 5.7.16-लॉग |
+ ------------ +
सेट में 1 पंक्ति (0.00 सेकंड)

mysql> desc INFORMATION_SCHEMA.RESOURCE_GROUPS;
त्रुटि 110 9 (42 एस 02): सूचना_एसकेमा में अज्ञात तालिका 'RESOURCE_GROUPS'

mysql> @@ संस्करण का चयन करें;
+ -------------- +
| @@ संस्करण |
+ -------------- +
| 8.0.4-आरसी-लॉग |
+ -------------- +
सेट में 1 पंक्ति (0.00 सेकंड)

mysql> desc INFORMATION_SCHEMA.RESOURCE_GROUPS;
+ ------------------------ + ----------------------- + ------ + ----- + --------- + ------- +
| फील्ड | प्रकार | नल | कुंजी | डिफ़ॉल्ट | अतिरिक्त |
+ ------------------------ + ----------------------- + ------ + ----- + --------- + ------- +
| RESOURCE_GROUP_NAME | varchar (64) | नहीं | | नल | |
| RESOURCE_GROUP_TYPE | enum ('प्रणाली', 'उपयोगकर्ता') | नहीं | | नल | |
| RESOURCE_GROUP_ENABLED | टिनिंट (1) | नहीं | | नल | |
| VCPU_IDS | ब्लॉब | हां | | नल | |
| THREAD_PRIORITY | इंट (11) | नहीं | | नल | |
+ ------------------------ + ----------------------- + ------ + ----- + --------- + ------- +
सेट में 5 पंक्तियां (0.00 सेकंड)


अपने इनोडाबी बफर पूल कैश में अधिक जानकारी उस इंडेक्स के संबंध में है जो अब उपलब्ध है।

mysql> desc INFORMATION_SCHEMA.INNODB_CACHED_INDEXES ;
+----------------+---------------------+------+-----+---------+-------+
| फील्ड | प्रकार | नल | कुंजी | डिफ़ॉल्ट | अतिरिक्त |
+ ---------------- + --------------------- + ------ + --- - + --------- + ------- +
| SPACE_ID | int (11) अहस्ताक्षरित | नहीं | | | |
| INDEX_ID | बड़ी बात (21) अहस्ताक्षरित | नहीं | | | |
| N_CACHED_PAGES | बड़ी बात (21) अहस्ताक्षरित | नहीं | | | |
+ ---------------- + --------------------- + ------ + --- - + --------- + ------- +
सेट में 3 पंक्तियां (0.01 सेकंड)


यदि आप अनिश्चित हैं कि इनोडीबी बफर पूल को सेट करने के लिए, लॉग-सीज़ या फ्लश मेसेज, तो MySQL इन उपलब्ध स्मृति के आधार पर आपके लिए सेट करेगा।

innodb_dedicated_server

[mysqld]
innodb-dedicated-server=1

mysql> चुनें @@ innodb_dedicated_server;
+ --------------------------- +
| @@ innodb_dedicated_server |
+ --------------------------- +
| 1 |
+ --------------------------- +

इस सरल परीक्षण ने मेरे innodb_buffer_pool_size को 6 जीबी तक सेट किया है, उदाहरण के लिए जब डिफ़ॉल्ट 128MB है

कई JSON परिवर्धन और साथ ही नियमित अभिव्यक्ति परिवर्तन भी किए गए हैं। दोनों जो आशाजनक दिखते हैं

इस रिलीज के मुकाबले एकमात्र प्रतिकृति संवर्धन ही है जो अब कॉम्पैक्ट बाइनरी प्रारूप का उपयोग करते हुए जेएसओएन दस्तावेज़ों के आंशिक अद्यतनों के द्विआधारी लॉगिंग का समर्थन करता है।

हालांकि कुल मिलाकर कई विशेषताएं उपलब्ध हैं (आप यहां उनके बारे में सब कुछ पढ़ सकते हैं), जिनमें से एक (मैं चाहता था कि मेरा ग्राहक कल था) चैनल प्रति प्रतिकृति फाइलर्स है।
मेरे परीक्षण के उदाहरण में पहले से ही द्विआधारी लॉग सक्षम थे, लेकिन वे अब टेबल आधारित बनाम फ़ाइल आधारित मास्टर और गुलाम जानकारी के साथ डिफ़ॉल्ट रूप से चालू हैं (डिफ़ॉल्ट के आधार पर उस लेनदेन के बड़े प्रशंसक)

कुल मिलाकर यह ध्यान रखें कि यह इस रिलीज पर पहली नज़र है और उस पर बहुत उच्च स्तर के विचार, कई अन्य परिवर्तन मौजूद हैं। इस रिलीज के बारे में अन्य ब्लॉग पोस्ट्स के साथ-साथ मैनुअल और रिलीज नोट्स भी देखेंगे। निश्चित रूप से डाउनलोड और समीक्षा करें क्योंकि प्रशासन, सुरक्षा और नकल देखने के बिंदु के लिए यह बहुत आशाजनक है।

मंगलवार, 13 मार्च 2018

MySQL धोखा पत्र

तो पहले मैंने कुछ समय के रूप में महसूस किया है कि मुझे होना चाहिए। मैं अभी भी MySQL और सभी संबंधित फोर्कियों के साथ काम करने में बहुत व्यस्त हूं और ब्लॉग को बाहर करने में विफल रहा क्योंकि मुझे लगा कि मुझे चाहिए। इसलिए मैं उस पर काम करूंगा। 

अब कहा जा रहा है कि मैंने दूसरे दिन एक वेबसाइट को याद किया जिसे मैं प्यार करता था क्योंकि यह एक आम छठी पत्रक सूची थी। वाक्यविन्यास जो आप जानते हैं, आपको पता है कि आपको इसकी आवश्यकता है, लेकिन इसे 3 गुना जब तक यह सही नहीं है। जब यह सही में प्रवेश करता है, तो आप इसे चुस्त करते हुए देखते हैं, मैंने सोचा कि मैंने पहले ही लिखा है। 

इसलिए मुझे लगा कि सामान्य माइस्काइव की एक साधारण सूची क्यों नहीं है कि हम सब एक महीने में 50 बार टाइप करते हैं या हमें अपने हाथ की पीठ की तरह पता होना चाहिए, लेकिन भूल जाएं कि ग्राहक हमारे कंधे की तरफ देख रहा है। 
शुरुआत के लिए.. 
हम एक नया MySQL 5.7.6+ सर्वर सेट अप और लॉग इन करें .. 
हमें कुछ भी करने से पहले पासवर्ड बदलने की आवश्यकता है लेकिन यह बदल गया है उपयोगकर्ता सेट पास नहीं है 
हम यह जानना चाहते हैं कि पासवर्ड अभी भी कैसे पढ़ सकता है क्योंकि यह स्पष्ट पाठ में है। 

ALTER USER 
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass'; 
सेट पासवर्ड है 
SET PASSWORD FOR 'bob''@'localhost' = PASSWORD('cleartext password'); 

बाइनरी लॉग को साफ करें 
PURGE BINARY LOGS TO 'mysql-bin.010';
PURGE BINARY LOGS BEFORE '2008-04-02 00:00:00
PURGE BINARY LOGS BEFORE NOW() - interval 3 DAY;

MySQL डंप 
# COMPACT WILL REMOVE DROP STATEMENTS
mysqldump --events --master-data=2 --routines --triggers --compact --all-databases > db.sql
mysqldump --events --master-data=2 --routines --triggers --all-databases > NAME.sql
mysqldump --opt --routines --triggers dbname > dbname.sql
mysqldump --opt --routines --triggers --no-create-info joomla jforms > dataonly.sql 

एक पल के लिए विदेशी कुंजी बंद करें 
SET GLOBAL foreign_key_checks=0; 



अनुदान छोड़ें 
/usr/bin/mysqld_safe --defaults-file=/etc/mysql/my.cnf --skip-grant-tables
vi /etc/mysql/my.cnf
[mysqld]
skip-grant-tables


बिनलॉग समीक्षाएं 
--base64-output = DECODE-ROWS और --verbose 
mysqlbinlog --defaults-file=/home/anothermysqldba/.my.cnf --base64-output=DECODE-ROWS --verbose binlog.005862 > 005862.sql

MYSQL सुरक्षित क्लाइंट 
mysql_config_editor print --all
mysql_config_editor set --user=mysql --password --login-path=localhost --host=localhost
mysql --login-path=localhost -e 'SELECT NOW()';

विनिमय 
sudo swapoff -a
To set the new value to 10: echo 10 | sudo tee /proc/sys/vm/swappiness
sudo swapon -a 

यदि सूचना स्कीमा धीमा है 
set global innodb_stats_on_metadata=0; 

एडब्ल्यूएस वैरिएबल 
CALL mysql.rds_show_configuration;
> call mysql.rds_set_configuration('binlog retention hours', 24);
> call mysql.rds_set_configuration('slow_launch_time', 2);

पता लगाएं कि कोई स्तंभ नाम किस तालिका में है 
SELECT TABLE_SCHEMA , TABLE_NAME , COLUMN_NAME FROM information_schema.COLUMNS WHERE COLUMN_NAME = 'fieldname' ; 
क्लाइंट का कहना है कि यह टेबलए में है लेकिन उनके पास 50 डाटाबेस हैं..इस स्कीमा में टेबल ए 
SELECT TABLE_SCHEMA , TABLE_NAME FROM information_schema.TABLES WHERE TABLE_NAME = 'TableA' ; 

दास कर्मियों को समायोजित करें 
Select @@slave_parallel_workers;
Stop Slave; Set GLOBAL slave_parallel_workers=5; Start Slave;

MySQL मल्टी 
5.6>
To start both : mysqld_multi start 1,2
To check on status of both: mysqld_multi report 1,2
To check on status or other options you can use just one

5.7<
[mysqld1] BECOMES [mysqld@mysqld1]
systemctl start mysqld@mysqld1
systemctl start mysqld@mysqld2
systemctl start mysqld@mysqld3
systemctl start mysqld@mysqld4 
MySQL केवल सिस्टम तालिकाओं का नवीनीकरण 
mysql_upgrade --defaults-file=/home/ anothermysqldba /.my.cnf --upgrade-system-tables 

स्किप नोटिफिकेशन त्रुटि 
STOP SLAVE; SET GLOBAL sql_slave_skip_counter =1; START SLAVE; SELECT SLEEP(1); SHOW SLAVE STATUS\G 

शुक्रवार, 22 अप्रैल 2016

MySQL के साथ गणित

The Original post: http://anothermysqldba.blogspot.com/2016/04/math-with-mysql.html

मैंने सोचा कि मैं बहुत पहले इस पोस्ट ... ओह अच्छी तरह से ....

हम सभी जानते हैं कि गणित और सभी के जीवन की मूलभूत पहलू आम यदि परे नहीं दुनिया भर में इस्तेमाल भाषा है। MySQL, सभी डेटाबेस की तरह, गणित के कई पहलुओं के साथ मदद कर सकते हैं।

यहाँ कार्यों की एक सूची है: https://dev.mysql.com/doc/refman/5.6/en/mathematical-functions.html

यहाँ कुछ सरल उदाहरण आप शुरू कर रहे हैं।
  • द्विघात फॉर्मूला कुल्हाड़ी ^ 2 + bx + c = 0

# 2x^2 – 4x – 3 = 0.
SET @a= 1;
SET @b= 3;
SET @c= -4;
SET @XX = ( -(@b) - SQRT( POW(@b,2) -4 * @a * @c) / POW(@a,2) ) ;
SET @YY = ( -(@b) + SQRT( POW(@b,2) -4 * @a * @c) / POW(@a,2) ) ;
SET @XXX = MOD(@YY, @XX);

SELECT @XX / @XXX as X;
+------+
| X |
+------+
| -4 |
+------+
SELECT @YY / @XXX as X ;
+------+
| X |
+------+
| 1 |
+------+

  • पाइथागोरस प्रमेय (ज्यामिति 101 याद): एक ^ 2 + b ^ 2 = सी ^ 2

SET @A = 14;
SET @B = 48;
SELECT @C := SQRT(POW(@A,2) + POW(@B,2) );
+-------------------------------------+
| @C := SQRT(POW(@A,2) + POW(@B,2) ) |
+-------------------------------------+
| 50 |
+-------------------------------------+


तो यह है कि सी को हल करती है और निश्चित रूप से आप इस का उपयोग एक के लिए हल करने के लिए के रूप में अच्छी तरह से।

SELECT @A := SQRT(POW(@C,2) - POW(@B,2)) ;
+-----------------------------------+
| @A := SQRT(POW(@C,2) - POW(@B,2)) |
+-----------------------------------+
| 14 |
+-----------------------------------+


  • लघुगणक और अपनी पहचान को लॉग इन करें XY = लॉग इन करने के लिए लॉग इन x + y
http://www.businessinsider.com/the-17-equations-that-changed-the-world-2012-7#the-logarithm-and-its-identities-2


SET @X = 2;
SET @Y = 3;
SELECT concat(log(@X * @Y) ,' = ', log(@X) + log(@Y) ) as "logarithm and its identities" ;
+---------------------------------------+
| logarithm and its identities |
+---------------------------------------+
| 1.791759469228055 = 1.791759469228055 |
+---------------------------------------+

  • polyhedra के लिए यूलर सूत्र: एफ - ई + V = 2
http://www.businessinsider.com/the-17-equations-that-changed-the-world-2012-7#eulers-formula-for-polyhedra-6

SET @V = 4; # Vertices
SET @E = 6; # Edges
SET @F = 4; # Faces
SELECT @V - @E + @F as Tetrahedron;

SET @V = 8; # Vertices
SET @E = 12; # Edges
SET @F = 6; # Faces
SELECT @V - @E + @F as Hexahedron;

SET @V = 12; # Vertices
SET @E = 30; # Edges
SET @F = 20; # Faces
SELECT @V - @E + @F as Icosahedron;

SET @V = 12; # Vertices
SET @E = 30; # Edges
SET @F = 20; # Faces
SELECT @V - @E + @F as Icosahedron;

  • सापेक्षता ई के आइंस्टीन के सिद्धांत = एम सी ^ 2

SET @lbs = 190; # lbs
SET @lb2gram = 453.6; # 1 lbs = 453.6g
SET @lbstograms := @lbs * @lb2gram / 1;
SET @m := @lbstograms * 1 / 1000;
SET @c := POW(3.00 * POW(10,8), 2 );
SELECT @E := @m * @c ;
+----------------+
| @E := @m * @c |
+----------------+
| 7.75656e18 |
+----------------+

  • 1 = 0.9999 .....

SELECT SUM(.9/(9/10));
+----------------+
| SUM(.9/(9/10)) |
+----------------+
| 1.00000 |
+----------------+

शनिवार, 25 जुलाई 2015

MySQL के साथ त्वरित पासवर्ड पीढ़ी

Original post http://anothermysqldba.blogspot.com/2015/07/quick-password-generation-with-mysql.html

यहाँ MySQL का उपयोग कर एक पासवर्ड आपके आवेदन को उत्पन्न करने के लिए एक त्वरित और आसान तरीका है। 
यह प्रश्न एक ऊपरी और निचले मामले की लंबाई और मूल्यों में बेतरतीब ढंग से उत्पन्न पासवर्ड बनाएगा। 


SELECT CONCAT(UCASE(SUBSTRING( SUBSTRING(MD5(RAND()), FLOOR( 1 + (RAND() * 5)) , FLOOR( 8 + (RAND() * 15 )) ) , FLOOR( 1 + (RAND() * 4 )) , FLOOR( 4 + (RAND() * 12 )) )), 
SUBSTRING('!@#$%^&*', FLOOR( 1 + (RAND() * 4)) , FLOOR( 1 + (RAND() * 8)) ), 
SUBSTRING( SUBSTRING(MD5(RAND()), FLOOR( 1 + (RAND() * 5)) , FLOOR( 8 + (RAND() * 15 )) ) , 5)) as password \G 


तो दूसरी छमाही में यह एमडी 5 कि स्वचालित रूप से करता है क्योंकि शेष निचले मामले में है तो कुछ प्रतीकों कहते हैं जब लागू इस क्वेरी गतिशील पासवर्ड के 1 हिस्सा है और ऊपरी मामले में इसके लिए एक यादृच्छिक मान ले जाएगा। आप निश्चित रूप से आप पसंद करेंगे जो कुछ प्रतीकों को समायोजित कर सकते हैं। 

परिणामों का उदाहरण: 

CREATE TABLE `generated` ( 
`password` varchar(255) NOT NULL 
) ENGINE=InnoDB ; 

MariaDB [(none)]> INSERT INTO test.generated SELECT CONCAT(UCASE(SUBSTRING( SUBSTRING(MD5(RAND()), FLOOR( 1 + (RAND() * 5)) , FLOOR( 8 + (RAND() * 15 )) ) , FLOOR( 1 + (RAND() * 4 )) , FLOOR( 4 + (RAND() * 12 )) )), SUBSTRING('!@#$%^&*', FLOOR( 1 + (RAND() * 4)) , FLOOR( 1 + (RAND() * 8)) ),SUBSTRING( SUBSTRING(MD5(RAND()), FLOOR( 1 + (RAND() * 5)) , FLOOR( 8 + (RAND() * 15 )) ) , 5)) as password; 

MariaDB [(none)]> select * from test.generated; 
+-----------------------------------+ 
| password | 
+-----------------------------------+ 
| 7232E1D9$%^&*f7de22c1b14f15c8a6 | 
| DEE22B7F7#$%541adcdd1b8e2 | 
| 2C4BB81001@#$%^&d0d9a2126 | 
| 941D3B92D@#$%^a4b7be92 | 
| 1CF2563254FC@#a79bb5 | 
| 2AE86E7D6!@#$%^&*4ca03f2e8 | 
| 074DD8D3#$e70a1 | 
| B2DDC!@#$%^47a252f79 | 
| 3A6D0A#$%^&*01ce9278a2a | 
| E9FB4CD16E19!739db9faa1616505c | 
| 1ED7A2E1379B4!@#$%ebe60b | 
| E9B57D71DB1@#$%^e9a4f8c2e94bf3d35 | 
| C97982!@#$8b5c534653c06 | 
| DE8998057C8!@#$%^8977a807 | 
| 7C7172EB1AE5$%^&*79d2b27 | 
| B52CE71@#$%^&*4508 | 
| AB17714F!@#$%^&203ba4ff80f8a6 | 
| 558D@#$04087871e29ff54 | 
| 27A78E8EF#$%^b8cee8628d81593 | 
| 315F2EC4#ad9913ec0595c | 
+-----------------------------------+
 

रविवार, 28 जून 2015

फाइबोनैचि अनुक्रम प्रक्रिया

Original post: http://anothermysqldba.blogspot.com/2015/06/fibonacci-sequence-procedure.html

 मैं इस बारे में खेद तैनात बाद से अच्छी तरह से यह थोड़ी देर के लिए किया गया है। आज मैं टीवी शो फ्रिंज के reruns देख रहा था और वाल्टर फाइबोनैचि अनुक्रम संदर्भित जब मैं पक्ष इस बात के लिए MySQL के विकल्पों के साथ नज़र रखी हो गया। 

अब इस पद पहले से ही अस्तित्व में है: 

इसलिए मुझे लगता है कि पद संभाल लिया है और एक छोटे से इस पर विस्तार किया है, परिणाम है कि आप कॉल करते हैं और आप के बाद कर रहे हैं कि फाइबोनैचि अनुक्रम भीतर रेंज वापसी कर सकते हैं कि एक प्रक्रिया है। 

प्रक्रिया में नीचे है: 

delimiter // 
CREATE PROCEDURE `Fibonacci`(IN POS INT, IN RANG INT, IN LIMTED INT) 
BEGIN 
select FORMAT(Fibonacci,0) AS Fibonacci from ( 
select @f0 Fibonacci, @fn:=@f1+@f0, @f0:=@f1, @f1:=@fn 
from (select @f0:=0, @f1:=1, @fn:=1) x, 
information_schema.STATISTICS p limit LIMTED) y LIMIT POS, RANG; 
END// 
delimiter ; 


आप इस कॉल और जो कुछ मूल्यों के पास है और आप के बाद कर रहे पर्वतमाला कर सकते हैं। 

आप 5 वीं मूल्य चाहते हैं, तो अनुक्रम और अगले मूल्य में (0 से शुरू) 

> CALL Fibonacci(5,2,100); 
+-----------+ 
| Fibonacci | 
+-----------+ 
| 5 | 
| 8 | 
+-----------+ 


आप 30 वीं मूल्य चाहते हैं, तो अनुक्रम और अगले मूल्य में (0 से शुरू) 

> CALL Fibonacci(30,2,100); 
+-----------+ 
| Fibonacci | 
+-----------+ 
| 832,040 | 
| 1,346,269 | 
+-----------+ 


आप 150 वीं मूल्य चाहते हैं, तो अनुक्रम और अगले मूल्य में (0 से शुरू) 

> CALL Fibonacci(150,2,1000); 
+--------------------------------------------+ 
| Fibonacci | 
+--------------------------------------------+ 
| 9,969,216,677,189,305,000,000,000,000,000 | 
| 16,130,531,424,904,583,000,000,000,000,000 | 
+--------------------------------------------+ 


तो तुम यह विचार मिलता है। आप 2 बस प्रक्रिया कॉल में 2 मूल्य बदलने से भी अधिक चाहते हैं, तो अब आप भी परिणामों की रेंज का विस्तार कर सकते हैं। 

> CALL Fibonacci(0,10,100); 
+-----------+ 
| Fibonacci | 
+-----------+ 
| 0 | 
| 1 | 
| 1 | 
| 2 | 
| 3 | 
| 5 | 
| 8 | 
| 13 | 
| 21 | 
| 34 | 
+-----------+ 

> CALL Fibonacci(30,5,100); 
+-----------+ 
| Fibonacci | 
+-----------+ 
| 832,040 | 
| 1,346,269 | 
| 2,178,309 | 
| 3,524,578 | 
| 5,702,887 | 
+-----------+ 


वैसे भी, किसी के मूल पोस्ट करने के लिए जाना है क्वेरी के आधार के लिए यह उपयोगी और क्रेडिट पाता है उम्मीद है।