Beim Starten von MariaDB wurde [Warnung] angezeigt. Die Anzahl der max_open_files konnte nicht auf mehr als 1024 erhöht werden (Anfrage: 4607).
$ sudo systemctl status mysqld
● mysqld.service - MariaDB database server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled)
Active: activating (start-post) since Tue 2014-08-26 14:12:01 EST; 2s ago
Main PID: 8790 (mysqld); : 8791 (mysqld-post)
CGroup: /system.slice/mysqld.service
├─8790 /usr/bin/mysqld --pid-file=/run/mysqld/mysqld.pid
└─control
├─8791 /bin/sh /usr/bin/mysqld-post
└─8841 sleep 1
Aug 26 14:12:01 acpfg mysqld[8790]: 140826 14:12:01 [Warning] Could not increase number of max_open_files to more than 1024 (request: 4607)
Ich habe erfolglos versucht, das Problem mit max_open_files in dieser Datei zu beheben:
$ sudo nano /etc/security/limits.conf
mysql hard nofile 8192
mysql soft nofile 1200
Ich habe den Computer sogar neu gestartet, aber ich habe das gleiche Problem.
Die Datei /etc/mysql/my.cnf sieht folgendermaßen aus:
[mysql]
# CLIENT #
port = 3306
socket = /home/u/tmp/mysql/mysql.sock
[mysqld]
# GENERAL #
user = mysql
default-storage-engine = InnoDB
socket = /home/u/tmp/mysql/mysql.sock
pid-file = /home/u/tmp/mysql/mysql.pid
# MyISAM #
key-buffer-size = 32M
myisam-recover = FORCE,BACKUP
# SAFETY #
max-allowed-packet = 16M
max-connect-errors = 1000000
skip-name-resolve
sql-mode = STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ONLY_FULL_GROUP_BY
sysdate-is-now = 1
innodb = FORCE
innodb-strict-mode = 1
# DATA STORAGE #
datadir = /home/u/tmp/mysql/
# BINARY LOGGING #
log-bin = /home/u/tmp/mysql/mysql-bin
expire-logs-days = 14
sync-binlog = 1
# CACHES AND LIMITS #
tmp-table-size = 32M
max-heap-table-size = 32M
query-cache-type = 0
query-cache-size = 0
max-connections = 500
thread-cache-size = 50
open-files-limit = 65535
table-definition-cache = 1024
table-open-cache = 2048
# INNODB #
innodb-flush-method = O_DIRECT
innodb-log-files-in-group = 2
innodb-log-file-size = 128M
innodb-flush-log-at-trx-commit = 1
innodb-file-per-table = 1
innodb-buffer-pool-size = 2G
# LOGGING #
log-error = /home/u/tmp/mysql/mysql-error.log
log-queries-not-using-indexes = 1
slow-query-log = 1
slow-query-log-file = /home/u/tmp/mysql/mysql-slow.log
Wie ist es möglich, das Problem mit max_open_files zu beheben?
arch-linux
mysql
mariadb
user977828
quelle
quelle
Antworten:
Bearbeiten
/etc/security/limits.conf
und fügen Sie die folgenden Zeilen hinzudann neu starten.
Dann bearbeiten
/usr/lib/systemd/system/mysqld.service
oder/usr/lib/systemd/system/mariadb.service
und hinzufügenStarten Sie dann den Datenbankdienst neu:
quelle
/etc/systemd/system/mysql.service.d/limits.conf
or/etc/systemd/system/mariadb.service.d/limits.conf
Es hat bei mir einwandfrei funktioniertEin weiterer Grund ist, dass die:
Sie müssen auf die achten
table_open_cach
MySQL-Code in
mysqld.cc
versuchen Sie es mit einem niedrigeren
table_open_cach
Wertquelle
Sie können die offizielle Anweisung in der Datei mariadb.service sehen.
Es muss Ihr Betriebssystem neu starten. Obwohl ich denke, dass dies im offiziellen Handbuch geschrieben werden sollte ...
quelle
systemctl daemon-reload
neu starten. Ich musste nur beim Neustart von MariaDB ausgeführt werden.Ich hatte das gleiche Problem mit Ubuntu 15.10 und MySQL und habe es mit der vorherigen Antwort mit einigen kleinen Unterschieden behoben.
Ich habe mich zuerst
/etc/security/limits.conf
wie oben verändert .Ich fügte hinzu (nichts mehr)
zu
/lib/systemd/system/mysql.service
(kleiner Standortunterschied)und dann tat
quelle