16.04 আপগ্রেড মাইএসকিএল-সার্ভার ভেঙেছে


127

আমার সামগ্রিক আপগ্রেড ভাল হয়েছে, তবে আমি মাইএসকিএল-সার্ভার নিজেই ইনস্টল করতে সক্ষম না হওয়ায় একটি সমালোচনামূলকভাবে বিলম্বিত সমস্যাটি থেকে যায় এবং আমি যা চেষ্টা করছি তার কিছুই এটি কাজ করে না।

এটি ইনস্টল / পুনরায় ইনস্টল করার চেষ্টা করার সময় আমি এই ত্রুটিটি দেখছি:

Setting up mysql-server-5.7 (5.7.11-0ubuntu6) ...
Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: error processing package mysql-server-5.7 (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of mysql-server:
 mysql-server depends on mysql-server-5.7; however:
  Package mysql-server-5.7 is not configured yet.

dpkg: error processing package mysql-server (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                   Processing triggers for systemd (229-4ubuntu4) ...
Processing triggers for ureadahead (0.100.0-19) ...
Errors were encountered while processing:
 mysql-server-5.7
 mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

নির্ভরতা (?) এর কারণে মারিয়াডিবি ইনস্টল করার চেষ্টা করার পরেও আমি এটি সম্পূর্ণরূপে অপসারণ করার চেষ্টা করেছি। এটিকে ঠিক করতে আমি কী করতে পারি তার কোনও পরামর্শই সবচেয়ে স্বাগত।

সম্পাদনা: দেখে মনে হচ্ছে আমি একা নই: https://bugs.launchpad.net/ubuntu/+source/mysql-5.7/+bug/1573279


আমার এখানেও একই সমস্যা আছে
কার্নেলপ্যানিক

1
Phpmyadmin আনইনস্টল করতে হয়েছিল, যা কোনওভাবে নির্ভরতার সমস্যা তৈরি করেছিল। পুনরায় ইনস্টল করার পরে, সবকিছু আবার ঠিকঠাক চলছে।
হিনরিচ

1
উবুন্টু ১৪ থেকে ১ 16 থেকে ডু
মার্কো মার্শালা

1
@ মার্কোমারসালা আমি জানি না যে আমরা বলতে পারি যে উবুন্টু 14 থেকে 16 আপগ্রেড করার পরে মাইএসকিউএলটি ভেঙে যাওয়ার আশা করা হয়েছিল, যদিও আমি মনে করি এটি আপনার দৃষ্টিভঙ্গির উপর নির্ভর করে। গড় ব্যবহারকারীর কাছে এটি অবশ্যই মাইএসকিউএল এর মতো একটি এলটিএস আপগ্রেড ব্রেক বলে আশা করা যায় না। এটি অবাক করার বিষয় যা পরীক্ষার সময় ধরা পড়েনি।
দিগ্র্যাম্লিন

অ্যাপ্লিকেশন পিএইচপিএমইডমিন - পুনরায় ইনস্টল করার পরে মাইএসকিএল স্পর্শ করার প্রয়োজন নেই সাথে উপরেরটি ঠিক করে ... ফিগারে যান
অ্যান্ডি

উত্তর:


119

@ অ্যান্ড্রু-বেরম্যান পোস্ট করা নির্দেশাবলী সঠিক পথে রয়েছে, যদিও সেগুলি আমার কাছে বেশ পরিষ্কার নয় এবং প্রয়োজনীয়তার চেয়ে আরও বেশি সুপারিশ করে বলে মনে হচ্ছে। আমি উপরের উত্তরটি এবং বাগ থ্রেডের একটি সহায়ক পোস্ট একসাথে পাইস করেছি।

এটিকে সংশোধন করতে আমি এই পদক্ষেপ নিয়েছি:

  1. আপনার ব্যাক আপ my.cnf fileমধ্যে /etc/mysqlএবং অপসারণ বা এটি নামান্তর

    sudo mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak
    
  2. /etc/mysql/mysql.conf.d/ব্যবহার করে ফোল্ডারটি সরান

    sudo rm -r /etc/mysql/mysql.conf.d/
    
  3. আপনার my.cnfঅন্য কোথাও স্ট্যাশড ফাইল নেই (যা আমি আমার ঘরের দির!) বা /etc/alternatives/my.cnfব্যবহারে নেই তা যাচাই করুন

    sudo find / -name my.cnf
    
  4. /etc/mysql/debian.cnfফাইলগুলি ব্যাকআপ এবং সরিয়ে দিন (প্রয়োজনে নিশ্চিত নয় তবে কেবল ক্ষেত্রে)

    sudo mv /etc/mysql/debian.cnf /etc/mysql/debian.cnf.bak
    sudo apt purge mysql-server mysql-server-5.7 mysql-server-core-5.7
    sudo apt install mysql-server
    
  5. যদি আপনার সিসলগ "মাইকিকিএলডি: '/etc/mysql/conf.d/' এর dir পড়তে পারে না" এর মতো একটি ত্রুটি দেখায় একটি প্রতীকী লিঙ্ক তৈরি করুন:

    sudo ln -s /etc/mysql/mysql.conf.d /etc/mysql/conf.d
    

    তারপরে পরিষেবাটি দিয়ে শুরু করতে সক্ষম হওয়া উচিত sudo service mysql start

এটি কাজ করে!


17
এই সমস্ত অপারেশন করার পরে (আমি এটি আগেও করেছি) আমার এখনও ত্রুটি সম্পর্কিত সমস্যাগুলি রয়েছে ...
সেরেজ

5
আপনাকে প্রতিটি মাই সিএনএফ। * কে / ইত্যাদি / মাইএসকিএল ডিরেক্টরি থেকে মুছে ফেলতে হবে। My.cnf.backup, my.cnf.fallback দেখুন এবং my.cnf.migrated - এই ফাইলগুলির সব খুব অপসারণ করা আছে (প্রথম ব্যাকআপ!)
hitzi

8
@ সার্জিআইপি sudo find / -name "my.cnf"হয়ত কাজে লাগবে।
তারকাবায়াম্রেনবোলাবগুলি

1
mysql-server-core- হওয়া উচিত mysql-server-core-5.7। অন্যথায় মোহন মত কাজ করে। ধন্যবাদ!
ডেভিড টেই

1
+1 টি। তুমি আমার দিনটিকে মধুর করে দিলে! সকাল-সন্ধ্যাও! আমি আটকে গেলাম।
ম্যাক্স ইউদিন

56

আজ আমি একই সমস্যা পেয়েছি, অনেকগুলি সমাধানের পরেও আমি দেখতে পেলাম যে সমস্যাটি হ'ল sudo systemctl disable mysql.serviceমাইএসকিউএল অটো শুরু করতে নিষ্ক্রিয় করেছিলাম তাই এটি কাজ করার জন্য আমি মাইএসকিউএল সার্ভারটি পুনরায় সক্ষম করে কমান্ডটি ব্যবহার করে sudo systemctl enable mysql.serviceআবার আপগ্রেড প্রক্রিয়া চালিয়েছি এবং এটা নিখুঁতভাবে সমাপ্ত।


5
আমি এই একই সমস্যায় পড়েছিলাম এবং একই ফিক্সটি আমার পক্ষে কাজ করেছিল।
অ্যালেন

5
আমার জন্য কাজ করেছেন। এখানে প্রতিটি সমাধান রয়েছে, মাইএসকিএল এটির পরে কাজ করেছে।
Bżażej মিশালিক

6
এখানে একই - এটি শীর্ষ পোস্ট হওয়া উচিত।
a1phanumeric

3
আমার জন্যও কাজ করেছেন! তোমাকে অনেক ধন্যবাদ. কেবল স্পষ্ট করে বলার জন্য, রান করুন: sudo systemctl enable mysql.serviceএবং তার পরে এই রান sudo apt install -f
ফার্নান্দো পালাদিনী

এটাই আমার করণীয় ছিল। আমি @ নারুটো দ্বারা বর্ণিত মত অটোস্টার্ট অক্ষম করেছিলাম। আমি অটোস্টার্ট সক্ষম করেছিলাম এবং "সুডো আপ্ট আপগ্রেড" চালনা করি। এখন স্থির। শীর্ষ উত্তর হওয়া উচিত। এটি অনেক সহজ, আরও মানক এবং কম ঝামেলার প্রবণ সমাধান।
জ্যাক হল্ট

20

আপনার ত্রুটি বার্তায় এই লাইনটি রয়েছে:

subprocess installed post-installation script returned error exit status 1

তবে installed post-installation scriptনাম দ্বারা এটি উল্লেখ করা হয়নি। অনেক ঝাঁকুনির পরে, আমি জানতে পারি এর নামটি (আমার ক্ষেত্রে) /var/lib/dpkg/info/mysql-server-5.7.postinst

এই ফাইলটি sudo vi /var/lib/dpkg/info/mysql-server-5.7.postinstবা আপনার পছন্দসই সম্পাদক দিয়ে খুলুন ।

শীর্ষ, পরিবর্তন লাইন 3 (তাই করুন): set -eথেকে set -x, ফাইল সংরক্ষণ করুন। (বিকল্পটি -eহ'ল "ত্রুটিগুলি থেকে বেরিয়ে আসা", এর -xঅর্থ সম্ভবত "স্পষ্টতই কমান্ড কার্যকর করা হবে" সম্ভবতঃ)

চালান sudo dpkg --configure -a --log /tmp/dpkg.log (--log বিকল্পটি isচ্ছিক)। আপনি কেবল এটি চালাতে apt upgradeপারেন যদি আপনি জানেন যে এটি কেবলমাত্র প্যাকেজ হবে যা আপগ্রেড করা হবে।

এখন আপনি mysql-server-5.7.postinstবাশ স্ক্রিপ্টের ভার্বোজ আউটপুট পাবেন এবং কী সমস্যা তা বুঝতে পারেন।

আমার ক্ষেত্রে এটি ব্যর্থভাবে চালানোর চেষ্টা করেছে (পুনরায়) mysql_upgrade, তবে এটি আমার কাস্টমাইজড মাইএসকিএল ইনস্টলেশনের জন্য প্রয়োজন হয়নি। আমি নিশ্চিত ছিলাম যে আমি এটি আগে, সফলভাবে চালিয়েছি এবং সবকিছু ঠিক আছে।

সুতরাং আমি লাইন 321 (পুরানো মাইএসকিএলডি রিলিজের জন্য লাইন 281 ব্যবহার করে দেখুন) ছাড়িয়েছি,

#mysql_upgrade --defaults-file=/etc/mysql/debian.cnf || result=$?

এবং কমান্ড যা পূর্বে ব্যর্থ হয়েছে, sudo apt upgrade(এটি আবার চালনা করুন), সফলভাবে শেষ হয়েছে এবং dpkg এই প্যাকেজটির জন্য ত্রুটির স্থিতি সরিয়ে দিয়েছে।

এখন আপনি ফিরে সেট করতে পারেন set -xথেকে set -e(উপরে বর্ণিত)। এবং allyচ্ছিকভাবে মাইএসকিএল-আপগ্রেড লাইনটি আপত্তিহীন করুন।

আপনি যদি আপনার মাইএসকিএল ডেটা পার্টিশনটিকে একটি অমানুষিক স্থানে নিয়ে যান তবে অতিরিক্ত কাজের প্রয়োজন হতে পারে। আমি আমার থেকে /var/lib/mysql/dataঅন্য ড্রাইভে সিমলিংকের মাধ্যমে সরিয়েছি। তাহলে আপনাকে postinstস্ক্রিপ্টের কারসাজির আগে অস্থায়ীভাবে প্রতীকী লিঙ্কটি সরিয়ে ফেলতে হবে । তারপরে প্যাকেজ আপগ্রেড চালানোর পরে এটি পুনরায় তৈরি করুন।

মাইএসকিএলডি ডিবিয়ান প্যাকেজের পরবর্তী গৌণ সংস্করণ আপগ্রেড হওয়ার পরে, /var/lib/dpkg/info/mysql-server-5.7.postinstস্ক্রিপ্টটির সাথে এই সমস্যাটি আবার দেখাতে পারে।


আমি সবকিছু মুছে ফেলার এবং তারপরে সম্প্রদায়টি মাইএসকিএল
রায়াননার্ড

আমার কাছে ঠিক একই ঘটনা ঘটেছে এবং আপনার পদক্ষেপগুলি এটিকে সমাধান করেছে। আমার জন্য আমার মাইএসকিএল_আপগ্রেড কলটি 320 লাইনে ছিল post আপনি কি ব্যাখ্যা করতে পারবেন যে পোস্ট-ইনস্ট্রিপ্ট স্ক্রিপ্ট থেকে ডাকলে এটি কেন একটি শূন্য নয়?
এমিলিওপিড্রলো

@ Emiliopedrollo না আমি এখানে ব্যাখ্যা করতে পারি না। তবে আমি মনে করি লাইন নম্বরটি এখন ৩২০ হয়েছে কারণ সম্প্রতি প্যাকেজ রক্ষণাবেক্ষণকারীরা পোস্ট-ইনস্টল স্ক্রিপ্টটি বাড়িয়েছে, সফটওয়্যার-আপডেটের শেষ রান চলাকালীন আমি অন্য দিন একই জিনিসটি পর্যবেক্ষণ করেছি (যার মধ্যে একটি নতুন মাইএসকিএল-ডেব-প্যাকেজ অন্তর্ভুক্ত ছিল) ।
knb

ধন্যবাদ! সঙ্গে set -eআমি সঠিক সমস্যাটি কাজ করতে সক্ষম ছিল - মাইএসকিউএল উবুন্টু সিস্টেম ব্যবহারকারী নির্দিষ্ট এক্সেস আছে করা হয়নি /etc/mysql/debian.cnf । তাই আমি এই ব্যবহারকারীকে মাইএসকিউএলে যুক্ত করেছি এবং সুযোগ-সুবিধা দিয়েছি, dpkgআবার দৌড়ে এসেছি এবং এটি কার্যকর হয়েছে!
অ্যালেন হ্যামিল্টন

17

এখানে নির্দেশাবলী এটি আমার সার্ভারে স্থির করেছে: https://bugs.mysql.com/bug.php?id=72722

আপনার সিস্টেমটি বেমানান অবস্থায় থাকার যন্ত্রণাটি আমি বুঝতে পারি তবে পুরো পরিস্থিতি নিয়ে উদ্বেগ না ঘটাতে এবং ব্যবস্থাটি পরিষ্কার করার জন্য ধাপে ধাপে ধাপে এগিয়ে চলার সুযোগ দিই না।

প্রথমে মেশিনে সমস্ত mysql প্যাকেজগুলির বর্তমান অবস্থাটি দেখতে দিন: dpkg -l | গ্রেপ মাইএসকিএল (দয়া করে শেষ কলামটি বাদ দিয়ে আউটপুট আটকান)

প্রথম কলামটি প্যাকেজের বর্তমান অবস্থা নির্দেশ করে। এখানে সম্ভাব্য বিকল্পগুলি রয়েছে:

ii) ইনস্টল করা আরসি) মুছে ফেলা কনফিগার ফাইলগুলি রাখা (আপনি 'অপ্ট-গেট রিমুভ' দিয়ে মুছে ফেলা সমস্ত প্যাকেজগুলির মধ্যে এটি হওয়া উচিত যা / ইত্যাদি অধীনে কনফিগারেশন ফাইলগুলি মুছে না)

এটি কাজ করার জন্য, আপনাকে উপরের তালিকায় কোনও প্যাকেজ দেখতে না পাওয়া অবধি 'অ্যাপ-গেট purge <pkg-name>' চালাতে হবে।

দয়া করে মনে রাখবেন যে কিছু অ-মাইএসকিএল-সার্ভার প্যাকেজ যেমন পাইথন-মাইএসকিএল.কনএনেক্টর এবং পাইথন-মাইসকিএলডিবি ইনস্টল করা থাকলে তাদের অপসারণের দরকার নেই কারণ তাদের এই পরিস্থিতিতে কোনও প্রভাব ফেলবে না তবে অপসারণ করা থাকলে অ্যাপ্লিকেশনগুলিতে সমস্যা হতে পারে।

আমরা কীভাবে ব্যবহারকারীদের এই সমস্যায় পড়তে থেকে রক্ষা করতে পারি তা দেখতে আমরা অবশ্যই আমাদের ডক্সে পুনরায় দেখার চেষ্টা করব। আমাদের সাথে আপনার মতামত বিস্তারিত জানার জন্য ধন্যবাদ।


2
জন্য ধন্যবাদ dpkg -l | grep mysql । এটি দিকটি বুঝতে সহায়তা করে।
ম্যাক্স ইউদিন

কমান্ডটি শুদ্ধির জন্য ভুল ছিল এটি অবশ্যই sudo apt-get purge <pkg-name>আমি এটি সম্পাদনা দিয়ে ঠিক করেছি তবে: আমি ইউনিকোড অক্ষর ব্যবহার করেছি <কারণ অন্যথায় এটি প্রদর্শন করবে না। এই আদেশটি আটকে দেওয়ার অনুলিপি সাবধান করুন
ডিসেম্বর

3

আমার ক্ষেত্রে, স্ট্রেসের সাথে, আমি দেখেছি যে / var / run / mysqld / অস্তিত্ব নেই এবং mysqld ফাইলটি mysqld.sock তৈরি করতে পারে না।

এই আদেশগুলি আমার সমস্যার সমাধান করেছে:

mkdir /var/run/mysqld
chown mysql.mysql /var/run/mysqld
chmod 700 /var/run/mysqld

এখন:

systemctl start mysql

এবং মাইএসকিএল আবার কাজ করে :)


আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি এই লাইনগুলি 25-লাইন থেকে শুরু করে / usr / share / mysql / mysql-systemd-start এ যুক্ত করুন, তারপরে আপনাকে প্রতিটি পুনরায় বুট করার পরে এই ডিরেক্টরিটি পুনরায় তৈরি করতে হবে না (দুঃখিত লাইনটি এই মন্তব্যটিতে কাজ করবে না) : যদি [! -ড / রান / এমসাইক্ল্ড]; তারপরে mkdir -p -m0755 / রান / mysqld || {প্রতিধ্বনি "তৈরি / চালানো / mysqld তৈরি করতে অক্ষম"; প্রস্থান 1; } chown mysql: mysql / run / mysqld || {প্রতিধ্বনি "ছাঁটাই / চালানো / মাইএসকিএলডি অক্ষম"; প্রস্থান 1; } ফাই
স্কুবিডু

3

আমার ক্ষেত্রে আমি যুক্ত করে সমস্যার সমাধান করতে পারি

# Allow log file access
/home/system/var/log/mysql.err rw,
/home/system/var/log/mysql.log rw,
/home/system/var/log/mysql/ r,
/home/system/var/log/mysql/** rw,

প্রতি /etc/apparmor.d/local/usr.sbin.mysqld

আরও তথ্যের জন্য আমার উত্তর (ক্রিস্টোফএস দ্বারা) স্ট্যাকওভারফ্লোতে একবার দেখুন।


0

আমারো একই ইস্যু ছিল. আমি বেশ কয়েকবার মাইএসকিএল পুনরায় ইনস্টল করার চেষ্টা করেছি, তবে কোনও সাফল্য পাইনি।

আমি বুঝতে পেরেছিলাম যে আমার জন্য সমস্যাটি হ'ল, অন্য একটি মাইএসকিএল প্রক্রিয়া ইতিমধ্যে চলছে।

বিস্তারিত:

আমি সাবধানে পড়ার পরে লগ ইন /var/log/mysql/error.log, এবং পাওয়া:

[ত্রুটি] সার্ভার শুরু করতে পারে না: টিসিপি / আইপি পোর্টে বাঁধাই: ইতিমধ্যে ব্যবহারের ঠিকানা

[ত্রুটি] আপনার ইতিমধ্যে পোর্টে আরও একটি মাইএসকিএল সার্ভার চলছে: 3306?

দেখে মনে হচ্ছে অন্য অ্যাপ্লিকেশনটি ইতিমধ্যে বন্দরটি ব্যবহার করছে।

আমি এটি ব্যবহার করে পরীক্ষা করেছি ps -aux | grep 3306:

$ ps -aux | grep 3306
milkovs+  6802  0.0  0.0  16336  1084 pts/19   S+   21:39   0:00 grep --color=auto 3306
mysql    14706  0.0  0.3 1270192 13916 pts/2   Sl   Aug19   0:29 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --skip-grant-tables --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306 --log-syslog=1 --log-syslog-facility=daemon --log-syslog-tag=

এবং আমি চলমান প্রক্রিয়া হত্যা করেছি sudo kill -15 14706

তারপরে আমি মাইএসকিএল শুরু করেছি: /etc/init.d/mysql start

অবশেষে মাইএসকিএল আমার পক্ষে কাজ করে! আমি আশা করি এটি কাউকে সাহায্য করবে


0

এই পৃষ্ঠার উত্তরগুলির কোনওটিই আমার পক্ষে কাজ করেনি।

ওরাকল রেপো থেকে মাইএসকিউএল ডাউনলোড এবং ইনস্টল করে আমি ওরাকল ডাউনলোডের পৃষ্ঠাতে গিয়ে শেষ করেছি mysql-apt-config_0.8.8-1_all.deb:

sudo dpkg -i mysql-apt-config_0.8.8-1_all.deb
sudo apt update
sudo apt install mysql-server

2
isntall-> installটাইপো বোকা এসও আমাকে একটি চরিত্র সংশোধন করতে দেয় না।
সিএসবা তোথ


@ সিনস্কারি এই উত্তরটি কিছুক্ষণ আগে থেকেই এসেছে, তবে এটি সম্ভবত কারণ ছিল যে তাদের প্যাকেজ ম্যানেজারের চেয়ে নতুন সংস্করণ ছিল?
ostrokach

0

আমার এখন কয়েকটি সার্ভারে সমস্যা হয়েছে ঠিক হয়ে গেছে phpmyadmin ইনস্টল চালানো - পুনরায় ইনস্টল করুন

যা উপরোক্ত সমাধান করেছে (এরপরে মাইএসকিএল স্পর্শ করার প্রয়োজন নেই)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.