MariaDB klienten och filen .my.cnf

By . Latest revision .

Vi sätter upp en miljö där vi använder konfigurationsfilen .my.cnf för att förenkla och slippa skriva långa kommandon när vi startar terminalklienten för databasen MariaDB.

#Förberedelse

Du har installerat databasen MariaDB och du kan koppla upp dig mot den med en terminalklient.

Du kan hantera terminalen och navigera i din hemmakatalog.

#Läs på om .my.cnf

Du kan läsa om hur det fungerar i artikeln “Configuring MariaDB with Option Files”.

#Ett exempel på filen my.cnf

Med tanke på hur vi installerar databasen MariaDB i kursen databas så kan följande exempel fungera som en mall för filen my.cnf.

# Template config file for databas-v2

[client]
user=dbadm
password=P@ssw0rd

# host for cygwin och äldre WSL
#host=127.0.0.1

# host for WSL2 bash, change <hostname> to its real value
#host=<hostname>.local

#port=3306
#protocol=tcp

[mysql]
# To allow for using LOAD DATA INFILE
loose-local-infile = 1

Du behöver eventuellt anpassa filen till ditt system med till exempel inställningar för hosten ovan. Du kan också ha en sådan här fil i varje terminal (Windows: CMD, Cygwin, WSL) du använder.

#Spara filen my.cnf

Filen heter my.cnf och behöver sparas på en plats där din terminalklient kan läsa den.

Exakt var detta är beror på din installation, din terminalklient och din terminal.

Vi kan dock fråga din terminalklient på vilka platser som den läser konfigurationsfilen.

#Windowsklienten mariadb

I din terminalklient, kör kommandot mariadb --help, det kommer en hel del utskrift och sedan skrollar du tillbaka till början av utskriften.

Om du använder en terminalklient som är installerade i Windows kan du hitta följande sökvägar. Detta gäller i terminalen cmd.exe. Detta gäller också oftast i Cygwin där du kan använda den terminalklient som installerades i Windows.

$ mariadb --help

Default options are read from the following files in the given order:
C:\WINDOWS\my.ini
C:\WINDOWS\my.cnf
C:\my.ini
C:\my.cnf
C:\Program Files\MariaDB 10.6\my.ini
C:\Program Files\MariaDB 10.6\my.cnf
C:\Program Files\MariaDB 10.6\data\my.ini
C:\Program Files\MariaDB 10.6\data\my.cnf

The following groups are read:
mysql mariadb-client client client-server client-mariadb

Här kan du alltså placera filen i till exempel C:\my.cnf.

#Unixklienten mariadb

Normalt sett kan du placera file .my.cnf i din hemmakatalog i den terminal du använder. En punkt framför filnamnet gör filen till en “dold fil”, det är så de kallas när man sätter punkten framför.

För att kontrollera vilka filer som terminalklienten läser så kör du kommandot mariadb --help, det kommer en hel del utskrift och sedan skrollar du tillbaka till början av utskriften.

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf

The following groups are read:
mysql client client-server client-mariadb

I alla bash-terminal (Linux, macOS, WSL2 bash) innebär det att du enklast placerar filen i $HOME/.my.cnf vilket är samma sak som ~/.my.cnf.

Du kan kontrollera att du lagt filen på rätt plats så här.

# For all bash terminals
ls -l $HOME/.my.cnf
cat $HOME/.my.cnf

Du bör också sätta rättigheterna på filen till 600 vilket innebär att bara du kan läsa filen.

chmod 600 $HOME/.my.cnf

Om du får felmeddelande som påpekar att konfigurationsfilens rättigheter är alltför vidlyftiga, så löser du det genom att ändra filens rättigheter.

Felmeddelandet kan säga följande.

“mysql: [Warning] World-writable config file ‘/home/mos/.my.cnf’ is ignored.”

#Testa om konfigurationsfilen används

Du kan testa och se exakt vilka detaljer från konfigurationsfilen som används.

Det kan till exempel se ut så här med en konfigurationsfil som enbart anger user och password.

$ mariadb --print-defaults
mariadb would have been started with the following arguments:
--user=dbadm --password=P@ssw0rd!

Om du inte får fram önskat resultat så provar du att kontrollera att du verkligen lagt din my.cnf på en plats som stöds av just din terminalklient.

#Avslutningsvis

Nu skall det fungera. Denna konfigurationsfilen är bra att ha och jobbar man mycket med terminalprogrammen så kan det underlätta att spara viss konfigurationsinformation i filen.

#Revision history

  • 2022-05-17: (C, mos) Fixa problem med mysqldump och my.cnf.
  • 2022-01-16: (B, mos) Uppdatera så att Cygwin blir tydlig att den använder Windowsklienten.
  • 2021-12-21: (A, mos) Flyttat till eget dokument.

Document source.

Category: databas, mysql.