====== MYSQL und MARIADB ====== ===== Reset root Passwort ===== Version ermitteln dpkg -l 'mysql-server*' **Variante 1: Mysql mit Schalter starten** /usr/sbin/mysqld --skip-grant-tables --skip-networking & Client starten mysql -u root FLUSH PRIVILEGES; SET PASSWORD FOR root@'localhost' = PASSWORD('password'); FLUSH PRIVILEGES; Danach mysql stoppen und wieder normal starten. ===== Variante 2: Password mit initialer Textdatei setzen ===== Create a text file containing the password-assignment statement on a single line. Replace the password with the password that you want to use. Für 5.5.x SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass'); MYSQL Server mit der Datei initialisieren: shell> mysqld_safe --init-file=/home/me/mysql-init & root@server6:/home/thommie# mysqld_safe --init-file=/home/thommie/mysql_reset.txt & [1] 120598 root@server6:/home/thommie# 160725 10:45:37 mysqld_safe Can't log to error log and syslog at the same time. Remove all --log-error configuration options for --syslog to take effect. 160725 10:45:37 mysqld_safe Logging to '/var/log/mysql/error.log'. 160725 10:45:37 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 160725 10:45:40 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended ===== MySQL per shell ===== Login mysql -u root root Login show databases; liste alle DBs use phpmyadmin; benutze diese DB MariaDB [phpmyadmin]> DELETE FROM `phpmyadmin`.`pma__userconfig` WHERE username='root3'; Query OK, 1 row affected (0.128 sec) löscht Userconfig (2FA Setting) für diesen User Remote Login mysql -u username -p password -h [host] -D [database] ===== MySQL Replikation ===== [[https://www.thomas-krenn.com/de/wiki/MySQL_Replikation|https://www.thomas-krenn.com/de/wiki/MySQL_Replikation]] Mit ssl: [[https://www.thomas-krenn.com/de/wiki/MySQL_Verbindungen_mit_SSL_verschl%C3%BCsseln|https://www.thomas-krenn.com/de/wiki/MySQL_Verbindungen_mit_SSL_verschl%C3%BCsseln]] Einschränkung auf einige DBs: replicate-wild-do-table=dbname1.% replicate-wild-do-table=dbname2.% Siehe auch http://dev.mysql.com/doc/refman/5.7/en/replication-options-slave.html ====== MARIADB Besonderheiten ====== Login direkt aus der Shell mit root möglich, wenn das unix_socket plugin aktiv ist (default). Ein User, der nur über die lokale mysql DB authentifiziert werden soll, muss in der plugin Spalte mysql_native_password und ein Passwort gesetzt haben. User anlegen CREATE USER foo2@test IDENTIFIED BY 'mariadb'; Datenbank anlegen CREATE DATABASE passbolt; User volle rechte auf die DB geben GRANT ALL privileges ON `passbolt`.* TO 'passbolt';: Kontrolle MariaDB [(none)]> show grants for passbolt; +---------------------------------------------------------------------------------------------------------+ | Grants for passbolt@% | +---------------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'passbolt'@'%' IDENTIFIED BY PASSWORD '*44BF0BD050389323145AA5E7F8D7549C194AE951' | | GRANT ALL PRIVILEGES ON `passbolt`.* TO 'passbolt'@'%' | +---------------------------------------------------------------------------------------------------------+ Alle Spalten einer Tabelle zeigen SHOW COLUMNS FROM user FROM mysql; Inhalt von Spalten zeigen MariaDB [mysql]> SELECT host, user, password, plugin FROM user; +-----------+--------+-------------------------------------------+-----------------------+ | Host | User | Password | plugin | +-----------+--------+-------------------------------------------+-----------------------+ | localhost | root | invalid | mysql_native_password | | localhost | mysql | invalid | mysql_native_password | | % | joomla | *7CFBEFC5A73BBC76917C58894D45FB09D7E3F59B | mysql_native_password | +-----------+--------+-------------------------------------------+-----------------------+ Privilegien eines Users zeigen: MariaDB [mysql]> show grants for joomla; +-------------------------------------------------------------------------------------------------------+ | Grants for joomla@% | +-------------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'joomla'@'%' IDENTIFIED BY PASSWORD '*7CFBEFC5A73BBC76917C58894D45FB09D7E3F59B' | | GRANT ALL PRIVILEGES ON `joomla2`.* TO 'joomla'@'%' | | GRANT ALL PRIVILEGES ON `joomla`.* TO 'joomla'@'%' | | GRANT ALL PRIVILEGES ON `joomla`.`joomla` TO 'joomla'@'%' | +-------------------------------------------------------------------------------------------------------+ ===== Dump von Datenbanken ===== root@db1b:~# mariadb-dump Usage: mariadb-dump [OPTIONS] database [tables] OR mariadb-dump [OPTIONS] --databases DB1 [DB2 DB3...] OR mariadb-dump [OPTIONS] --all-databases OR mariadb-dump [OPTIONS] --system=[SYSTEMOPTIONS]] For more options, use mariadb-dump --help ===== Shell-Import von Datenbanken ===== root@maria1:/home/thommie# mysql -u root -p mysql -u root -p rcube < rcube.sql