MySQL sunucusunu başlangıçta otomatik olarak başlatmak istiyorum. Bu Mavericks'te mümkündü ancak Yosemite üzerinde çalışmıyor gibi görünüyor.
edit : bu El Capitan ile de çalışıyor gibi görünüyor
Yanıtlar:
@dcc çok yakındı. MySQL, Yosemite'de yeniden otomatik olarak şu şekilde başlar:
com.mysql.mysql.plist
içinde /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>
Ayrıca bu cevaba göre izinleri değiştirdim
sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
sudo chmod 644 /Library/LaunchDaemons/com.mysql.mysql.plist
Sonunda bu komutu çalıştırıyorum
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
Herhangi bir ilaveniz varsa lütfen aşağıda paylaşın!
sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
sudo launchctl load -w /Library/LaunchDaemons/org.macports.apache2.plist
. .Plist dosyasının dizinde hala sağlam olduğunu buldum.
@ Xavers talimatlarını takip ettim ve komutu yerine getirmeye çalışırken
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
hata verildi:
/Library/LaunchDaemons/com.mysql.mysql.plist: Geçersiz özellik listesi
Bir dakikalığına kafamı tırmaladıktan sonra, en üstteki DOCTYPE DTD bildirimini kaldırmanın hatayı ortadan kaldırdığını ve mySQL sunucusunun yeniden başlatıldıktan sonra gerçekten çalıştığını gördüm.
Yani, XML'im şöyle görünüyor:
<?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>
Eğer varsa homebrew ile mysql yüklü , sen yazarak otomatik başlaması ile ilgili yönergeler alabilirsiniz brew info mysql
.
Örneğin, makinemdeki çıktı:
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
Aşağıdaki plist ile oluşturun ve kaydedin:
<!--?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>
Ardından yeni oluşturulan plist dosyasını yükleyin
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
apachectl start
sunucuyu başlatır !? ilişkili mi
sudo launchctl load -w...
Bir hata atarInvalid property list
Bu makale, geçersiz hatayla ilgili sorunu çözmeme yardımcı oluyor. Aşağıda kullandığım düzeltilmiş plist.
Hangi plist dosyası satırının yanlış olduğunu nasıl anlarım?
<?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>
Sağlanan diğer yanıtların hiçbiri MySQL sunucumu otomatik olarak başlatmak için çalışmadı. MySQL 5.6 el kitabındaki talimatları izledim ve sonunda tekrar otomatik olarak başlıyor! Dosyayı /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
aşağıdaki içeriğe sahip oluşturun :
<?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>
Ve dosyayı oluşturduktan sonra aşağıdaki komutları çalıştırın:
cd /Library/LaunchDaemons
sudo launchctl load -F com.oracle.oss.mysql.mysqld.plist
Önceki cevaplarda önerilen plist'i kullandığımda, kullanıcıyı sistemim için _mysql olarak değiştirdim, ancak MySQL tercih bölmesindeki "MySQL Sunucusunu Durdur" düğmesi artık çalışmıyordu. KeepAlive
Anahtar Durdurma düğmeye basıldıktan sonra süreç hemen tekrar başlatmak için neden olacaktır. RunAtLoad
Yeniden başlatmaya başlamak için anahtarı kullandım , ancak bölmedeki düğmenin çalışmaya devam etmesine izin verdim .
<?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>
Sonra diğer cevaplarda olduğu gibi koştu:
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
Şimdi, MySQL yeniden başlatıldığında başlıyor, ancak Sistem Tercihlerindeki MySQL bölmesi hala çalışıyor. El Capitan'ı yönetiyorum, 10.11.2