Mac'te sudo komutu nasıl çalıştırılır? .. mysql sunucusu ile sorun


0

Mysql sunucuyu brew ile kurdum ve bilgisayarımın düzenleyemediğim bir uygulamayla çalışması için her başlatışımda bu komutu el ile çalıştırmam gerekiyor.

sudo mkdir -p -- /var/run/mysqld/ ; sudo ln -s /tmp/mysql.sock /var/run/mysqld/mysqld.sock

Bunu otomatik olarak aramak için ne yapabilirim? Automator'ı denedim ama her seferinde şifremi girmek istemiyorum, bunu çalıştırmanın veya düzeltmenin doğru yolu nedir? (izinleri değiştirebilir ve bunu normal kullanıcı olarak çalıştırabilir)

Mysql root ile değil normal kullanıcımla çalışıyor.


Denediniz mi AppleScript?
Bretonik

Yanıtlar:


1

OS X Yosemite'de betiği içine eklemelisiniz:

/Library/LaunchDaemons

komut dosyası için bu adı kullanarak:

com.mysql.mysql.plist

ve bu içerik:

<!--?xml version="1.0" encoding="UTF-8"?-->
<plist version="1.0">
  <dict>
    <key>KeepAlive</key>
    <dict>
       <key>SuccessfulExit</key>
       <false/>
    </dict>
    <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>

Mac'i her yeniden başlattığınızda MySQL'in otomatik olarak başlatılmasını sağlayacaksınız.

komut dosyasına uygun ayrıcalıklar ayarladığınızdan emin olun:

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

MAMP PRO'dan taşınırken sadece OS X 10.10.2'de test edilmiştir ve bir esinti gibi çalışır :-)


0

Dizini Launch Agentiçine oluşturabilir ve yerleştirebilirsiniz /Library/LaunchAgents. Bu, kodunuzun olarak çalıştırılmasını sağlayacaktır root. İşte Başlatıcı Ajanlar hakkında Apple belgelerine . Basit bir dosya oluşturmanız gerekecek, şöyle görünecek:

<?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>Label</key>
    <string>com.mysql.script</string>
    <key>ProgramArguments</key>
    <array>
        <string>/bin/sh</string>
        <string>-c</string>
        <string>/path/to/your/script.sh</string>
    </array>
    <key>LimitLoadToSessionType</key>
    <string>Aqua</string>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

chownKök olarak kaydedin . Komut dosyanızın ayrıca root tarafından sahiplenilmesi ve çalıştırılabilir olması gerekir. Bununla betiğiniz giriş yaptıktan sonra her zaman çalıştırılır.

NOT: Bu plist dosyasındaki betiğinizin yolunu değiştirin.


Kullanıcı klasörüne yerleştirmek mümkün mü? ~ / Library / LaunchAgents
Arnold Roa

@ArnoldRoa Kullanıcı Başına Başlatma Ajanı, kök (UID) değil, kullanıcı olarak çalıştırılır.
UID'ler
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.