mysql init-file কনফিগার অপশনটি দেওয়ার সময় ত্রুটি পাওয়া যায় নি


11

যখনই মাইএসকিএল শুরু হয় আমি একটি এসকিউএল স্ক্রিপ্ট চালাতে চাই তবে আমি এটি উবুন্টু ১১.১০ এ কাজ করতে পারি না।

আমি মাইএসকিএল কনফিগারেশন ফাইলে একটি " init-file " বিকল্প যুক্ত করেছি:

> sudo emacs -nw /etc/mysql/my.cnf
...
[mysqld]
init-file=/etc/mysql/mysqlinit.sql
...

তবে আমি যখন মাইএসকিএল পুনরায় চালু করি তখন এটি " ফাইল খুঁজে পাওয়া যায় না " ত্রুটিতে ব্যর্থ হয় :

> tail /var/log/mysql/error.log
111111  7:41:06 [ERROR] /usr/sbin/mysqld: File '/etc/mysql/mysqlinit.sql' not found (Errcode: 13)
111111  7:41:06 [ERROR] Aborting

তবে ফাইলটি অবশ্যই বিদ্যমান এবং এটি পঠনযোগ্য:

> ls -l /etc/mysql/mysqlinit.sql
-rwxr-xr-x 1 mysql mysql 30 2011-11-09 05:06 /etc/mysql/mysqlinit.sql

কোন সমাধান কিভাবে এটি সমাধান? এটি কি উবুন্টু বিজোড়তা বা আমি বোবা কিছু করেছি?


তথ্য:

আমি উবুন্টু ১১.১০ এবং মাইএসকিউএল ৫.১ চালাচ্ছি।

> mysqld --version
mysqld  Ver 5.1.58-1ubuntu1 for debian-linux-gnu on x86_64 ((Ubuntu))

এর আউটপুট কি file /etc/mysql/mysqlinit.sql?
কোয়ান্টা

file /etc/mysql/mysqlinit.sql"/etc/mysql/mysqlinit.sql: ASCII পাঠ্য, কোনও লাইন টার্মিনেটর ছাড়াই দেয়"
টম

সমস্যা সংকুচিত করতে, /tmpকী ঘটেছিল তা দেখার জন্য এটি কেবল ফোল্ডারে স্থানান্তরিত করার চেষ্টা করুন । আপনি কি অ্যাপআর্মার চালাচ্ছেন?
কোয়ান্টা

আমি একটি init-ফাইল ব্যবহার করার চেষ্টা করেছি /tmpতবে ভাগ্য নেই। হ্যাঁ, আমি মনে করি উবুন্টু অ্যাপআর্মার ব্যবহার করে।
টম

1
যদি তাই হয় তবে অ্যাপআর্মার বন্ধ করার চেষ্টা করুন এবং দেখুন ত্রুটিটি চলে গেছে কিনা।
কোয়ান্টা

উত্তর:


14

ধন্যবাদ @ কোয়ান্টা, সমস্যাটি প্রকৃতপক্ষে উদ্ভট ছিল।

সমস্যাটি সমাধান করার জন্য:

মাইএসকিএল অ্যাপারমোর ফাইলটি সম্পাদনা করুন:

sudo emacs -nw /etc/apparmor.d/usr.sbin.mysqld

আপনার init-ফাইল *। এসকিএল এক্সটেনশনের সাথে যেখানে ফোল্ডারটি অন্তর্ভুক্ত করুন:

...
/usr/sbin/mysqld {
    /var/log/mysql.log rw,
    /var/log/mysql.err rw,
    ;/var/lib/mysql/ r,
    /var/lib/mysql/** rwk,
    /var/log/mysql/ r,
    /var/log/mysql/* rw,
    /{,var/}run/mysqld/mysqld.pid w,
    /{,var/}run/mysqld/mysqld.sock w,

    /sys/devices/system/cpu/ r,

    # I added to allow my init-file script to run
    /etc/mysql/*.sql r,
}

এবং তারপরে AppArmor প্রোফাইলগুলি পুনরায় লোড করুন।

# sudo /etc/init.d/apparmor reload

তারপরে MySQL পুনরায় লোড করুন:

sudo /etc/init.d/mysql restart

এখন init-file এক্সিকিউট হবে। হ্যাঁ!

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