Configuratiebestanden (MySQL)
In MySQL kun je instellingen configureren per gebruiker, of per systeem. Beiden worden in dit artikel behandeld.
Let op: MySQL is nogal kritisch als het om wijzigingen gaat. Daarom maak ik soms een backup voor ik iets om zeep help. Als het om MySQL-configuratiebestanden gaat, voeg ik een extensie aan het eind toe. Bv. my.cnf.bk01
.
.my.cnf
.my.cnf
is het configuratiebestand met gebruiker-specifieke instellingen. Dit bestand staat doorgaans direct in je home dir. Mijn versie (licht bijgewerkt, april 2020):
########################################################################### [Client] ########################################################################### # host = localhost socket = /var/run/mysqld/mysqld.sock user = supervrouw password = mijnwachtwoord # Include comments when inserting sql-dumps ############################################## # comments = true # local_infile - Added Aug. 17, 2020 ########################################## # local_infile=ON ########################################################################### [mysqldump] ########################################################################### # # Include sprocs & functions when making dumps ############################################## # routines = true # Continue with dump despite errors ############################################## # force = true
Maak dit bestand enkel leesbaar voor de eigenaar:
chmod 0600 ~/.my.cnf
Instellingen op serverniveau
Het kan verwarrend zijn waar je systeembrede instellingen moet toepassen, maar ingewikkelder dan dit hoeft 't niet te zijn:
cd /etc/mysql sudo mv my.cnf my.cnf.bk-org sudo vim my.cnf
- Gebruik bestand
my.cnf
voor eigen instellingen - Default-instellingen vind je in
/etc/mysql/mysql.conf.d/mysql.cnf
- Handig om dingen af te kijken - Na aanpassingen moet je de server herstarten, bv. met
sudo service mysql restart
(nietmysqld
) - Tot nov. 2020, kopiëerde ik een bestand eerst naar my.cnf, en voegde m'n eigen dingen toe. Dat bleek een foutmelding te geven!
Mijn /etc/mysql/my.cnf (zomer-herfst 2020)
Complete bestand:
# MySQL system-wide configuration file ########################################################################### # # * This file contains *only* custom settings # * Jeroen Strompf - Nov. 2020 # * See http://wiki.devliegendebrigade.nl/Configuratiebestanden_(MySQL) # for details # # ########################################################################### # [mysqld] ########################################################################### # [mysqld] # Remove I/O path restrictions ############################## # secure_file_priv="" # Enable longer concat string ############################# # group_concat_max_len = 300000 # Disable MySQL Strict Mode ########################### # sql_mode="" # Increase max_packet_size ########################### # max_allowed_packet=536870912 # log_bin_trust_function_creators ################################### # # * http://wiki.devliegendebrigade.nl/Unsafe_function_declaration_(MySQL) # * Dit lijkt echter niet te werken (nov. 2020): Zie de URL hierboven # log_bin_trust_function_creators = 1; # local_infile - Allow LOAD DATA - 17 Aug. 2020 ############################################### # local_infile=ON ########################################################################### # [client] ########################################################################### # # Normally, starting the server takes about a second ("sudo service mysql # restart"). With these [client] & [mysqldump] sections, this takes about 5 # seconds. I still find it handy to put everyting in this one location, # especially when collaborating with others on projects # [client] # Include comments when importing sql-files #################################################### # comments = true # local_infile - Allow LOAD DATA - 17 Aug. 2020 ############################################### # local_infile=ON ########################################################################### # [mysqldump] ########################################################################### # [mysqldump] # Include sprocs & functions when making dumps ############################################## # routines = true # Continue with dump despite errors in views ############################################## # force = true
Conflicten
Helaas: Tot op heden (dec. 2021) heb ik nog geen grip op settings: Ik krijg vaak foutmeldingen. Bv. als ik een tool gebruik dat ik al lang niet heb gebruikt (bv. onlangs met de routines mysqlrepair
en mysqloptimize
, omdat blijkbaar instellingen voor het ene object (bv. mysqldump) ook wordt toegepast op andere objecten - Wordt vervolgd.