ฉันต้องการเริ่มเซิร์ฟเวอร์ MySQL โดยอัตโนมัติเมื่อเริ่มต้น สิ่งนี้เป็นไปได้ใน Mavericks แต่ดูเหมือนว่าจะไม่ได้ผลกับ Yosemite
แก้ไข : ดูเหมือนว่าจะใช้ได้กับ El Capitan เช่นกัน
ฉันต้องการเริ่มเซิร์ฟเวอร์ MySQL โดยอัตโนมัติเมื่อเริ่มต้น สิ่งนี้เป็นไปได้ใน Mavericks แต่ดูเหมือนว่าจะไม่ได้ผลกับ Yosemite
แก้ไข : ดูเหมือนว่าจะใช้ได้กับ El Capitan เช่นกัน
คำตอบ:
@dcc ได้ใกล้มาก นี่คือวิธีที่ MySQL เริ่มต้นใหม่อีกครั้งบน Yosemite:
com.mysql.mysql.plist
ใน/Library/LaunchDaemons
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>com.mysql.mysqld</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld_safe</string>
<string>--user=mysql</string>
</array>
</dict>
</plist>
นอกจากนี้ฉันได้เปลี่ยนการอนุญาตตามคำตอบนี้
sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
sudo chmod 644 /Library/LaunchDaemons/com.mysql.mysql.plist
ในที่สุดฉันก็เรียกใช้คำสั่งนี้
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
หากคุณมีอะไรเพิ่มเติมโปรดแบ่งปันด้านล่าง!
sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist
การแก้ไขสำหรับเรื่องนี้คือที่คล้ายกัน: ฉันพบว่าไฟล์. plist ยังคงอยู่ในไดเร็กทอรี
ฉันทำตามคำแนะนำของ @Xaversและพยายามดำเนินการคำสั่ง
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
ได้รับข้อผิดพลาด:
/Library/LaunchDaemons/com.mysql.mysql.plist: รายการคุณสมบัติไม่ถูกต้อง
หลังจากเกาหัวของฉันสักครู่ฉันพบว่าการลบการประกาศ DOCTYPE DTD ที่ด้านบนทำให้ข้อผิดพลาดหายไปและเมื่อรีสตาร์ทเซิร์ฟเวอร์ mySQL ก็กำลังทำงานอยู่
XML ของฉันมีลักษณะดังนี้:
<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>com.mysql.mysqld</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld_safe</string>
<string>--user=mysql</string>
</array>
</dict>
</plist>
หากคุณติดตั้ง mysql ด้วย homebrewคุณสามารถรับคำแนะนำเกี่ยวกับวิธีการเริ่มอัตโนมัติได้โดยพิมพ์brew info mysql
ได้โดยการพิมพ์
ตัวอย่างเช่นผลลัพธ์บนเครื่องของฉันคือ:
To have launchd start mysql at login:
ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
Then to load mysql now:
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
สร้าง/Library/LaunchDaemons/com.mysql.mysql.plist
และบันทึกด้วย plist ต่อไปนี้:
<!--?xml version="1.0" encoding="UTF-8"?-->
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true>
<key>Label</key>
<string>com.mysql.mysqld</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld_safe</string>
<string>--user=mysql</string>
</array>
</true>
</dict>
</plist>
จากนั้นโหลดไฟล์ plist ที่สร้างขึ้นใหม่
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
apachectl start
เริ่มเซิร์ฟเวอร์!? เกี่ยวข้องกันไหม
sudo launchctl load -w...
โยนข้อผิดพลาดInvalid property list
บทความนี้ช่วยฉันแก้ไขปัญหาเกี่ยวกับข้อผิดพลาดที่ไม่ถูกต้อง แก้ไข plist ที่ฉันใช้ด้านล่าง
จะทราบได้อย่างไรว่าไฟล์ plist บรรทัดใดไม่ถูกต้อง
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList- 1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>com.mysql.mysqld</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld_safe</string>
<string>--user=mysql</string>
</array>
</dict>
</plist>
ไม่มีคำตอบอื่นใดที่สามารถใช้เพื่อเริ่มเซิร์ฟเวอร์ MySQL ของฉันโดยอัตโนมัติ ฉันทำตามคำแนะนำจากคู่มือ MySQL 5.6และในที่สุดมันก็เริ่มอัตโนมัติอีกครั้ง! สร้างไฟล์/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
ด้วยเนื้อหาต่อไปนี้:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key> <string>com.oracle.oss.mysql.mysqld</string>
<key>ProcessType</key> <string>Interactive</string>
<key>Disabled</key> <false/>
<key>RunAtLoad</key> <true/>
<key>KeepAlive</key> <true/>
<key>SessionCreate</key> <true/>
<key>LaunchOnlyOnce</key> <false/>
<key>UserName</key> <string>_mysql</string>
<key>GroupName</key> <string>_mysql</string>
<key>ExitTimeOut</key> <integer>600</integer>
<key>Program</key> <string>/usr/local/mysql/bin/mysqld</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld</string>
<string>--user=_mysql</string>
<string>--basedir=/usr/local/mysql</string>
<string>--datadir=/usr/local/mysql/data</string>
<string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
<string>--log-error=/usr/local/mysql/data/mysqld.local.err</string>
<string>--pid-file=/usr/local/mysql/data/mysqld.local.pid</string>
<string>--port=3306</string>
</array>
<key>WorkingDirectory</key> <string>/usr/local/mysql</string>
</dict>
</plist>
และรันคำสั่งต่อไปนี้หลังจากสร้างไฟล์:
cd /Library/LaunchDaemons
sudo launchctl load -F com.oracle.oss.mysql.mysqld.plist
เมื่อฉันใช้ plist ที่แนะนำในคำตอบก่อนหน้านี้ฉันเปลี่ยนผู้ใช้เป็น _mysql สำหรับระบบของฉัน แต่ปุ่ม "หยุดเซิร์ฟเวอร์ MySQL" ในบานหน้าต่างการกำหนดลักษณะ MySQL ไม่ทำงานอีกต่อไป KeepAlive
ที่สำคัญจะทำให้เกิดกระบวนการที่จะเปิดตัวอีกครั้งทันทีหลังจากที่กดปุ่ม Stop ฉันใช้คีย์RunAtLoad
เพื่อเริ่มต้นในการรีบูต แต่อนุญาตให้ปุ่มในบานหน้าต่างทำงานต่อไป
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>RunAtLoad</key>
<true/>
<key>Label</key>
<string>com.mysql.mysqld</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld_safe</string>
<string>--user=_mysql</string>
</array>
</dict>
</plist>
จากนั้นในคำตอบอื่น ๆ ให้รัน:
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
ตอนนี้ MySQL เปิดตัวเมื่อรีสตาร์ท แต่บานหน้าต่าง MySQL ใน System Preferences ยังคงใช้งานได้ ฉันใช้ El Capitan, 10.11.2