সিস্টেমড মাইএসকিএল থামবে না


17

15.04 এ আপগ্রেড করার পরে, আমি সিস্টেমড জানতে প্রচুর মজা পেয়েছি। আমি মনে করি যে আমি mysql.service বন্ধ করতে অক্ষম ব্যতীত আমার সমস্ত কিছু কাজ করছে; systemctl কমান্ডটি কেবল হ্যাং করে এবং মাইএসকিএল কেবল চালিয়ে যায়। অন্য কেউ এটি অনুভব করেছেন বা কী ঘটছে তা হয়তো জানেন?


2
ডিফল্টরূপে, এটি 3 মিনিটের পরে সিক্কিলের সাথে পরিষেবাটি অনুগ্রহ করে (যদি পরিষেবাটি সাধারণভাবে শেষ করতে ব্যর্থ হয়)। সম্ভবত আপনাকে mysql.service এর কনফিগারেশনগুলি পড়তে হবে।
ভেলকান

2
আপনি মাইএসকিউএল এর কোন সংস্করণটি চালাচ্ছেন? আপনি তাদের নেটিভ mysql.serviceস্ক্রিপ্ট ব্যবহার করেছেন বা আপনি নিজের রোল করেছেন?
জোস

এটি 5.6 যা অফিশিয়াল উদ্দীপনা থেকে বেরিয়ে আসে। আমি সেই প্যাকেজটি নিয়ে আসা স্ক্রিপ্টটি ব্যবহার করছি।
ক্রেগ ডানফোর্ড

আমাদের একই সমস্যা ছিল এবং একটি বাগ রিপোর্ট দায়ের করেছি ।
EOLE টিম

উত্তর:


25

আমার একই সমস্যা ছিল (অফিসিয়াল ফাইল এবং কনফিগারেশন ব্যবহার করে 15.04 এ আপগ্রেড করুন)।

সিস্টেমটি পুনরায় বুট / শাটডাউন করে mysqlনিজে থেকে sytemctlএবং স্বয়ংক্রিয়ভাবে ডেমোনটি থামাতে আমাকে নিম্নলিখিত পরিবর্তনগুলি করতে হয়েছিল :

  1. ব্যবহারকারীর /etc/mysql/debian.cnfজন্য পঠনযোগ্য করুনmysql

    sudo chgrp mysql /etc/mysql/debian.cnf; sudo chmod 640 /etc/mysql/debian.cnf
    
  2. কিছুটা পরিবর্তিত mysql.serviceফাইল সরবরাহ করুন:

    sudo cp /lib/systemd/system/mysql.service /etc/systemd/system/
    sudo chmod 755 /etc/systemd/system/mysql.service
    
  3. সম্পাদকে অনুলিপি করা ফাইলটি খোলার মাধ্যমে একটি স্পষ্ট স্টপ কমান্ড সরবরাহ করুন:

    sudo nano /etc/systemd/system/mysql.service
    

    এবং [Service]বিভাগের অধীনে নিম্নলিখিত লাইন যুক্ত :

    ExecStop=/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf shutdown
    

    ন্যানোতে, সংরক্ষণের জন্য Ctrl + O ব্যবহার করুন (লিনাক্স উপায়!), প্রস্থান করতে Ctrl + X ব্যবহার করুন।

  4. সিস্টেমে নতুন পরিষেবা ফাইলটি পরিচিত করুন:

    sudo systemctl daemon-reload
    

আমার কুবুন্টু মাইএসকিউএল কমিউনিটি সার্ভারের জন্য একটি স্টপ জব চলছে [১ মিন 16/10 মিনিট] সাথে শাটডাউনের সময় জমাট বাঁধতে শুরু করে । এই উত্তরটি সমস্যার সমাধান করেছে, আপনাকে অনেক ধন্যবাদ।
লোলমাস - আন্দ্রে মিখায়লভ

আমার 14.10 -> 15.04 আপগ্রেড (যা মাইএসকিউএল 5.5 থেকে 5.6 এ সরানো) একই সমস্যার কারণ হয়ে দাঁড়িয়েছে। যদিও মাইএসকিউএল 'কাজ করে' এটি সঠিকভাবে শাটডাউন করে না, সুতরাং উবুন্টু শাটডাউনে স্তব্ধ। দেখে মনে হচ্ছে ইস্যুটি মাইএসকিউএল সংস্করণ পরিবর্তনের সাথে সম্পর্কিত যা সিস্টেমড প্রতিস্থাপন আপস্টার্টের সাথে মিলিত হয়েছে। সতর্কতা ইত্যাদির বাছাই করার জন্য এই লিঙ্কটি মাইএসকিউএল কনফিগারেশনের আপডেটগুলির কিছু অন্তর্ভুক্ত করে etc.
মাইকে

1
ডেবিয়ান জেসি / মাইএসকিউএল 5.6 এর সাথে টেস্টিংয়ে একই সমস্যা - আপনাকে ধন্যবাদ স্থির করে :)
মাজনকো

আমি এটি করতে ঘৃণা করি তবে আমি এটি কাজ করে খুব আনন্দিত, ধন্যবাদ ইউডো!
গ্যাব্রিয়েল বাকের


1

উবুন্টু 15.10 ডেস্কটপ নিয়ে আমার একই সমস্যা ছিল এবং আমি এটি ঠিক করার উপায় খুঁজে পেয়েছি:

/etc/mysql/mysql.conf.d/mysqld.cnf এ log_error পরামিতি মন্তব্য করা হয়েছিল। প্যারামিটারটি অসম্পূর্ণ করার পরে, সিস্টেমড সমস্যা ছাড়াই মাইএসকিএলডি শাটডাউন করে।


উবুন্টু এলটিএস 16.04 এ আমার একই সমস্যা ছিল। শুধুমাত্র ত্রুটি অক্ষম করা.লগ কাজ করছিল। এখন মাইএসকিউএলডি --log-syslogজার্নালটির বিকল্পের মাধ্যমে লিখেছেন । সম্ভবত একটি কারণ: মূল ফাইল সিস্টেমটি ছিল বিটিআরএফএস।
ইঙ্গোপিংগো

1

আপনার সমস্যা থ্রেডপুল_ সাইজ। যদি এটি কোরের / থ্রেডের সংখ্যার তুলনায় অনেক বেশি থাকে তবে আপনি মাইসক্ল্যাডমিন শাটডাউন কমান্ডটি ব্যবহার না করে সঠিকভাবে শাটডাউন করতে সক্ষম হবেন না।

উদাহরণস্বরূপ: আপনার 4 টি থ্রেড সহ 2 টি কোর সিপিইউ রয়েছে। আপনি যদি এটি 1-4 সেট করেন - এটি ঠিকঠাক কাজ করবে। আপনি যদি 'হাই পারফরম্যান্স' ব্লগের পরামর্শ অনুসারে এটি 16 এ সেট করেন তবে এটি পোচ হবে।


1

আমি একটি অনুরূপ সমস্যা ছিল MySQL / mariadb যখন নির্দেশ থামাতে ব্যর্থ systemd হল , হয় শাটডাউনে বা ম্যানুয়ালি নামক sudo service mysql stop

আমার ক্ষেত্রে আমি ইউইএফআই মোডে উবুন্টু / উইন্ডোজকে দ্বৈত-বুটিং করছি এবং এই ওএসগুলি বিভিন্ন হার্ডওয়্যার সময়ের ব্যাখ্যা করে, তাই উভয় ওএস যখনই শুরু হয় তখন ইন্টারনেট টাইম সার্ভারগুলির সাথে সিঙ্ক হয়।

মাইএসকিউএল (এবং মারিয়্যাডবি) চলমান অবস্থায় যদি হার্ডওয়্যার সময় পরিবর্তন হয় তবে এটি থামাতে ব্যর্থ হয়েছিল।

আপনার সময়সীমা ছাড়াই মাইএসকিউএল শুরু করা স্থগিত করতে হবে। আদর্শভাবে এটি মাইএসকিএল এর সাথে একটি অস্থায়ী নির্ভরতা byোকানো দ্বারা সম্পন্ন হবে After: time-syncতবে এটি আমার পক্ষে কার্যকর হয়নি।

আমার জন্য যে সমাধানটি কাজ করেছিল (একই প্রভাবের জন্য আপনি ম্যারিএডবি দিয়ে মাইএসকিএল প্রতিস্থাপন করতে পারেন):

  1. এর সাথে মাইএসকিএল অক্ষম করুন sudo systemctl disabled mysql.service

  2. এমন একটি স্ক্রিপ্ট তৈরি করুন (এটি নির্বাহযোগ্য তা নিশ্চিত করুন) যা /usr/bin/delay_mysqlসামগ্রীগুলির সাথে কিছুটা বিলম্বের পরে মাইএসকিএল শুরু করবে :

    #!/bin/sh
    sleep 30s
    /etc/init.d/mysql start
    
  3. /etc/systemd/system/delay_mysql.service বিষয়বস্তু সহ আপনার নতুন স্ক্রিপ্টটি চালানোর জন্য একটি সিস্টেমযুক্ত পরিষেবা তৈরি করুন :

    [Unit]
    Description=Delay start of MySQL / MariaDB
    
    [Service]
    Type=oneshot
    ExecStart=/usr/bin/delay_mysql
    
    [Install]
    WantedBy=multi-user.target  
    
  4. সাথে আপনার নতুন পরিষেবা নিবন্ধন করুন sudo systemctl enable delay_mysql.service

এটি আপনার স্ক্রিপ্টটি বহু-ব্যবহারকারীর স্তরে চালিত করবে, যা উবুন্টুতে 3,4,5।


এটা আমার সমস্যার সমাধান। তবে এটি লক্ষণীয় গুরুত্বপূর্ণ, যে মাইএসকিউএল পুনরায় ইনস্টল করার আগে আপনাকে বিলম্ব_মিজিকএল.সার্ভিস অক্ষম করা উচিত, অন্যথায় আপনি একটি ত্রুটি পেয়েছিলেন।
সিগ

0

অনুলিপি করার সময় mysql.serviceআপনাকে একটি কাজ করতে হবে chmod

cp /lib/systemd/system/mysql.service /etc/systemd/system/
chmod 755 /etc/systemd/system/mysql.service

0

আমার ক্ষেত্রে এটি রক্ষণাবেক্ষণ ব্যবহারকারীর জন্য পাসওয়ার্ড মেলেনি ছিল debian-sys-maintএক মধ্যে /etc/mysql/debian.cnfএবং মাইএসকিউএল ডাটাবেসের মধ্যে অন্যতম।

এই ব্যবহারকারীটি মাইএসকিউএল শাটডাউন এবং অন্যান্য ফাংশনের জন্য ব্যবহৃত হয়। মাইএসকিউএল আপডেটের পরে এটি ঘটতে পারে যে ফাইল এবং ডাটাবেসের মধ্যে একটি পাস মিল নেই। আপনি যদি আপনার ডাটাবেসটিকে একটি মাইএসকিউএল থেকে অন্য মাইএসকিউএল থেকে সরান তবে এটিও ঘটতে পারে। আপনি যদি অন্য মাইএসকিউএল থেকে সমস্ত ডেটাবেস এবং ব্যবহারকারীদের আলাদা আলাদা মেশিনে আমদানি করেন তবে আপনার রক্ষণাবেক্ষণ ব্যবহারকারী ( debian-sys-maint) এর পাসওয়ার্ডটি পুনরায় সিঙ্ক করতে হবে ।

আপনাকে যা করতে হবে: উবুন্টু / ডিবিয়ান ফাইলে আপনার বর্তমান পাসওয়ার্ডটি পরীক্ষা করুন:

sudo cat /etc/mysql/debian.cnf

# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host     = localhost
user     = debian-sys-maint
password = n4aSHUP04s1J32X5
socket   = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
user     = debian-sys-maint
password = n4aSHUP04s1J32X5
socket   = /var/run/mysqld/mysqld.sock
basedir  = /usr

আপনি আপনার পাসওয়ার্ড দেখতে পারেন যে সিস্টেমটি এখানে ব্যবহার করবে: password = n4aSHUP04s1J32X5

পরবর্তী পদক্ষেপটি একই পাসওয়ার্ডে মাইএসকিউএল আপডেট করা: মাইএসকিউএল এ লগইন করুন:

~$ mysql -u root -p

মাইএসকিউএল অ্যাক্সেস করতে আপনার পাসওয়ার্ড টাইপ করুন

mysql> GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'n4aSHUP04s1J32X5';**

এরপরে শাটডাউন নিয়ে আর কোনও সমস্যা নেই, 10 মিনিট অপেক্ষা নেই, অ্যাপ্লিকেশন ইনস্টল করার কোনও সমস্যা নেই যা এই পিএইচপিএমইডমিনের মতো এই রক্ষণাবেক্ষণ অ্যাকাউন্টটি ব্যবহার করে।

আপডেট: সুতরাং দুর্ভাগ্যক্রমে এটি সমস্যার সমাধান করেনি। এটি এটিকে এলোমেলো করে তুলেছিল - কখনও কখনও আমি পরিষেবাটি বন্ধ করার পরে অন্য সময় ইস্যু না করে পরিষেবাটি বন্ধ করতে পারি।

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