MySQL। ইউনিক্স সকেটে বাঁধাই: অনুমতি অস্বীকার করা হয়েছে


12

এর সাথে মাইএসকিএল শুরু করতে পারবেন না:

130408 11:31:22 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
/usr/libexec/mysqld: Table 'plugin' is read only
130408 11:31:22 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
130408 11:31:22  InnoDB: Initializing buffer pool, size = 8.0M
130408 11:31:22  InnoDB: Completed initialization of buffer pool
130408 11:31:23  InnoDB: Started; log sequence number 0 19514977
130408 11:31:23 [ERROR] Can't start server : Bind on unix socket: Permission denied
130408 11:31:23 [ERROR] Do you already have another mysqld server running on socket: /var/lib/mysql/mysql.sock ?
130408 11:31:23 [ERROR] Aborting

130408 11:31:23  InnoDB: Starting shutdown...
130408 11:31:28  InnoDB: Shutdown completed; log sequence number 0 19514977
130408 11:31:28 [Note] /usr/libexec/mysqld: Shutdown complete
130408 11:31:28 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

আর একটি মাইএসকিএল চালানো হয় না:

[root@triton667 etc]# ps ax | grep mysql
 9195 pts/1    S+     0:00 grep mysql

my.cnf:

    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    user=mysql
    tmpdir=/tmp
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    max_allowed_packet=256M

    [mysqld_safe]

    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid

"/ Tmp" এবং "/ var / lib / mysql" এ অনুমতিগুলি 777 /

কোন পরামর্শ?

ইউপিডি 1 :

[root@triton667 etc]# mysql_upgrade
Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
Running 'mysqlcheck with default connection arguments
mysqlcheck: Got error: 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) trying to connect
FATAL ERROR: Upgrade failed

ইউপিডি 2 : প্লাগইন.এমওয়াইডি, প্লাগইন.এমওয়াইআই এবং প্লাগইন.ফ্রিম / var / lib / mysql / mysql / এ বিদ্যমান রয়েছে।

3306 বন্দরে কিছুই চলছে না।

mysql.sock বিদ্যমান নেই। আমি নিজে এটি তৈরি করার চেষ্টা করেছি, তবে পুনরায় চালু করার পরে এটি সরানো হয়েছে।

মাউন্ট (সমস্ত rw):

[root@triton667 mysql]# mount
/dev/md1 on / type ext4 (rw,noatime,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/md0 on /boot type ext2 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)

আমি আজ সাবডোমনে আমার সাইটটি ক্লোন করার চেষ্টা করার সময় এই সমস্যাটি উপস্থিত হয়েছিল।


mysql_upgradeপ্রস্তাব হিসাবে চালানো ?
নিকডব্লিউ

নং টাচ /var/lib/mysql/mysql.sock - এছাড়াও কাজ করে না
অলডউইন

/ Var / lib / mysql / mysql এর অধীনে একটি প্লাগইন.এমওয়াইডি, প্লাগইন.এমওয়াইআই এবং প্লাগইন.ফ্রিএম ফাইল রয়েছে?
নিকডাব্লু

এছাড়াও, mysql.sock ফাইলটি / var / lib / mysql ডিরেক্টরিতে বিদ্যমান?
নিকডাব্লু

3306 বন্দরে ইতিমধ্যে কি কিছু চলছে?
aardvark

উত্তর:


15

1) প্রথমে নিশ্চিত হয়ে নিন যে আপনি আরএম কমান্ড ব্যবহার করে বিদ্যমান সকেট ফাইলটি মুছে ফেলেছেন।

rm /var/lib/mysql/mysql.sock

2) নিম্নলিখিত কমান্ডের মাধ্যমে বিদ্যমান বিদ্যমান মাইএসকিউএল প্রক্রিয়াটিকে হত্যা করুন।

service mysql stop

3) খুব গুরুত্বপূর্ণ: /var/lib/ফোল্ডারের অধীনে মাইএসকিউএল ডাটাবেস ডিরেক্টরিটির অনুমতি মাইএসকিএল: মূল হতে হবে তা নিশ্চিত করুন

chown -R mysql:root /var/lib/mysql

৪) উপরের তথ্যের সাথে আপনার সাফল্যের সাথে মাইএসকিউএল শুরু করতে সক্ষম হওয়া উচিত এবং সকেট ফাইলটি ডাটাবেস ডিরেক্টরিতে সফলভাবে তৈরি করা উচিত।

service mysql start

আমি একটি উবুন্টু সার্ভার ব্যবহার করি এবং এটি কার্যকর হয়নি।
ভিজিট মাজুকো

6

@ অভিষেকের জবাবটি মাইএসকিএলডি আউটপুট (/var/run/mysqld/mysqld.sock ব্যবহার করতে পারি না) এর সাথে মিলিত হয়ে আমি একটি কমান্ড দিয়ে সমাধান করতে পেরেছি:

chown -R mysql:root /var/run/mysqld

তারপরে এটি সঠিকভাবে শুরু হয়:

root@***:~# service mysql start
df: Warning: cannot read table of mounted file systems: No such file or directory
[ ok ] Starting MySQL database server: mysqld ..
[info] Checking for tables which need an upgrade, are corrupt or were 
not closed cleanly..

1
ভবিষ্যতের পক্ষ থেকে আপনার স্বাগত :)
ড্যানিয়েল কুমাক

3

মাইএসকিউএল ডেমনকে সকেট ফাইলটি পথে লিখতে বাধা দেয় এমন কোনও অবস্থার কারণে আপনার সমস্যা দেখা দিতে পারে /var/lib/mysql। অন্য উত্তরগুলি, যেমন একটি পঠনযোগ্য ফাইল সিস্টেম বা ভুল ডিরেক্টরি মালিকানা, মাইএসকিউএল সকেটে লিখতে সক্ষম না হতে পারে এমন বিভিন্ন কারণে সম্বোধন করে।

আর একটি সম্ভাব্য কারণ হ'ল /var/lib/mysqlভুল সেলেলাক্স প্রসঙ্গ থাকতে পারে। আপনি মাইএসকিউএল ডেমন শুরু করার চেষ্টা করার পরে সাম্প্রতিক সেলইনস এভিসি অস্বীকারগুলি পরীক্ষা করে এই শর্তটি নির্ণয় করতে পারেন:

ausearch -m avc --start recent

যদি SELinux সকেট ফাইল তৈরি করতে অ্যাক্সেস অস্বীকার করে, আপনি এই জাতীয় একটি ত্রুটি বার্তা দেখতে পাবেন:

time->Thu Feb  2 03:46:27 2017
type=SYSCALL msg=audit(1566106187.784:152): arch=c000004e syscall=49 success=no exit=-13 a0=4f a1=7ff3fd652e80 a2=6e a3=7fcd2d6523d40 items=0 ppid=1 pid=1820 auid=4294967295 uid=996 gid=994 euid=996 suid=996 fsuid=996 egid=994 sgid=994 fsgid=994 tty=(none) ses=4294967295 comm="mysqld" exe="/usr/sbin/mysqld" subj=system_u:system_r:mysqld_t:s0 key=(null)
type=AVC msg=audit(1566106187.784:152): avc:  denied  { create } for  pid=1820 comm="mysqld" name="mysql.sock" scontext=system_u:system_r:mysqld_t:s0 tcontext=system_u:object_r:var_log_t:s0 tclass=sock_file

সেলইনাক্স অস্বীকার সমাধান করার জন্য ডিরেক্টরিটির ডিফল্ট প্রসঙ্গটি পুনরুদ্ধার করার চেষ্টা করুন ( mysqld_db_tআপনি যখন মাইএসকিউএল বা মারিয়াডিবি ইনস্টল করেছেন তখন আপনার বিতরণটির সঠিক প্রসঙ্গটি সেট করা উচিত ):

restorecon -R -v -f /var/lib/mysql

আপনি যদি আপনার সিস্টেমে প্রসঙ্গটি কাস্টমাইজ করে থাকেন তবে সমস্যা সমাধান করা এই পোস্টের আওতার বাইরে।


SELinux সহ CentOS 7 এ আমি যা মুখোমুখি হয়েছিলাম এবং প্রসঙ্গটি পুনরুদ্ধার করছিলাম এটি ঠিক হয়ে গেল।
কেন জে

1

আপনি যা লিখছেন তার উপর ভিত্তি করে, আমি আপনাকে পরামর্শ দিচ্ছি যে আপনার ফাইল সিস্টেমটি কেবল পঠনযোগ্য হিসাবে মাউন্ট হয়েছে কিনা তা পরীক্ষা করে দেখুন।

130408 ​​11:31:22 mysqld_safe / var / lib / mysql / usr / lixec / mysqld থেকে ডাটাবেস সহ mysqld ডেমন শুরু করা হচ্ছে: সারণী 'প্লাগইন' কেবল পঠনযোগ্য


0

সমস্যা সমাধানের জন্য আমি অন্যান্য সমস্ত উত্তর চেষ্টা করেছি। এটি প্রদর্শিত হয় যখন আমি সেলিনাক্সকে অনুমতি অনুসারে সেট setenforce 0করি : আমি সার্ভারটি শুরু করতে পারি।

আমি তখন ডিরেক্টরিটিতে /var/lib/mysqlসেলিনাক্স অনুমতি দেওয়ার জন্য সক ডিরেক্টরিটি সংশোধন করেছি :

semanage fcontext -a -t mysqld_db_t "/var/lib/mysql(/.*)?"
restorecon -R -v -f /var/lib/mysql

একবার হয়ে গেলে, আমি মাইএসকিএল setenforce 1পরিষেবা শুরু করে সেলিনাক্স সক্ষম করেছিলাম এবং সবকিছু ঠিকঠাক ছিল।

আশা করি এটি অন্যকে সহায়তা করবে।

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