Auf Ubuntu können Sie den Befehl verwenden, locate my.cnfum herauszufinden, wo sich all diese Dateinamen befinden
evilReiko
Antworten:
571
Es gibt keinen internen MySQL-Befehl, um dies zu verfolgen, es ist etwas zu abstrakt. Die Datei befindet sich möglicherweise an 5 (oder mehr?) Speicherorten, und alle sind gültig, da sie kaskadierend geladen werden.
/etc/my.cnf
/etc/mysql/my.cnf
$ MYSQL_HOME / my.cnf
[datadir] /my.cnf
~ / .my.cnf
Dies sind die Standardspeicherorte, die MySQL betrachtet. Wenn mehr als einer gefunden wird, wird jeder von ihnen geladen und die Werte überschreiben sich gegenseitig (in der angegebenen Reihenfolge, glaube ich). Außerdem kann der --defaults-fileParameter das Ganze überschreiben, also ... im Grunde ist es ein großer Schmerz im Hintern.
Aber da es so verwirrend ist, besteht eine gute Chance, dass es nur in /etc/my.cnf ist.
(Wenn Sie nur die Werte anzeigen möchten, SHOW VARIABLESbenötigen Sie jedoch die entsprechenden Berechtigungen.)
Stellen Sie sicher, dass Sie den MySQL-Server nach dem Bearbeiten von my.cnf neu starten : /etc/init.d/mysqld restart.
Danijel
4
Für mich (AWS EC2 Ubuntu) my.cnfbefindet sich in /etc/mysql/my.cnf.
SparkAndShine
58
Laufen mysql --helpSie und Sie werden sehen Default options are read from the following files in the given order: /etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf
Hanxue
2
In meinem Fall gab es einen Symlink, der etc/mysql/my.cnfauf einen anderen Symlink zeigte, /etc/alternatives/my.cnfder auf zeigt etc/mysql/mysql.cnf.
Martin Schneider
3
ls /etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf
Joshua Robinson
194
Sie können MySQL tatsächlich nach einer Liste aller Speicherorte "anfordern", an denen nach my.cnf (oder my.ini unter Windows) gesucht wird. Es ist jedoch keine SQL-Abfrage. Führen Sie stattdessen Folgendes aus:
$ mysqladmin --help
oder vor 5.7:
$ mysqld --help --verbose
In den ersten Zeilen finden Sie eine Nachricht mit einer Liste aller gesuchten my.cnf-Speicherorte. Auf meiner Maschine ist es:
Default options are readfrom the following files in the given order:/etc/my.cnf
/etc/mysql/my.cnf
/usr/etc/my.cnf
~/.my.cnf
Oder unter Windows:
Default options are readfrom the following files in the given order:
C:\Windows\my.ini
C:\Windows\my.cnf
C:\my.ini
C:\my.cnf
C:\Program Files\MySQL\MySQL Server 5.5\my.ini
C:\Program Files\MySQL\MySQL Server 5.5\my.cnf
Beachten Sie jedoch, dass an keinem dieser Speicherorte eine my.cnf-Datei vorhanden sein kann . Sie können die Datei also selbst erstellen - verwenden Sie eine der mit der MySQL-Distribution bereitgestellten Beispielkonfigurationsdateien (unter Linux - sehen Sie sich die /usr/share/mysql/*.cnfDateien an und verwenden Sie die für Sie geeignete Datei - kopieren Sie sie in /etc/my.cnfund ändern Sie sie nach Bedarf).
Beachten Sie außerdem, dass es auch eine Befehlszeilenoption gibt,--defaults-file die einen benutzerdefinierten Pfad zur Datei my.cnf oder my.ini definieren kann. Dies ist beispielsweise bei MySQL 5.5 unter Windows der Fall - es verweist auf eine my.ini-Datei im Datenverzeichnis, die normalerweise nicht mit aufgeführt ist mysqld --help --verbose. Unter Windows - Sehen Sie in den Diensteigenschaften nach, ob dies bei Ihnen der Fall ist.
Sah vielversprechend aus, aber in meiner Distribution (opencsw.org) gibt es keine mysqld. Es läuft mysqld_safe. "mysqld_safe --verbose --help" wird nicht erkannt.
Lawrence I. Siden
Als ich es ausführte, bekam ich Folgendes: Default options are read from the following files in the given order: /etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf - Ich erwartete die ersten 2 Dateien in umgekehrter Reihenfolge.
Yitwail
Die von veröffentlichten Informationen mysqld --help --verbosewidersprechen den Angaben in dev.mysql.com/doc/refman/5.5/en/option-files.html . Nach meiner Erfahrung mit Version 5.6 sind die Informationen auf der Website am korrektesten und relevantesten. Die Priorität des durch den Befehl help angegebenen Speicherorts für Dateien ist irreführend und führt zu negativen Ergebnissen.
Amateur Barista
Auf meinem alten Fedora war es mysql --help --verbose
Danny Schoemann
1
Beachten Sie, dass ich die Größe des cmd-Puffers auf 3000 erhöhen musste, um die ersten Zeilen tatsächlich sehen zu können. Andernfalls wurde der Text einfach überschrieben. Wenn sie "wortreich" sagen, meinen sie es anscheinend so.
Wesley Smith
61
Sie können find immer in einem Terminal ausführen.
Es ist der schwierige Weg :( Gibt es einen MySQL-Befehl wie phpinfo (), um den Speicherort der Konfigurationsdatei zu ermitteln?
Robinmag
find / -name my.cnfist Ihre beste Wahl, aber Sie können auch Ihr Home-Verzeichnis und /etc/mysql/my.conf überprüfen. Sie können auch sehen, ob Ihr MYSQL_HOME eingestellt ist, indem Sie echo $MYSQL_HOMEein Terminal
eingeben
11
Wow, das würde auf den meisten Maschinen ewig dauern. In den meisten modernen Linux-Versionen ist locate installiert. Solange updateb regelmäßig ausgeführt wird, können Sie Folgendes ausführen: find my.cnf | weniger
Dark Castle
6
Dies zeigt nur, welche Dateien my.cnf heißen. Es sagt Ihnen nicht, welche auf dem mysqld-Prozess gefunden und geöffnet wurden.
Lawrence I. Siden
3
Dies wird nicht gefunden ~/.my.cnf- beachten Sie den führenden Punkt im Dateinamen. Wenn Sie auch eine Suche über das gesamte Dateisystem ausführen, werden in der Regel Fehler mit "Berechtigung verweigert" generiert, es sei denn, Sie sind Root. Der Befehl find sollte also lauten find / -name '*my.cnf' 2>/dev/null.
Große Mine war bei /etc/mysql/my.cnf in Ubuntu 12.0.1 auf EC2
Maziyar
1
whereiswird hier nicht funktionieren; Es sucht nach den Speicherorten, die einem Befehl entsprechen , und kann keine beliebigen Dateien finden.
Mark Amery
1
Und aktualisiertb, um die Liste zu aktualisieren, geht durch - wenn my.cnf nicht indiziert war
WoodyDRN
23
Dies könnte funktionieren:
strace mysql ";"2>&1| grep cnf
Auf meinem Computer wird Folgendes ausgegeben:
stat64("/etc/my.cnf",0xbf9faafc)=-1 ENOENT (No such fileor directory)
stat64("/etc/mysql/my.cnf",{st_mode=S_IFREG|0644, st_size=4271,...})=0open("/etc/mysql/my.cnf", O_RDONLY|O_LARGEFILE)=3read(3,"# /etc/mysql/my.cnf: The global "...,4096)=4096
stat64("/home/xxxxx/.my.cnf",0xbf9faafc)=-1 ENOENT (No such fileor directory)
Es sieht also so aus, als ob /etc/mysql/my.cnf derjenige ist, da stat64 () und read () erfolgreich waren.
Standardmäßig durchsucht MySQL zuerst my.cnf im Ordner / etc. Wenn sich in diesem Ordner keine Datei /etc/my.cnf befindet, empfehle ich Ihnen, eine neue Datei in diesem Ordner zu erstellen, wie in der Dokumentation angegeben ( https://dev.mysql.com/doc/refman/5.6/en/option) -files.html ).
Sie können auch nach vorhandenen my.cnf suchen, die von Ihrer MySQL-Installation bereitgestellt wurden. Sie können den folgenden Befehl starten
sudo find /-name "*.cnf"
Sie können die folgende Konfigurationsdatei mit myisam-Tabelle und ohne innodb-MySQL-Unterstützung verwenden (von der Port-Installation von MySQL auf Mac OS X Maverick). Bitte überprüfen Sie jeden Befehl in dieser Konfigurationsdatei.
# Example MySQL config filefor large systems.## This isfor a large system with memory =512M where the system runs mainly
# MySQL.## MySQL programs look foroption files in a setof# locations which depend on the deployment platform.# You can copy this optionfileto one of those
# locations.For information about these locations, see:# http://dev.mysql.com/doc/mysql/en/option-files.html
##In this file, you can useall long options that a program supports.#If you want to know which options a program supports, run the program
#with the "--help"option.# The following options will be passed toall MySQL clients
[client]#password = your_password
port =3306
socket =/opt/local/var/run/mysql5/mysqld.sock
# Here follows entries forsome specific programs
# The MySQL server
[mysqld]
port =3306
socket =/opt/local/var/run/mysql5/mysqld.sock
skip-locking
key_buffer_size =256M
max_allowed_packet =1M
table_open_cache =256
sort_buffer_size =1M
read_buffer_size =1M
read_rnd_buffer_size =4M
myisam_sort_buffer_size =64M
thread_cache_size =8
query_cache_size=16M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8
# Don't listen on a TCP/IP port at all. This can be a security enhancement,#ifall processes that need toconnectto mysqld run on the same host.#All interaction with mysqld must be made via Unix sockets or named pipes.# Note that using this option without enabling named pipes on Windows
#(via the "enable-named-pipe"option) will render mysqld useless!##skip-networking
#Replication Master Server (default)# binary logging is required forreplication
log-bin=mysql-bin
# binary logging format - mixed recommended
binlog_format=mixed
# required unique id between1and2^32-1# defaults to1if master-host isnotset# but will notfunctionas a master if omitted
server-id =1#Replication Slave (comment out master section touse this)##To configure this host as a replication slave, you can choose between# two methods :##1)Use the CHANGE MASTER TO command (fully described in our manual)-# the syntax is:## CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>,# MASTER_USER=<user>, MASTER_PASSWORD=<password>;##where you replace <host>,<user>,<password>by quoted strings and#<port>by the master's port number (3306 by default).
#
# Example:
#
# CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,
# MASTER_USER='joe', MASTER_PASSWORD='secret';
#
# OR
#
# 2) Set the variables below. However, in case you choose this method, then
# start replication for the first time (even unsuccessfully, for example
# if you mistyped the password in master-password and the slave fails to
# connect), the slave will create a master.info file, and any later
# change in this file to the variables'values below will be ignored and# overridden by the content of the master.info file, unless you shutdown# the slave server,delete master.info and restart the slaver server.#For that reason, you may want to leave the lines below untouched
#(commented)and instead use CHANGE MASTER TO(see above)## required unique id between2and2^32-1#(and different from the master)# defaults to2if master-host isset# but will notfunctionas a slave if omitted
#server-id =2## The replication master for this slave - required
#master-host =<hostname>## The username the slave will usefor authentication when connecting
#to the master - required
#master-user =<username>## The password the slave will authenticate withwhen connecting to# the master - required
#master-password =<password>## The port the master is listening on.# optional - defaults to3306#master-port =<port>## binary logging -not required for slaves, but recommended
#log-bin=mysql-bin
# Uncomment the followingif you are using InnoDB tables
#innodb_data_home_dir =/opt/local/var/db/mysql5
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir =/opt/local/var/db/mysql5
# You can set.._buffer_pool_size up to50-80%#of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size =256M
#innodb_additional_mem_pool_size =20M
#Set.._log_file_size to25%of buffer pool size
#innodb_log_file_size =64M
#innodb_log_buffer_size =8M
#innodb_flush_log_at_trx_commit =1#innodb_lock_wait_timeout =50[mysqldump]
quick
max_allowed_packet =16M
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
[myisamchk]
key_buffer_size =128M
sort_buffer_size =128M
read_buffer =2M
write_buffer =2M
[mysqlhotcopy]
interactive-timeout
Wie von konyak festgestellt, können Sie die Liste der Orte abrufen, an denen mysql nach Ihrer my.cnfDatei sucht, indem Sie sie ausführen mysqladmin --help. Da dies ziemlich ausführlich ist, können Sie schnell zu dem Teil gelangen, den Sie interessieren:
$ mysqladmin --help | grep -A1 'Default options'
Dadurch erhalten Sie eine Ausgabe ähnlich der folgenden:
Default options are readfrom the following files in the given order:/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf
Abhängig davon, wie Sie MySQL installiert haben, ist möglicherweise noch keine dieser Dateien vorhanden. Sie können catsie verwenden, um zu sehen, wie Ihre Konfiguration erstellt wird, und my.cnfbei Bedarf Ihre eigene Konfiguration an Ihrem bevorzugten Standort erstellen .
Erhielt einen Fehler "Speicherort der MySQL-Konfigurationsdatei (dh: my.cnf) nicht angegeben"
Sukesh Kotian
2
Alles gute Vorschläge, in meinem Fall habe ich es an keinem dieser Orte gefunden, aber in habe /usr/share/mysqlich eine RHEL-VM und ich habe sie installiertmysql5.5
auf Ubuntu 18 funktioniert dieser für mich: /etc/mysql/mysql.conf.d/mysqld.cnf
user9869932
0
Ich habe das xampp-Bundle mit apache, php and mysqlin Ubuntu installiert . Dort my.cnfbefindet sich die Datei im /opt/lampp/etc/Ordner. Hoffe es wird jemandem helfen.
Für mich war es so, dass ich Tabellen vom Typ "ENGINE = MyISAM" hatte, nachdem ich sie in "ENGINE = InnoDB" geändert hatte, funktionierte es :) in PhpMyAdmin im Azure App Service :)
Wenn Sie sich in einem VPS befinden und versuchen, eine my.cnf auf einem bereits laufenden Server zu bearbeiten, können Sie Folgendes versuchen:
ps aux | grep mysql
Sie sehen die Parameter, auf die der Befehl mysql ausgeführt wird, und die Verweise --defaults-filedarauf
Beachten Sie, dass auf Ihrem Server möglicherweise mehr als ein MySQL / MariaDB-Server ausgeführt wird. Wenn Sie eine Zeile ohne --defaults-fileParameter sehen, ruft diese Instanz möglicherweise die Konfiguration aus den CNFs ab, auf denen erwähnt wird, mysqladmin --helpwie andere bereits erwähnt haben.
Beachten Sie, dass mariadDB zwar Konfigurationsdetails aus den verschiedenen my.cnf-Dateien lädt, wie in den anderen Antworten hier aufgeführt, sie jedoch auch aus anderen Dateien mit unterschiedlichen Namen laden kann.
Das heißt, wenn Sie eine Änderung an einer der my.cnf-Dateien vornehmen, wird diese möglicherweise von einer anderen Datei mit einem anderen Namen überschrieben. Damit die Änderung erhalten bleibt, müssen Sie sie in der richtigen (zuletzt geladenen) Konfigurationsdatei ändern - oder möglicherweise in allen.
Wie finden Sie alle Konfigurationsdateien, die möglicherweise geladen werden? Versuchen Sie, anstatt nach my.cnf-Dateien zu suchen, Folgendes auszuführen:
grep -r datadir /etc/mysql/
Hier finden Sie alle Stellen, an denen Datadir erwähnt wird. In meinem Fall ergibt sich folgende Antwort:
Wenn ich diese Datei (/etc/mysql/mariadb.conf.d/50-server.cnf) bearbeite, um den Wert für datadir zu ändern, funktioniert dies, während dies in my.cnf nicht der Fall ist. Welche Option Sie auch ändern möchten, suchen Sie auf diese Weise.
locate my.cnf
um herauszufinden, wo sich all diese Dateinamen befindenAntworten:
Es gibt keinen internen MySQL-Befehl, um dies zu verfolgen, es ist etwas zu abstrakt. Die Datei befindet sich möglicherweise an 5 (oder mehr?) Speicherorten, und alle sind gültig, da sie kaskadierend geladen werden.
Dies sind die Standardspeicherorte, die MySQL betrachtet. Wenn mehr als einer gefunden wird, wird jeder von ihnen geladen und die Werte überschreiben sich gegenseitig (in der angegebenen Reihenfolge, glaube ich). Außerdem kann der
--defaults-file
Parameter das Ganze überschreiben, also ... im Grunde ist es ein großer Schmerz im Hintern.Aber da es so verwirrend ist, besteht eine gute Chance, dass es nur in /etc/my.cnf ist.
(Wenn Sie nur die Werte anzeigen möchten,
SHOW VARIABLES
benötigen Sie jedoch die entsprechenden Berechtigungen.)quelle
/etc/init.d/mysqld restart
.my.cnf
befindet sich in/etc/mysql/my.cnf
.mysql --help
Sie und Sie werden sehenDefault options are read from the following files in the given order: /etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf
etc/mysql/my.cnf
auf einen anderen Symlink zeigte,/etc/alternatives/my.cnf
der auf zeigtetc/mysql/mysql.cnf
.ls /etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf
Sie können MySQL tatsächlich nach einer Liste aller Speicherorte "anfordern", an denen nach my.cnf (oder my.ini unter Windows) gesucht wird. Es ist jedoch keine SQL-Abfrage. Führen Sie stattdessen Folgendes aus:
oder vor 5.7:
In den ersten Zeilen finden Sie eine Nachricht mit einer Liste aller gesuchten my.cnf-Speicherorte. Auf meiner Maschine ist es:
Oder unter Windows:
Beachten Sie jedoch, dass an keinem dieser Speicherorte eine my.cnf-Datei vorhanden sein kann . Sie können die Datei also selbst erstellen - verwenden Sie eine der mit der MySQL-Distribution bereitgestellten Beispielkonfigurationsdateien (unter Linux - sehen Sie sich die
/usr/share/mysql/*.cnf
Dateien an und verwenden Sie die für Sie geeignete Datei - kopieren Sie sie in/etc/my.cnf
und ändern Sie sie nach Bedarf).Beachten Sie außerdem, dass es auch eine Befehlszeilenoption gibt,
--defaults-file
die einen benutzerdefinierten Pfad zur Datei my.cnf oder my.ini definieren kann. Dies ist beispielsweise bei MySQL 5.5 unter Windows der Fall - es verweist auf eine my.ini-Datei im Datenverzeichnis, die normalerweise nicht mit aufgeführt istmysqld --help --verbose
. Unter Windows - Sehen Sie in den Diensteigenschaften nach, ob dies bei Ihnen der Fall ist.Überprüfen Sie abschließend die https://dev.mysql.com/doc/refman/8.0/en/option-files.html - sie wird dort ausführlicher beschrieben.
quelle
Default options are read from the following files in the given order: /etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf
- Ich erwartete die ersten 2 Dateien in umgekehrter Reihenfolge.mysqld --help --verbose
widersprechen den Angaben in dev.mysql.com/doc/refman/5.5/en/option-files.html . Nach meiner Erfahrung mit Version 5.6 sind die Informationen auf der Website am korrektesten und relevantesten. Die Priorität des durch den Befehl help angegebenen Speicherorts für Dateien ist irreführend und führt zu negativen Ergebnissen.Sie können find immer in einem Terminal ausführen.
quelle
find / -name my.cnf
ist Ihre beste Wahl, aber Sie können auch Ihr Home-Verzeichnis und /etc/mysql/my.conf überprüfen. Sie können auch sehen, ob Ihr MYSQL_HOME eingestellt ist, indem Sieecho $MYSQL_HOME
ein Terminal~/.my.cnf
- beachten Sie den führenden Punkt im Dateinamen. Wenn Sie auch eine Suche über das gesamte Dateisystem ausführen, werden in der Regel Fehler mit "Berechtigung verweigert" generiert, es sei denn, Sie sind Root. Der Befehl find sollte also lautenfind / -name '*my.cnf' 2>/dev/null
.Sie können verwenden:
quelle
whereis
wird hier nicht funktionieren; Es sucht nach den Speicherorten, die einem Befehl entsprechen , und kann keine beliebigen Dateien finden.Dies könnte funktionieren:
Auf meinem Computer wird Folgendes ausgegeben:
Es sieht also so aus, als ob /etc/mysql/my.cnf derjenige ist, da stat64 () und read () erfolgreich waren.
quelle
wird Ihnen sagen, wo
my.cnf
sich auf Mac / Linux befindetIn diesem Fall ist es in
/etc/mysql/my.cnf
In diesem Fall ist es in
/usr/local/etc/my.cnf
quelle
Standardmäßig durchsucht MySQL zuerst my.cnf im Ordner / etc. Wenn sich in diesem Ordner keine Datei /etc/my.cnf befindet, empfehle ich Ihnen, eine neue Datei in diesem Ordner zu erstellen, wie in der Dokumentation angegeben ( https://dev.mysql.com/doc/refman/5.6/en/option) -files.html ).
Sie können auch nach vorhandenen my.cnf suchen, die von Ihrer MySQL-Installation bereitgestellt wurden. Sie können den folgenden Befehl starten
Sie können die folgende Konfigurationsdatei mit myisam-Tabelle und ohne innodb-MySQL-Unterstützung verwenden (von der Port-Installation von MySQL auf Mac OS X Maverick). Bitte überprüfen Sie jeden Befehl in dieser Konfigurationsdatei.
quelle
Wie von konyak festgestellt, können Sie die Liste der Orte abrufen, an denen mysql nach Ihrer
my.cnf
Datei sucht, indem Sie sie ausführenmysqladmin --help
. Da dies ziemlich ausführlich ist, können Sie schnell zu dem Teil gelangen, den Sie interessieren:Dadurch erhalten Sie eine Ausgabe ähnlich der folgenden:
Abhängig davon, wie Sie MySQL installiert haben, ist möglicherweise noch keine dieser Dateien vorhanden. Sie können
cat
sie verwenden, um zu sehen, wie Ihre Konfiguration erstellt wird, undmy.cnf
bei Bedarf Ihre eigene Konfiguration an Ihrem bevorzugten Standort erstellen .quelle
Für Ubuntu 16: /etc/mysql/mysql.conf.d/mysqld.cnf
quelle
For Ubuntu 16: /etc/mysql/mysql.conf.d/mysqld.cnf
Ich weiß nicht, wie Sie MySQL in Ihrer Linux-Umgebung eingerichtet haben, aber haben Sie dies überprüft?
quelle
Versuche zu rennen
mysqld --help --verbose | grep my.cnf | tr " " "\n"
Die Ausgabe wird so etwas wie sein
quelle
Wenn Sie mit Homebrew auf einem Mac arbeiten, verwenden Sie
Du wirst so etwas sehen
Diese letzte Zeile entspricht
INSTALLERDIR
den MySQL-Dokumentenquelle
Fand meine mit
quelle
Eine andere Möglichkeit ist die Verwendung des Befehls whereis.
ZB wo ist my.cnf
quelle
Nur für MySQL Workbench-Benutzer beantwortet,
quelle
Alles gute Vorschläge, in meinem Fall habe ich es an keinem dieser Orte gefunden, aber in habe
/usr/share/mysql
ich eine RHEL-VM und ich habe sie installiertmysql5.5
quelle
Abhängig von Ihrer MySQL-Version müssen Sie die verschiedenen Speicherorte durchsuchen.
quelle
Sie können diesen Befehl auch ausführen.
mysql --help | grep cnf
quelle
grep
mitfindstr
:mysql --help | findstr cnf
und es hat die MagieUnter Ubuntu (direkte Bearbeitung):
quelle
/etc/mysql/mysql.conf.d/mysqld.cnf
Ich habe das xampp-Bundle mit
apache, php and mysql
in Ubuntu installiert . Dortmy.cnf
befindet sich die Datei im/opt/lampp/etc/
Ordner. Hoffe es wird jemandem helfen.quelle
Wenn Sie MAMP verwenden, greifen Sie auf Vorlagen> MySQL (my.cnf)> [Version] zu.
Wenn Sie MAMP fensterlos ausführen, müssen Sie möglicherweise die Symbolleiste über die Schaltfläche Anpassen anpassen.
quelle
Für mich war es so, dass ich Tabellen vom Typ "ENGINE = MyISAM" hatte, nachdem ich sie in "ENGINE = InnoDB" geändert hatte, funktionierte es :) in PhpMyAdmin im Azure App Service :)
quelle
Wenn Sie sich in einem VPS befinden und versuchen, eine my.cnf auf einem bereits laufenden Server zu bearbeiten, können Sie Folgendes versuchen:
Sie sehen die Parameter, auf die der Befehl mysql ausgeführt wird, und die Verweise
--defaults-file
daraufBeachten Sie, dass auf Ihrem Server möglicherweise mehr als ein MySQL / MariaDB-Server ausgeführt wird. Wenn Sie eine Zeile ohne
--defaults-file
Parameter sehen, ruft diese Instanz möglicherweise die Konfiguration aus den CNFs ab, auf denen erwähnt wird,mysqladmin --help
wie andere bereits erwähnt haben.quelle
Beachten Sie, dass mariadDB zwar Konfigurationsdetails aus den verschiedenen my.cnf-Dateien lädt, wie in den anderen Antworten hier aufgeführt, sie jedoch auch aus anderen Dateien mit unterschiedlichen Namen laden kann.
Das heißt, wenn Sie eine Änderung an einer der my.cnf-Dateien vornehmen, wird diese möglicherweise von einer anderen Datei mit einem anderen Namen überschrieben. Damit die Änderung erhalten bleibt, müssen Sie sie in der richtigen (zuletzt geladenen) Konfigurationsdatei ändern - oder möglicherweise in allen.
Wie finden Sie alle Konfigurationsdateien, die möglicherweise geladen werden? Versuchen Sie, anstatt nach my.cnf-Dateien zu suchen, Folgendes auszuführen:
Hier finden Sie alle Stellen, an denen Datadir erwähnt wird. In meinem Fall ergibt sich folgende Antwort:
Wenn ich diese Datei (/etc/mysql/mariadb.conf.d/50-server.cnf) bearbeite, um den Wert für datadir zu ändern, funktioniert dies, während dies in my.cnf nicht der Fall ist. Welche Option Sie auch ändern möchten, suchen Sie auf diese Weise.
quelle
Es hängt von Ihrem Zugriffsrecht ab, aber für mich funktioniert diese Arbeit auf der phpmyadmin SQL-Konsole
VARIABLEN ANZEIGEN;
Danach können Sie einige Variablen ändern
SET GLOBAL max_connections = 1000;
oder
SET @@ GLOBAL.max_connections = 1000;
Versuche es
quelle