====== mysql ======
mysql ist eine [[Datenbank]].
===== Nützliche Befehle =====
==== Shell ====
===Ausführen von mysql-Befehlen in der Shell:===
mysql -e "SHOW TABLES;" -u root -p gogs
===DB sichern & zurückspielen===
Mit [[mysqldump]] sichern.
mysqldump -u DB-USER -pPASSWD --default-character-set=latin1 DB -c | gzip -9 > backup.sql.gz
mysql -u DB_USER -pPASSWD DB < backup.sql.gz
==== Datenbanken ====
===Datenbanken anzeigen===
show DATABASES;
===Datenbank auswählen===
use MEINE_DB;
=== Tabellen anzeigen ===
Vorher DB auswählen (use MeineDB;)
show tables;
=== Tabelle(n) löschen ===
DROP TABLE MeineTabelle;
DROP TABLE (Meinetabelle1, MeineTabelle2);
Tabellen mit bestimmten Prefix löschen (quick & dirty):
show tables like 'prefix_%';
copy the results and paste them into a text editor or output the query to a file, use a few search and replaces to remove unwanted formatting and replace \n with a comma put a ; on the end and add drop table to the front.
you'll get something that looks like this:
drop table myprefix_1, myprefix_2, myprefix_3;
===Alle Tabellenspalten anzeigen===
select * from pkme_formmaker_form;
===Bestimmte Tabellenspalten anzeigen===
select slug,data from pkme_formmaker_form;
===Bearbeiten===
update pkme_formmaker_form set data='{"classSfx":"","user_email_field":false"}' where slug='kontakt';
=== Tabellen-Reihen löschen ===
DELETE FROM ma_job WHERE job_id IN (620981, 620982, 620984, 620985, 620986)
Bestimmte Anzahl (ungeprüft!):
DELETE FROM ma_job limit 5;
Mit bestimmten Inhalten:
DELETE FROM orders WHERE id_users = 1 AND id_product = 2 LIMIT 1
===DB erstellen:===
CREATE DATABASE menagerie;
===DB löschen:===
DROP DATABASE menagerie;
Falls im Namen der Datenbank ein Bindestrich ist, kommt es zu einer Fehlermeldung:
//ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '-db' at line 1//
Dann hilft es die DB in `` zu setzen, z.B.: `meineDB-db`
=== Ausgabe in CVS-datei schreiben ===
SELECT spalte1,spalte2,spalte3
FROM tabelle
INTO OUTFILE '/tmp/mein.csv';
==== Benutzer ====
=== User anzeigen ===
SELECT User FROM mysql.user;
Mehr Info:
select host, user, password from mysql.user;
=== Userberechtigungen anzeigen ===
SHOW GRANTS FOR user@localhost;
===User erstellen und Rechte für für Datenbank gewähren===
(im Beispiel alle Rechte für alle DB):
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
FLUSH PRIVILEGES;
===Nur bestimmt Privilegien:===
GRANT [type of permission] ON [database name].[table name] TO ‘[username]'@'localhost';
===Arten von Privilegien:===
* ALL PRIVILEGES- as we saw previously, this would allow a MySQL user all access to a designated database (or if no database is selected, across the system)
* CREATE- allows them to create new tables or databases
* DROP- allows them to them to delete tables or databases
* DELETE- allows them to delete rows from tables
* INSERT- allows them to insert rows into tables
* SELECT- allows them to use the Select command to read through databases
* UPDATE- allow them to update table rows
===Privilegien nehmen:===
REVOKE [type of permission] ON [database name].[table name] FROM ‘[username]'@‘localhost';
===Benutzer löschen:===
DROP USER 'demo'@'localhost';
=== Passwort des Benutzx ändern ===
ALTER USER 'MyUser'@'localhost' IDENTIFIED BY 'NewPassword';
===== Siehe auch =====
* [[mysqldump]]
* [[myCLI]]
* [[adminer]]
* [[phpmyadmin]]
* [[mariadb]]
===== Weblinks =====
* [[wp>de:MySQL]]
* [[https://www.mysql.com/|Offizielle Website]]
* [[https://dev.mysql.com/doc/|Dokumentation]]
==== Diverse ====
* [[https://ho2e.de/mywallabag/view/682|MySQL Datenbanken auf neuen Server übertragen]]