Configuratiebestanden (MySQL)
Altijd verwarrend waar je systeeminstellingen van MySQL aanpast. Daarnaast is MySQL nogal kritisch als het om wijzigingen gaat. Er zijn twee soorten bestanden: Systeem-wijde instellingen in /etc en gebruiker-specifieke instellingen in ~/. Dit artikel gaat vooral over deze eerste.
Spoorzoeken
Er is een verwarrend woud aan placeholder-configuratiebestanden, die ook nog 's allemaal naar elkaar lijken te verwijzen:
/etc
* /etc/mysql/ * debian.cnf * debian-start * my.cnf → /etc/alternatives/my.cnf → /etc/mysql/mysql.cnf (echt waar!) * my.cnf.fallback * mysql.cnf * mysql.conf.d/ * mysqld.cnf * mysqld_safe_syslog.cnf
Maar daar houdt het niet op, want dit is de inhoud van de 'placeholder' files hierboven:
!includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mysql.conf.d/
Home dir
In je home dit heb je een bestand .my.cnf
.
Niet meer spoorzoeken
Zie de uitleg in bestand mysql.cnf.
Voor systeem-brede aanpassingen:
sudo rm /etc/mysql my.cnf sudo cp /etc/mysql/mysql.cnf my.cnf
Gebruik nu bestand my.cnf
voor eigen instellingen.
Verder vind je default-instellingen in /etc/mysql/mysql.conf.d
- Handig om dingen af te kijken.
.my.cnf
In je home dir staat doorgaans een bestand .my.cnf
. Mijn versie (licht bijgewerkt, april 2020):
################################################################################################ # [Client] ################################################################################################ # [client] host = localhost socket = /var/run/mysqld/mysqld.sock # Specifying user & password to avoid authentication #################################################### # user = supervrouw password = mijnwachtwoord # Include comments when importing sql-files #################################################### # comments = true ################################################################################################ # [mysqldump] ################################################################################################ # [mysqldump] # Include sprocs & functions when making dumps ############################################## # routines = true # Continue with dump despite errors in views ############################################## # force = true
Backups
Configuratiebestanden moeten welliswaar de extensie .cnf
hebben, maar niet alle bestanden met de extensie .cnf
worden automatisch uitgevoerd. Je kunt dus backups maken met namen zoals my.cnf.bk01
.
Voorbeeld: Aanpassen secure_file_priv
Vantevoren:
mysql> show variables like "secure_file_priv"; +------------------+----------------------------+ | Variable_name | Value | +------------------+----------------------------+ | secure_file_priv | /var/lib/mysql-files/ | +------------------+----------------------------+ 1 row in set (0,00 sec)
Ik heb bestand /etc/mysql/my.cnf
aangepast. Dit is nu het hele bestand:
!includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mysql.conf.d/ ################################################## # HERE IS MY OWN STUFF - STROMPF ################################################## # [mysqld] secure-file-priv = ""
En het werkt:
mysql> show variables like "secure_file_priv"; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | secure_file_priv | | +------------------+-------+ 1 row in set (0,00 sec)
Voorbeeld: Mijn /etc/mysql/my.cnf (zomer 2018)
########################################################################### # Strompf ########################################################################### # [mysqld] # Datadir is in my Dropbox ########################## # # Werkt niet! # # datadir = /home/strompf/Dropbox/.mysql/storage # Remove I/O path restrictions ############################## # secure_file_priv="" # Enable longer concat string ############################# # group_concat_max_len = 300000 # Disable MySQL Strict Mode ########################### # sql_mode=""