Apt-get का उपयोग करके मैं डेबियन में MySQL को कैसे अपग्रेड कर सकता हूं?


13

मैं टर्नकी लिनक्स वर्चुअल मशीन का उपयोग कर रहा हूं। वहां डेबियन का संस्करण स्पष्ट रूप से "व्हीजी" उन्नयन पथ पर है (यदि आप इसे कहते हैं)। मैं लिनक्स के साथ पूरी तरह से सहज नहीं हूं, जैसा कि आप देख सकते हैं।

मुझे कुछ नई सुविधाएँ चाहिए जो MySQL 5.6 प्रदान करती हैं, जबकि मेरी वर्तमान स्थापना MySQL 5.5.35 है। मैं नवीनतम संस्करण (इस पोस्टिंग के रूप में 5.6.17) या कम से कम 5.6.x प्राप्त करना चाहूंगा।

मैं कोशिश की है apt-get update, apt-get upgrade, apt-get dist-upgrade। ये सफलतापूर्वक चीजों का एक गुच्छा अद्यतन करते हैं, लेकिन कोई भी MySQL नहीं था। मैंने कोशिश की apt-get upgrade mysql-server, जो कहता है कि मेरे पास पहले से ही नवीनतम संस्करण है।

वेब पर एक डेबियन व्हीज़ी पैकेज रिपॉजिटरी सूची MySQL 5.5 को दिखाती है और कुछ नहीं, जब मुझे 5.6 की आवश्यकता होती है। मैंने तब "बैकपोर्ट्स" के बारे में कुछ पढ़ा, जो लगता है कि यह मुझे उन चीजों को प्राप्त करने में सक्षम हो सकता है जो मेरे विशेष डेबियन के पास अभी तक नहीं हैं - लेकिन मैं इसे काम करने के लिए प्रतीत नहीं कर सकता। इसमें लाइनों को जोड़ने की आवश्यकता है /etc/apt/sources.list.d/sources.list। जब मैं ऐसा करने की कोशिश करता हूं, तब दौड़ता apt-get updateहूं, मुझे 404 त्रुटियां होती हैं।

मैंने कई अन्य मार्गों की भी कोशिश की है, एक वेनिला MySQL डाउनलोड को संकलित किया जा रहा है, जिसे मैं बुरी तरह विफल रहा और फिर से कोशिश नहीं करूंगा।

मैं सकारात्मक रूप से चकित हूं कि यह कैसे किया जाता है। अधिकांश URL जिन मंचों / ब्लॉगों पर सूचीबद्ध हैं apt-get, और यहां तक ​​कि wgetउनके पोस्ट किए जाने के तुरंत बाद मरने लगते हैं, इसलिए मैं यह नहीं समझ सकता कि कोई भी सही जानकारी खोजने के बारे में कैसे जाता है। मैं दो दिनों के लिए सीधे यह करने की कोशिश कर रहा हूं और कहीं भी नहीं मिल सकता।

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


परीक्षण / अस्थिर / प्रयोगात्मक से एक बैकपोर्ट करें। देखें कि डेबियन द्वारा प्रदान किए गए सॉफ़्टवेयर की तुलना में मैं हाल ही के संस्करण कैसे स्थापित कर सकता हूं? । बेहतर है, PostgreSQL का उपयोग करें, जिसमें पहले से ही बैकपोर्ट हैं। आप लिखते हैं "इसके लिए /etc/apt/source.list.d/sources.list पर लाइनें जोड़ने की आवश्यकता होती है। जब मैं ऐसा करने की कोशिश करता हूं, तो apt-get update चल रहा है, मुझे 404 त्रुटियां मिलती हैं।" यदि आप मदद चाहते हैं, तो आपको इसके बारे में अधिक विवरण जोड़ना होगा।
फहीम मीठा

@faheemMitha जिज्ञासा से बाहर, आप उन पोस्टग्रैक्कल बैकपोर्ट्स को कहां पाएंगे? मुझे नए संस्करण और slonyक्षमताओं की आवश्यकता है और मैं 9.1 की तुलना में नया नहीं पा सका, जिसमें कमी है।
शादुर

@ बहादुर: बस "पोस्टग्रैस्कल डेबियन बैकपोर्ट्स" की खोज करें। मुझे लगता है कि आप जो चाहते हैं, वह postgresql.org/download/linux/debian है । अक्सर आप backports.debian.org से बैकपोर्ट प्राप्त कर सकते हैं, लेकिन ऐसा लगता है कि वर्तमान में वे वहां से उपलब्ध नहीं हैं।
फहीम मीठा

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

@equazcion मेरी सिफारिश एक DIY समाधान है। परीक्षण (या अस्थिर या प्रयोगात्मक) से डेबियन स्रोतों को प्राप्त करें, और उन्हें अपने स्वयं के डेबियन पैकेजों में पुनर्निर्माण करें। यह वास्तव में इतना कठिन नहीं है, और MySQL निर्भरता को हल करने के लिए कठिन होने की संभावना नहीं है। मैं उस उत्तर में मूल चरणों की व्याख्या करता हूं जिससे मैं जुड़ा हुआ हूं। क्या आपने इसे देखा?
फहीम मीठा

जवाबों:


4

मट्ठा पर प्रयोगात्मक से प्रयोगात्मक 5.6 MySQL स्रोतों का पुनर्निर्माण करना तुच्छ पर आसान सीमा है। हालाँकि, आपको बहुत सारे डिस्क स्थान की आवश्यकता होगी; बिल्ड पूर्ण होने के बाद, बिल्ड निर्देशिका 5.2 GB का उपयोग कर रहा था। इसके अलावा, इसे बनाने में कुछ समय लगता है, और अविश्वसनीय संख्या में परीक्षण चलते हैं। मैं इसे समय पर परेशान नहीं करता, लेकिन कुछ घंटों की अनुमति देता हूं। परीक्षणों को अक्षम करना संभव है, लेकिन मेरा सुझाव है कि उन्हें चलाने दें - जब तक वे पास नहीं होते तब तक यह हानिरहित है। उन्होंने मेरी मशीन पर काम किया। अच्छी खबर यह है कि मैं उपद्रव के बिना इसे बनाने और स्थापित करने में सक्षम था। मैंने निम्नलिखित मूल परीक्षण चलाया।

faheem@orwell:~$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 50
Server version: 5.6.16-1~exp1 (Debian)

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

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

इसलिए, मैं कम से कम सर्वर से जुड़ सकता हूं। यहाँ वही है जो संकुल संस्थापित दिखता है:

$ dpkg -l | grep mysql

ii  libdbd-mysql-perl                     4.021-1+b1              amd64                   Perl5 database interface to the MySQL database
ii  libmysqlclient18:amd64                5.5.35+dfsg-0+wheezy1   amd64                   MySQL database client library
ii  libqt4-sql-mysql:amd64                4:4.8.2+dfsg-11         amd64                   Qt 4 MySQL database driver
ii  mysql-client-5.6                      5.6.16-1~exp1           amd64                   MySQL database client binaries
ii  mysql-client-core-5.6                 5.6.16-1~exp1           amd64                   MySQL database core client binaries
ii  mysql-common                          5.5.35+dfsg-0+wheezy1   all                     MySQL database common files, e.g. /etc/mysql/my.cnf
ii  mysql-common-5.6                      5.6.16-1~exp1           all                     MySQL 5.6 specific common files, e.g. /etc/mysql/conf.d/my-5.6.cnf
ii  mysql-server-5.6                      5.6.16-1~exp1           amd64                   MySQL database server binaries and system database setup
ii  mysql-server-core-5.6                 5.6.16-1~exp1           amd64                   MySQL database server binaries
ii  python-mysqldb                        1.2.3-2                 amd64                   Python interface to MySQL

यहाँ कदमों का टूटना है।

  1. यदि आपके पास कोई मट्ठा MySQL 5.5 पैकेज स्थापित है, तो उन्हें हटा दें, वे बाद में केवल परेशानी का कारण बनेंगे। यदि कोई पैकेज है जो उन पर निर्भर करता है, तो उन्हें भी जाना होगा।
  2. सबसे पहले, स्रोतों को प्राप्त करें। आपको निम्नलिखित (या समान, अपने पसंदीदा सर्वर के लिए समायोजित) जोड़ने की आवश्यकता है /etc/apt/sources.list:

    deb-src http://debian.lcs.mit.edu/debian/ experimental main non-free contrib
    
  3. निम्नलिखित को भी जोड़ें /etc/apt/preferences

    Package: *
    Pin: release a=experimental
    Pin-Priority: 1
    
  4. फिर भागो

    apt-get update
    
  5. फिर भागो

    apt-get source mysql-5.6
    

    कुछ उपयुक्त निर्देशिका में। मैं आमतौर पर में एक निर्देशिका बनाने /usr/local/src,
    इस मामले में, कहते हैं /usr/local/src/mysql

  6. में फिर सीडी /usr/local/src/mysql

  7. Daud

    sudo apt-get build-dep mysql-5.6
    

    मेरी मशीन पर इसने कुछ पैकेजों को स्थापित किया।

  8. निर्माण के लिए कुछ बुनियादी पैकेज स्थापित करें।

    apt-get install build-essential devscripts fakeroot
    

    तब परिणामी निर्देशिका निर्देशिका में सीडी /usr/local/src/mysql/mysql-5.6- 5.6.16और भागो

    debuild -uc -us
    

    इसके निर्माण में थोड़ा समय लगेगा। कुछ मामलों
    में संस्करण संख्या को बढ़ाना एक अच्छा विचार है , लेकिन यह वास्तव में यहाँ आवश्यक नहीं है। के रूप में यह किसी भी अन्य की संभावना नहीं है MySQL 5.6 पैकेज wheezy में अपना रास्ता बना देगा।

    यदि आप परीक्षण नहीं चलाना चाहते हैं, तो आप इसके बजाय उपयोग कर सकते हैं

    DEB_BUILD_OPTIONS="nocheck" debuild -uc -us
    
  9. अब आपको libdbd-mysql-perl स्थापित करना चाहिए, जो कि mysql संकुल की रनटाइम निर्भरता है।

     apt-get install libdbd-mysql-perl
    
  10. फिर एक स्तर तक सीडी /usr/local/src/mysql। वहां कुछ डिबेट पैकेज होने चाहिए। आप कम से कम स्थापित करना चाहते हैं

     mysql-client-core-5.6_5.6.16-1~exp1_amd64.deb         
     mysql-common-5.6_5.6.16-1~exp1_all.deb           
     mysql-server-5.6_5.6.16-1~exp1_amd64.deb
     mysql-client-5.6_5.6.16-1~exp1_amd64.deb  
     mysql-server-core-5.6_5.6.16-1~exp1_amd64.deb
    

    यह चल कर उदाहरण के लिए किया जा सकता है:

     dpkg -i mysql-client-core-5.6_5.6.16-1~exp1_amd64.deb         
     mysql-common-5.6_5.6.16-1~exp1_all.deb           
     mysql-server-5.6_5.6.16-1~exp1_amd64.deb
     mysql-client-5.6_5.6.16-1~exp1_amd64.deb  
     mysql-server-core-5.6_5.6.16-1~exp1_amd64.deb
    

सबसे पहले, इसके लिए धन्यवाद, और आपके द्वारा डाले जा रहे सभी प्रयास। यह चरण 8 पर विफल रहा। मुझे लगता है कि ये / डेबियन / पथ नहीं हैं: dpkg-buildpackage: host architecture amd64 fakeroot debian/rules clean Can't exec "fakeroot": No such file or directory at /usr/bin/dpkg-buildpackage line 510. dpkg-buildpackage: error: fakeroot debian/rules clean failed with unknown exit code -1 debuild: fatal error at line 1357: dpkg-buildpackage -rfakeroot -D -us -uc failed मैं टर्नकी लिनक्स में ऐसा कर रहा हूं जो मुझे लगता है कि एलएएमपी का उपयोग करता है, अगर वह मदद करता है।
बराबरी

@equazcion आपके पास फ़ेकरूट स्थापित नहीं हो सकता है। apt-get install fakeroot
फहीम मीठा

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

@equazcion के अनुसार dev.mysql.com/doc/refman/5.6/en/… के साथ आपको बस डंप करने की आवश्यकता है mysqldumpऔर फिर डंप फ़ाइल को पुनः लोड करें। अपने डेटाबेस के रूप में अच्छी तरह से, वापस।
फहीम मीठा

सभी चरणों को फिर से किए बिना इसे निस्तारण करने का प्रबंधन, और डेटाबेस को फिर से आयात करने की आवश्यकता नहीं थी - वे पहले से ही वहां थे। किसी के लिए भी, मुझे करना था apt-get remove mysql-serverऔर अंतिम चरण से पहले apt-get remove mysql-clientभी करना था apt-get install libterm-readkey-perl। इसके अलावा, mysql-server-coreअंतिम चरण में स्थापित पहले से पहले किया जाना था mysql-server। अब मैं आधिकारिक तौर पर MySQL 5.6.16 चला रहा हूं और सफलतापूर्वक पूर्ण-पाठ InnoDB खोज अनुक्रमणिका का परीक्षण कर चुका हूं (इस कारण मुझे इसकी आवश्यकता थी)! धन्यवाद, फहीम मीठा। आपने मेरी पवित्रता को बचाया।
इक्वैशनियन

6

वर्तमान में सबसे अच्छा विकल्प आधिकारिक MySQL APT रेपो का उपयोग करना है जो apt-get upgradeस्थापना की अनुमति देता है।


यह शायद सबसे अच्छा समाधान है क्योंकि इसे संकलक स्थापित करने की आवश्यकता नहीं है। अधिक मूर्खतापूर्ण सबूत :)
क्रिस्टोफर शुल्त्स

यह समाधान मेरे लिए काम करता है। इंस्टॉल करने के बाद, mysql सर्वर संस्करण का चयन करें और अपग्रेड करें apt-get upgrade, फिर मुझे करना है apt-get upgrade mysql-server, और 5.5 से 5.7 तक mysql का आसान अपग्रेड करना है। उन्नयन के बाद आपको फिर से कॉन्फ़िगर करने और निष्पादित करने की आवश्यकता है:mysql_upgrade -u root
fermin

1

सभी परीक्षण मज़ा है।

  1. .apt-get स्थापित करें libaio1
  2. groupadd mysql
  3. useradd -r -g mysql mysql
  4. wget -O mysql-5.6.16-debian6.0-x86_64.deb
  5. http://downloads.mysql.com/archives/mysql-5.6/mysql-5.6.16-debian6.0-x86_64.deb
  6. dpkg -i mysql-5.6.16-debian6.0-x86_64.deb
  7. सीडी / यूएसआर / स्थानीय
  8. ln -s /opt/mysql/server-5.6 mysql
  9. सीडी mysql
  10. स्क्रिप्ट / mysql_install_db --user = mysql
  11. chown -R रूट।
  12. chown -R mysql data
  13. cp support-files / mysql.server /etc/init.d/mysql
  14. mkdir -p /etc/mysql/conf.d/
  15. cp my.cnf / etc / mysql /
  16. इको $ 'शामिल करें
  17. सेवा mysql प्रारंभ
  18. ./bin/mysql_secure_installation

: यह यहाँ तक ठीक चल रहा है (खेद गंदगी के लिए, मैं यहाँ पंक्ति विराम सम्मिलित करने के लिए कैसे पता नहीं है) लग रहा था root@lamp local/mysql# update-rc.d mysql-5.7 defaults: update-rc.d: using dependency based boot sequencing update-rc.d: error: unable to read /etc/init.d/mysql-5.7 root@lamp local/mysql# service mysql start: Starting MySQL [FAIL......[....] The server quit without updating PID file (/opt/mysql/server-5.6/data/lamp.pid). ... failed!
equazcion

/etc/init.d/mysql प्रारंभ के साथ प्रयास करें या /etc/init.d/mys पर टैब-टैब दबाने और इसे शुरू करने का प्रयास करें
सुरक्षा जानवर

@equazcion बधाई हो, अब आपको पता चला है कि डेबियन को कभी-कभी एक नए संस्करण के लिए आधिकारिक पैकेज के साथ आने में थोड़ा समय लगता है।
शादुर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.