यह प्रश्न mariadb सर्वर का डुप्लिकेट नहीं है: मैं सर्वर को `mysql.server stop` से नहीं रोक सकता।

मैं मारियाडीबी को बूट पर नहीं चलाना चाहता, इसलिए brew services कोई विकल्प नहीं है।

मारियाडीबी संस्करण 10.4.11-MariaDB है।

4
sunknudsen 27 जिंदा 2020, 21:06

2 जवाब

सबसे बढ़िया उत्तर

सोचो मुझे अपराधी मिल गया।

mysql.server (cat /usr/local/bin/mysql.server) के स्रोत कोड पर एक नज़र डालने के बाद, मैंने पाया कि mysql.server start चलने से mysqld_safe मेरे (whoami) की तरह चलता है, जिसकी मुझे उम्मीद थी .

अब, मुझे यह भी पता चला कि mysql.server stop चलाने से एक su_kill फ़ंक्शन चलता है जो su को mysql के रूप में चलाता है जो विफल हो जाता है क्योंकि mysql उपयोगकर्ता macOS पर मौजूद नहीं है।

user='mysql'

su_kill() {
  if test "$USER" = "$user"; then
    kill $* >/dev/null 2>&1
  else
    su - $user -s /bin/sh -c "kill $*" >/dev/null 2>&1
  fi
}

सुनिश्चित नहीं है कि मैं कुछ गलत कर रहा हूं, लेकिन दस्तावेज़ीकरण के अनुसार , ब्रू इंस्टाल पर मारियाडीबी को शुरू करने का सही तरीका mysql.server start चलाना है।

किसी भी तरह, mysql.server stop को पैच करने के लिए, चलाएँ:

cp /usr/local/bin/mysql.server /usr/local/bin/mysql.server.backup
sed -i "" "s/user='mysql'/user=\`whoami\`/g" /usr/local/bin/mysql.server
10
sunknudsen 27 जिंदा 2020, 21:00

मूल रूप से, जब भी मैंने mysql.server stop की कोशिश की, मुझे त्रुटि मिलेगी:

ERROR! MySQL server PID file could not be found!

किसी बिंदु पर, mysql.server stop बस लटक जाएगा।

@ Sunknudsen के उत्तर की खोज करते हुए, मैंने निर्देशिका में cd'ed किया:

$ cd /usr/local/bin/

फिर फ़ाइल खोली:

mysql.server

कोड user='mysql' केवल एक पंक्ति पर दिखाई देता है, इसलिए मैंने अभी उस पंक्ति पर टिप्पणी की और इसे इसके साथ बदल दिया:

185 #user='mysql'
186 user=`whoami`

अब, यही होता है:

~$ mysql.server start
Starting MariaDB
.200804 15:43:28 mysqld_safe Logging to '/usr/local/var/mysql/My-MacBook-Pro-2.local.err'.
200804 15:43:29 mysqld_safe Starting mysqld daemon with databases from /usr/local/var/mysql
 SUCCESS! 

~$ mysql.server stop
Shutting down MariaDB
. SUCCESS! 

~$ mysql.server stop
ERROR! MariaDB server PID file could not be found!

System Preferences/MySQL में सही स्टार्ट/स्टॉप स्थिति भी दर्शाई गई है।

1
7stud 7 अगस्त 2020, 13:46