Benutzer-Werkzeuge

Webseiten-Werkzeuge


mysql:mysql

MySQL

Diese Seite enthält allgemeine Hilfen sowie hilfreiche SQL-Befehle für TYPO3-Tabellen.

Terminal-Befehle

MySQL-Server starten/stoppen/neustarten

mysql.server start
mysql.server stop
mysql.server restart

Tritt beim Start von MySQL der Fehler
ERROR! The server quit without updating PID file
auf, müssen die .err-Dateien im Ordner /usr/local/var/mysql/ gelöscht werden.

SQL-Import über Terminal

Wenn die SQL-Datei zu groß für einen Import über phpmyadmin ist. Leere Datenbank muss bereits vorhanden sein.

mysql -u Username -p Datenbankname < beispiel.sql

Bei Mittwald und ggf. anderen Anbietern muss noch der Hostname ergänzt werden:

mysql -u Username -p -h db1234.mydbserver.com Datenbankname < beispiel.sql

SQL-Befehle

Suchen/Ersetzen von Teilstrings innerhalb einzelner DB-Felder

UPDATE tt_content
SET bodytext = REPLACE(bodytext, 'class="old-btn"', 'class="c-btn  c-btn--primary"')
WHERE bodytext LIKE ('%class="old-btn"%');

RTE Accessibility Icons ersetzen

Mit TYPO3 v7 wurden die Barrierefreiheit-Icons für Links im RTE an andere Stelle im Extension-Verzeichnis verschoben, um die Struktur mit dem Rest des TYPO3-Kerns zu vereinheitlichen.

UPDATE tt_content 
  SET bodytext = REPLACE(bodytext, 
    'rtehtmlarea/res/accessibilityicons/img/', 
    'rtehtmlarea/Resources/Public/Images/');

Quelle: Stack Overflow: RTEs accessibilityicons missing in TYPO3 7.6

Mit der Aktualisierung auf TYPO3 v8 müssen Pfade möglicherweise erneut angepasst werden, da die Extension rtehtmlarea nicht mehr zum TYPO3-Kern gehört und ggf. nachinstalliert werden muss. Statt /typo3/sysext/rtehtmlarea/ lautet der Pfad dann /typo3conf/ext/rtehtmlarea/.

Suchen/Ersetzen exakter Werte in Feldern

Hilfreich, um z.B. den Wert 1 in einem Feld zu finden, nicht aber 12.

[[:<:]]Exakter Treffer[[:>:]] 

Ausgabe aller existierenden Werte eines Feldes

Inkl. Anzahl der Datensätze mit diesem Wert:

SELECT CType, count(CType)
FROM tt_content WHERE hidden=0 AND deleted=0
GROUP BY CType
ORDER BY count(CType) desc

oder ohne Anzahl:

SELECT DISTINCT(CType) AS CType FROM tt_content ORDER BY CType

Alle unterschiedlichen Feldnamen in File-Referenzen, unterschieden nach Tabelle:

SELECT distinct tablenames, fieldname, count(*) FROM sys_file_reference
GROUP BY tablenames, fieldname
ORDER BY count(*) desc

Suche nach doppelten Einträgen

Hier am Beispiel mehrfach importierter Newsbeiträge:

SELECT uid,title,externalurl, COUNT(*)
FROM `tx_news_domain_model_news`
GROUP BY title,externalurl
HAVING COUNT(*) > 1

Kopie einer Tabelle anlegen

Inkl. Indizes des Originals:

CREATE TABLE newtable LIKE oldtable;
INSERT INTO newtable SELECT * FROM oldtable;

Ohne Indizes:

CREATE TABLE newtable AS SELECT * FROM oldtable;

Inhalte aus Original-Tabelle ohne Duplikate kopieren

CREATE TABLE sys_file_reference_new LIKE sys_file_reference;
INSERT INTO sys_file_reference_new
SELECT * FROM
(SELECT * FROM sys_file_reference WHERE deleted=0 GROUP BY uid_local,uid_foreign,sys_language_uid A;
mysql/mysql.txt · Zuletzt geändert: 2022/03/27 17:48 von admin