09 - MariaDB - Datenbank

Zuletzt aktualisiert am 2. Februar 2024 3 Minuten
brew update
brew install mariadb
brew services start mariadb

Datenbank absichern

sudo /usr/local/bin/mysql_secure_installation
Passwort = login pw

Datenbank neu starten

brew services restart mariadb

Wo ist die Konfiguration Datei?

  • /usr/local/cellar/mariadb/10.5.5/ - Da liegt das Programm
  • /usr/local/etc/my.cnf  - Diese Config-Datei bindet das Verzeichnis /usr/local/etc/my.cnf.d ein.
  • Ich habe mir dort eine eigene Datei angelegt: meine.cnf
#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]

#
# Meine Konfiguration
#
[mysqld]
lower_case_table_names=1

phpMyAdmin installieren

brew install phpmyadmin

phpMyAdmin muss im Apache aktiviert werden:

codium /usr/local/etc/httpd/httpd.conf

Folgende Zeilen einfügen:

Alias /phpmyadmin $(brew --prefix)/share/phpmyadmin

<Directory $(brew --prefix)/share/phpmyadmin/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order allow,deny
        Allow from all
    </IfModule>
</Directory>
sudo codium $(brew --prefix)/etc/phpmyadmin.config.inc.php

ERROR: ‘Out of resources when opening file 

Der mysql-Fehler: Keine Ressourcen mehr beim Öffnen der Datei… (Fehlercode: 24) zeigt an, dass die Anzahl der Dateien, die msyql öffnen darf, überschritten wurde. Diese Grenze wird durch die Variable open_files_limit kontrolliert.

Kommt wahlweise auch als Can't create table (errno: 24 "Too many open files")

Der Fehler trat auf als ich meine lokale Entwicklungsumgebung aufgebaut habe, und mein Duplicator Pro Wordpress-Backup installieren wollte.

Den MariaDB Monitor im Terminal öffnen:

sudo mariadb -u root
Password:
SHOW VARIABLES LIKE 'open%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| open_files_limit | 256   |
+------------------+-------+
1 row in set (0.001 sec)

Die aktuellen Grenzen auf meinem Mac OS X-System:

launchctl limit maxfiles
maxfiles    256            unlimited

Die letzten beiden Spalten zeigen die weiche und die harte Grenze.

Lösung(en)

Zwei Dateien erzeugen. Am Besten mit Mit BBEdit, denn zum Schreiben braucht es Admin-Rechte, und BBEdit fragt die ab. Andere Editoren bringen einfach nur einen SchreibFehler.

1.) Library/LaunchDaemons/limit.maxfiles.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>Label</key>
        <string>limit.maxfiles</string>
      <key>ProgramArguments</key>
        <array>
          <string>launchctl</string>
          <string>limit</string>
          <string>maxfiles</string>
          <string>200000</string>
          <string>200000</string>
        </array>
      <key>RunAtLoad</key>
        <true/>
      <key>ServiceIPC</key>
        <false/>
    </dict>
  </plist>

/Library/LaunchDaemons/limit.maxproc.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>Label</key>
        <string>limit.maxproc</string>
      <key>ProgramArguments</key>
        <array>
          <string>launchctl</string>
          <string>limit</string>
          <string>maxproc</string>
          <string>2048</string>
          <string>2048</string>
        </array>
      <key>RunAtLoad</key>
        <true />
      <key>ServiceIPC</key>
        <false />
    </dict>
  </plist>

Beide Plist-Dateien müssen root:wheel und -rw-r–r– Rechte haben. Die sollten standardmäßig vorhanden sein, aber ein zusätzliches sudo chmod 644 stellt sicher das dem auch so ist.

sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
sudo chown root:wheel /Library/LaunchDaemons/limit.maxproc.plist

Die systemweiten Grenzen für offene Dateien werden so beim Neustart korrekt gesetzt. Mit launchctl limit könnte ich das auch manuell durchführen….

sudo launchctl load -w /Library/LaunchDaemons/limit.maxfiles.plist
sudo launchctl load -w /Library/LaunchDaemons/limit.maxproc.plist

Wenn ich die Werte später nochmal ändern will, sollte ich die alten Daten vorher entladen:

sudo launchctl unload -w /Library/LaunchDaemons/limit.maxfiles.plist
sudo launchctl unload -w /Library/LaunchDaemons/limit.maxproc.plist

An diesem Punkt den Computer einmal neu starten, und das Ergebnis überprüfen:

sudo mariadb -u root
Password:
MariaDB [(none)]> SHOW VARIABLES LIKE 'open%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| open_files_limit | 32190 |
+------------------+-------+
1 row in set (0.001 sec)

MariaDB [(none)]>
  • -u The maximum number of processes available to a single user.
  • -n The maximum number of open file descriptors.
ulimit -n
200000
ulimit -u
2048