ফাইল /var/lib/mysql/user.lower-test তৈরি করতে পারবেন না


12

মাইএসকিউএল ডাটাবেস কয়েক মাস ধরে বিনামূল্যে সমস্যা হয়েছে। আজ যখন আমি সিনাপটিক প্যাকেজ ম্যানেজার ব্যবহার করে আপগ্রেডযোগ্য প্যাকেজগুলির জন্য যাচাই করেছি এটি বিভিন্ন মাইএসকিউএল উপাদান (-কমোন,-ক্লায়েন্ট, -সেসভার, ইত্যাদি) নিয়ে আসে। অতএব আমি আপগ্রেড করার সিদ্ধান্ত নিয়েছি (আমি ইনস্টল করা সংস্করণটি নোট করতে ভুলে গিয়েছিলাম তবে মনে করি এটি 5.6.21 বলে মনে হয়েছে) 5.6.25-1-উবুন্টু ২.০. পরে আমি যখন ডাটাবেসটি জিজ্ঞাসা করতে গিয়েছিলাম তখন আমি বার্তাটি পেয়েছি: -

Error occured: Can't connect to MySQL server on '127.0.0.1' (111)

আমি তখন দেখতে পেলাম যে সার্ভারটি চলছে না। লগ ফাইলটিতে আমি বার্তাটি পছন্দ করি: -

Can't create file /var/lib/mysql/user.lower-test

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

উত্তর:


6

এই সমস্যাগুলি অনুমোদনের সমস্যাগুলি মনে হয় বা মাইএসকিএল ডেটা নির্দেশিকাটিকে অন্য স্থানে / var / lib / mysql পরিবর্তন করে।

Sudo দিয়ে চালানোর চেষ্টা করুন

দেখে মনে হচ্ছে / var / lib / mysql মাইএসকিএল ব্যবহারকারীর মালিকানাধীন এবং গ্রুপটি মাইএসকিএল-তেও সেট করা আছে।

$ sudo chown -R mysql /var/lib/mysql
$ sudo chgrp -R mysql /var/lib/mysql
$ sudo chmod 755 /var/lib/mysql

আপনি কি পরীক্ষা করেছেন যে ডিরেক্টরিটি / var / lib / mysql আসলে রয়েছে এবং এটি আপনার ডেটা ডিরেক্টরিতে মিলছে? যদি এটি না হয়, তবে আপনাকে সম্ভবত মাইএসকিএলড বিভাগের অধীনে ডেটাডির প্যারামিটার নির্দিষ্ট করতে হবে

[mysqld]
datadir=/var/lib/mysql

তারপরে আপনি মাইএসকিউএলকে নতুন ডেটা ডিরেক্টরি এবং উপ ডিরেক্টরিগুলি read সম্পাদন করতে read সংশোধন করতে বা আপনার নিজের ঝুঁকিতে, অ্যাপারমোর অপসারণ করতে অনুমতি দেওয়ার জন্য অ্যাপমর্ম কনফিগার করার মধ্যে চয়ন করতে পারেন। নিম্নলিখিতগুলি করতে আপনাকে রুট হতে হবে:

/etc/init.d/apparmor stop
/etc/init.d/apparmor teardown
update-rc.d -f apparmor remove
apt-get purge apparmor
reboot

আমি এই সমস্ত মাধ্যমে গিয়েছিলাম কিন্তু কোন লাভ হয়নি। ব্যাকআপ পেয়ে আমি পুনরায় ইনস্টল করার সিদ্ধান্ত নিয়েছি এবং আমার ইস্যুতে যে সমস্যা হয়েছে তার সবকিছুই কাজ করে। তবে সমস্যাটি কি লিনাক্স নাকি এটি মাইএসকিউএল ...
মাইকেল জন

@ মিশেল জন কিছুই বলতে পারেন না। এটি অ্যাপারমোর বা মাইএসকিএল প্যাকেজ দুর্নীতি হতে পারে
হিতেশ

উবুন্টু জেনিয়ালে: apparmorআপনি ইনস্টল করলে স্বয়ংক্রিয়ভাবে ইনস্টল এবং সক্ষম হয় mysql-server-5.6। এমনকি যদি আপনি এটি পূর্বে নিষ্ক্রিয় করেছেন। আপনি apparmorপ্যাকেজটি সরাতে পারবেন না কারণ এটি নির্ভরতা mysql-server-5.6। আপনি "ফাইল তৈরি করতে পারবেন না /var/lib/mysql/user.lower-test" ত্রুটিটি সমাধান করে করতে পারেনservice apparmor stop; service apparmor teardown; update-rc.d -f apparmor remove
জেরোইন ভার্মিউলেন - ম্যাজহোস্ট

6

মাইএসকিউএল-র একাধিক ইনস্ট্যান্স চালানোর চেষ্টা করার সময় আমি এই সমস্যায় পড়েছিলাম, তবে অ্যাপারমোর অপসারণের পরিবর্তে আমি usr.sbin.mysqld ফাইলটি আপডেট করেছি:

vim /etc/apparmor.d/usr.sbin.mysqld

উদাহরণস্বরূপ, এটি আমার ফাইলটির মতো দেখাবে এবং আমি একবার ফোল্ডারগুলি যুক্ত করেছিলাম যেখানে লেখার অনুমতি দরকার হয়, সমস্তগুলি এটির মতো কাজ করে।

/usr/sbin/mysqld {

  capability dac_override,
  capability sys_resource,
  capability setgid,
  capability setuid,

  network tcp,

  /etc/hosts.allow r,
  /etc/hosts.deny r,

  /etc/mysql/*.pem r,
  /etc/mysql/conf.d/ r,
  /etc/mysql/conf.d/* r,
  /etc/mysql/*.cnf r,
  /usr/lib/mysql/plugin/ r,
  /usr/lib/mysql/plugin/*.so* mr,
  /usr/sbin/mysqld mr,
  /usr/share/mysql/** r,
  /var/log/mysql.log rw,
  /var/log/mysql.err rw,
  /var/lib/mysql/ r,
  /var/lib/mysql/** rwk,
  /var/lib/mysql1/ r,
  /var/lib/mysql1/** rwk,
  /var/log/mysql/ r,
  /var/log/mysql/* rw,
  /var/run/mysqld/mysqld.pid rw,
  /var/run/mysqld/mysqld.sock w,
  /var/run/mysqld/mysqld1.pid rw,
  /var/run/mysqld/mysqld1.sock w,
  /run/mysqld/mysqld.pid rw,
  /run/mysqld/mysqld.sock w,

  /sys/devices/system/cpu/ r,

}

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

3

সমস্যাটি আমার তখন ঘটেছিল যখন আমি / var / lib / mysql কে অন্য ডিস্কে স্থানান্তরিত করার চেষ্টা করি এবং মূল ডিরেক্টরিটি একটি সিমিলিংক দিয়ে প্রতিস্থাপন করি।

অ্যাপারমার এই কনফিগারেশন দেখুনটিতে অ্যাক্সেস অস্বীকার করবে

এটিকে অ্যাপারর্মার বিকাশকারীরা কোনও বাগ হিসাবে বিবেচনা করবেন না। চারপাশের কাজটি একটি বাইন্ড মাউন্ট ব্যবহার করা। দেখা

একটি ব্যাখ্যা জন্য।

সুতরাং

mount --bind /newmysqldatadir /var/lib/mysql
service mysql start

বিষয়টি আমার জন্য ঠিক করে দিন।


1

আমারও একই সমস্যা ছিল। আমি আমার মেশিনে উবুন্টু সার্ভারটি পুনরায় ইনস্টল করেছি, একটি হার্ড ড্রাইভে / ইত্যাদি / এর একটি সম্পূর্ণ ব্যাকআপ তৈরি করেছি, পুনরায় ইনস্টল করার পরে আমি / ড্রাইভ / ইত্যাদি / থেকে আমার সিস্টেম / ইত্যাদি সমস্ত গুরুত্বপূর্ণ ফাইলের একটি অনুলিপি তৈরি করেছি।

এটি করার সময়, আমি usr.sbin.mysqld.bak নামক usr.sbin.mysqld ফাইলের জন্য একটি বক তৈরি করেছি এবং এটি একই /etc/apparmor.d/ ডিরেক্টরিতে রেখেছি।

আরও অনুসন্ধানের পরে আমি এই ব্লগ পোস্টটি পেয়েছি: https://blogs.oracle.com/jsmyth/apparmor-and-mysql

অ্যাপারমোর-ইউজগুলি ইনস্টল করে এবং / ইউএসআর / এসবিন / মাইএসকিএলডিএ-এ-অভিযোগ করার চেষ্টা করেছিল এবং এটি বলেছিল যে আমার কাছে 2 টি অ্যাপমর্ম কনফিগার (আমার উভয় ফাইল) সংজ্ঞায়িত আছে।

আমি জানি যে এটি আপনি যে সমস্যার মুখোমুখি হচ্ছেন তা নাও হতে পারে, তবে কেবল স্বচ্ছতার জন্য, আমি যেমন বোবা ছিলাম না, অ্যাপারর্মার এসবিন ডিরেক্টরিটির একই ডিরেক্টরিতে একটি ব্যাকআপ ফাইল তৈরি করব।


0

আপনার পার্টিশনটি পূর্ণ কিনা তাও পরীক্ষা করে দেখুন, যা আমার ক্ষেত্রে ছিল।

অজানা কারণে, ডেটাটিকে অন্য পার্টিশনে স্থানান্তর করাও কার্যকর হয়নি।

সুতরাং দ্রুত সমাধানের জন্য, llvm বা জিপিআর্টে গণ্ডগোলের পরিবর্তে আমি আমার /swapfileআকার হ্রাস করেছি ।

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