Beiträge zu “mysql”

Mysqsl: Syntaxcheck der Konfiguration

Bei den meisten Linux Services gibt es irgendeine Prozedur um zu prüfen das die Konfigurationsdateien keinen Syntaxfehler enthalten.

Bei mysql gibt es keine solchen Befehl. Man kann trotzdem einen schnellen Check auf Syntaxfehler machen

mysql --help
mysql: unknown variable 'piort=3306'

Ist besser als das erst zu sehen wenn der Service nicht startet.

18.2.17
Weitere Beiträge zu: mysql   linux  

Auf eine entfernte MySQL Datenbank zugreifen

MySQL erlaubt standardmäßig keinen Zugriff über das Netzwerk. Um dieses zu ermöglichen ist zuerst die Konfiguration von MySQL zu ändern.

Relevant hierfür ist der Parameter bind-address. Da steht normal 127.0.0.1. Dies ist auf die Adresse des MySQL Servers zu ändern.

sudo vi /etc/mysql/my.cnf
    bind-address            = 192.168.1.31

Damit “hört” der Server für Anfragen auf dem Netzwerk. Jetzt müssen noch für die Datenbanken diese Rechte gesetzt werden.

In diesem Fall ist es der Benutzer admin der von einem Server mit der Adresse 192.168.1.14 auf eine Datenbank namens database zugreifen darf.

mysql -u root -p
mysql> GRANT ALL ON database.* to admin@'192.168.1.14' IDENTIFIED BY 'geheim'; 
Query OK, 0 rows affected (0.01 sec)

Gegebenenfalls muss auch noch die Firewall auf dem Port geöffnet werden.

4.4.14
Weitere Beiträge zu: mysql  

Tägliche Backups einer MySQL Datenbank

Zur täglichen Sicherung meiner MySQL Datenbanken verwende ich folgendes einfache Script verbunden mit einem Aufruf aus Cron.

Zuerst ein Verzeichnis für die Datenbankbackups anlegen

mkdir /root/db-backup

Das Datenbankexportscript sie so aus
 

vi sql-db-export.sh

    mysqldump --user=admin --password=geheim db | gzip > /root/db-backup/db-datenbanken.sql.gz

Das ganze noch ausführbar einrichten

chmod +x /root/sql-db-export.sh

und für Cron einrichten

# min  hour  day  month  dow  user  command
10 1 * * * (cd /root; ./sql-db-export.sh)

Diese Backups werden dann noch mit tartarus auf einen Backup FTP Server geschrieben

29.12.12
Weitere Beiträge zu: mysql  

Binäre Logfiles bei MySQL Servern ausschalten

Wenn das Verzeichniss

/var/lib/mysql

zu gross wird, dann liegt es wahrscheinlich an den binary Logfiles. Die können schnell in den Gigabyte bereich wachsen.

-rw-rw---- 1 mysql mysql 1073742959 May 18 05:36 mysqld-bin.000060

Hier kann man lesen 

Running a server with binary logging enabled makes performance slightly slower. However, the benefits of the binary log in allowing you to set up replication and for restore operations generally outweigh this minor performance decrement.

Ups das brauche ich garnicht und die grossen Logs will ich auch nicht. Um das zu disablen reicht ein Auskommentieren von log-bin in der my.cnf

vi /etc/mysql/my.cnf
#log-bin

8.6.10
Weitere Beiträge zu: mysql  

xt-commerce: Auswechseln von Listing Templates in der Datenbank

Bei einem xt:commerce Shop gibt es ja die Möglichkeit verschiedene Templates für die Darstellung von Produkt- und Kategorielisten zu haben. Da mir am Anfang etwas das Wissen fehlte habe, ich an der einen oder anderen Stelle die falsche Entscheidung getroffen. Das Ende vom Lied war das ich mehrere verschiedene Listentemplates hatte. Ich habe sie dann zwar wieder auf jeweils eins konsolidiert und mit symbolischen Links kombiniert aber in der Datenbank war in den Produkten natürlich immer noch Durcheinander. Mit folgenden Datenbankbefehlen konnte ich hier aufräumen. (Hinweise / Warnungen beim Arbeiten mit der mysql console hier)

Es gibt Templates für Kategorie- / Produktlisten und Templates für Produktinformationen

1. Produktinformationen

Welche falschen Templates stehen in der Datenbank? Zeige mir alle Produkte wo das Template nicht das gewünschte ist.

select products_id,product_template from products where product_template!='product_info_v1.html' ;

Tausche alle aus die nicht richtig sind

update products set product_template='product_info_v1.html' where product_template!='product_info_v1.html' ;  

2. Kategorielisten

Welche falschen Templates stehen in der Datenbank? Zeige mir alle Kategorien wo das Template nicht das gewünschte ist.

select categories_id,categories_template from categories where categories_template!="categorie_listing.html" ;

Tausche alle aus die nicht richtig sind

update categories set categories_template='categorie_listing.html' where categories_template!='categorie_listing.html' ;

3. Produktlisten

Gib mir alle Kategorien die ein bestimmtes Template nicht verwenden.

select categories_id, listing_template from categories where listing_template!='product_listing_v1.html' ;

Tausche alle aus die nicht richtig sind

update categories set listing_template='product_listing_v1.html' where listing_template!='product_listing_v1.html' ;

Hilfreiche Befehle

Wie kann man herausfinden welche Tabellen es gibt?

SHOW TABLES;

Wie kann man herausfinden welche Spalten es in einer Tabelle gibt? (hier die Tabelle products)

show columns from products ;

 

21.2.10
Weitere Beiträge zu: mysql   xtcmodified  

xt:Commerce: Kommentarvorlagen löschen

Wenn man in xt-commerce oder noch besser in xtcmodified die Kommentarvorlagen von hier verwendet, kann man sich lästige Tipparbeit etwas sparen. Man hat die Möglichkeit, persönliche Kommentare aus einer Auswahlliste heraus in das Kommentarfeld zu setzen. Diese werden dann bei einer Statusänderung per Email gesendet. Eine einfache aber effektive Sache. Vielleicht gibt es das auch von woanders aber damals hatten wir das nur dort gefunden.

Allerdings gibt es keine Möglichkeit existierende Kommentare zu editieren und neu abzuspeichern. Da ich ein Fan von minimalistischen Kommandozeilen bin und "unnötige" Oberflächen wie phpmyadmin gerne vermeide hilft also nur der Griff in die Datenbank. Dort löschen und neu anlegen.

Hier ist meine Doku. Wie bei jedem Aufruf der Mysql Kommondozeile: erst Datenbankbackup und wie bei allen Dingen hier in meinem Blog. "Use at your own risk" (tut aber nicht weh habs grad genauso gemacht ;-)

Was ist zu tuen

1. Anmelden an der Datenbank

2. Anzeige der existierenden Kommentare und IDs

3. Löschen des Kommentar mit der ID

#mysql -u datenbankuser -p yourxtcommerce-db

mysql> select id,title from mail_templates;

+----+--------------------------------------+
| id | title                                |
+----+--------------------------------------+
|  1 | x test1.1                            |
|  2 | Kommentarbaustein 1....              |
|  3 | Kommentarbaustein2 .....             |

mysql> delete from mail_templates where id='die-nummer-die-ihr-loeschen-wollt' ;

Interessiert wahrscheinlich keinen aber jetzt verstehe ich es wenigstens wieder wenn meine Frau das mal wieder braucht.

5.2.10
Weitere Beiträge zu: mysql   xtcmodified   Linux  

Dies ist ein privater Blog von Hagen Bauer- berufstätiger Vater, Ehemann, Naturliebhaber, Läufer, Zelter, technikverliebt.


Creative Commons License
This blog is licensed under a Creative Commons License