Benutzer-Werkzeuge

Webseiten-Werkzeuge


mysql

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
mysql [2024-06-18 13:17:14] manfredmysql [2025-09-12 12:37:11] (aktuell) – [auf Platte] manfred
Zeile 64: Zeile 64:
   * [[Percona XtraDB Cluster (PXC)]] - eine von Percona verbesserte Version von MySQL   * [[Percona XtraDB Cluster (PXC)]] - eine von Percona verbesserte Version von MySQL
   * [[MySQL mit SSL verschlüsselten Verbindungen]]   * [[MySQL mit SSL verschlüsselten Verbindungen]]
- 
- 
- 
- 
- 
  
  
 ==== Maximale Anzahl der bisher gleichzeitigen Verbindungen (Galera/WSREP) ==== ==== Maximale Anzahl der bisher gleichzeitigen Verbindungen (Galera/WSREP) ====
  
-<hidden /root/bin/Max_used_connections.sh> +<hidden ~/bin/Max_used_connections.sh> 
-<file bash /root/bin/Max_used_connections.sh>+<file bash ~/bin/Max_used_connections.sh>
 #!/bin/bash #!/bin/bash
  
Zeile 113: Zeile 108:
 fi fi
    
-# mysqlshow --defaults-file=~/.my.cnf --socket=/var/run/mysqld/mysqld_23356.sock+# mysqlshow --defaults-file=~/.my.cnf --socket=/var/run/mysqld/mysqld.sock
 MYSQL_AUSGABE="$(echo "SHOW VARIABLES;" | mysql -N ${STECKER} | grep -Ei '^key_buffer_size|^read_buffer_size|^sort_buffer_size|^max_connections')" MYSQL_AUSGABE="$(echo "SHOW VARIABLES;" | mysql -N ${STECKER} | grep -Ei '^key_buffer_size|^read_buffer_size|^sort_buffer_size|^max_connections')"
 echo "${MYSQL_AUSGABE}" | sed 's/.*/    &/' echo "${MYSQL_AUSGABE}" | sed 's/.*/    &/'
Zeile 130: Zeile 125:
 echo echo
 free -m free -m
- 
 </file> </file>
 </hidden> </hidden>
  
 <code lua> <code lua>
-/root/bin/MySQL-RAM.sh+~/bin/MySQL-RAM.sh
     key_buffer_size 4194304     key_buffer_size 4194304
     max_connections 50     max_connections 50
Zeile 185: Zeile 179:
   * [[https://dev.mysql.com/doc/refman/8.0/en/insert.html|Datensatz eintragen]]: ''INSERT INTO db.tabelle SELECT * FROM db.tabelle WHERE feld01='wert';''   * [[https://dev.mysql.com/doc/refman/8.0/en/insert.html|Datensatz eintragen]]: ''INSERT INTO db.tabelle SELECT * FROM db.tabelle WHERE feld01='wert';''
   * Datensatz ändern: ''UPDATE db.tabelle SET feld02='wert01' WHERE feld01='wert';''   * Datensatz ändern: ''UPDATE db.tabelle SET feld02='wert01' WHERE feld01='wert';''
-  * Datensatz löschen: ''DELETE FROM db.tabelle WHERE feld01='wert';''+  * Datensatz löschen //(einzelne Datensätze, korrekt)//: ''DELETE FROM db.tabelle WHERE feld01='wert';'' 
 +  * Datensatz löschen //(alles, schnell)//: ''TRUNCATE TABLE db.tabelle;''
   * Root-Passwort ändern (vor MySQL 8.0): ''UPDATE mysql.user SET authentication_string=PASSWORD('geheim') WHERE User='root';''   * Root-Passwort ändern (vor MySQL 8.0): ''UPDATE mysql.user SET authentication_string=PASSWORD('geheim') WHERE User='root';''
   * Root-Passwort ändern (ab MySQL 8.0): ''ALTER USER root IDENTIFIED BY 'geheim'; FLUSH PRIVILEGES;''   * Root-Passwort ändern (ab MySQL 8.0): ''ALTER USER root IDENTIFIED BY 'geheim'; FLUSH PRIVILEGES;''
 +
 +//''TRUNCATE TABLE'' leert eine Tabelle vollständig. Es erfordert das ''DROP''-Privileg. Logisch gesehen ähnelt ''TRUNCATE TABLE'' einer ''DELETE''-Anweisung, die alle Zeilen löscht, oder einer Folge von ''DROP TABLE''- und ''CREATE TABLE''-Anweisungen.//
  
 einen Benutzer mit Passwort in einer anderen DB eintragen, ohne das Passwort kennen zu müssen: einen Benutzer mit Passwort in einer anderen DB eintragen, ohne das Passwort kennen zu müssen:
Zeile 231: Zeile 228:
   SELECT CONCAT(@@server_id, UUID());   SELECT CONCAT(@@server_id, UUID());
   SHOW VARIABLES LIKE 'server_id';   SHOW VARIABLES LIKE 'server_id';
-  SHOW VARIABLES WHERE Variable_name IN ('server_id');+  SHOW VARIABLES WHERE Variable_name IN ('hostname'); 
 +  SHOW STATUS WHERE Variable_name IN ('Connections','Created_tmp_files','Innodb_buffer_pool_write_requests','Innodb_data_fsyncs','Innodb_data_writes','Innodb_data_written','Innodb_log_write_requests','Innodb_log_writes','Innodb_pages_written','Queries','Ssl_cipher','Uptime','Uptime_since_flush_status','Innodb_buffer_pool_load_status');
  
  
Zeile 268: Zeile 266:
   ASC   ASC
   LIMIT 10;   LIMIT 10;
 +
 +
 +==== VIEWs zeigen ====
 +
 +  > echo "SHOW STATUS WHERE variable_name LIKE 'Max_used_connections%' OR variable_name LIKE 'Uptime';" | mysql -t
 +  +---------------------------+---------------------+
 +  | Variable_name             | Value               |
 +  +---------------------------+---------------------+
 +  | Max_used_connections      | 386                 |
 +  | Max_used_connections_time | 2025-06-24 10:19:25 |
 +  | Uptime                    | 5931173             |
 +  +---------------------------+---------------------+
  
  
Zeile 499: Zeile 509:
  
 Hierbei muss man auf die Feldtrennzeichen (in diesem Beispiel '|') achten, diese dürfen nicht in der Tabelle vorkommen. Hierbei muss man auf die Feldtrennzeichen (in diesem Beispiel '|') achten, diese dürfen nicht in der Tabelle vorkommen.
 +
 +
 +=== LOAD DATA INFILE ===
 +
 +<code bash>
 +echo "CREATE USER superuser IDENTIFIED BY '...'; FLUSH PRIVILEGES;" | mysql
 +echo "GRANT SELECT, INSERT, UPDATE, DELETE ON * TO 'superuser'@'%'; FLUSH PRIVILEGES;" | mysql dbname
 +echo "GRANT FILE, SUPER ON *.* TO 'superuser'@'%'; FLUSH PRIVILEGES;" | mysql
 +echo "SHOW GRANTS FOR superuser;" | mysql -t
 +</code>
 +
 +<file sql Tabellen_anlegen.sql>
 +DROP TABLE IF EXISTS `dbname`.`tabname`;
 +
 +CREATE TABLE `dbname`.`tabname` (
 + `id` int NOT NULL AUTO_INCREMENT,
 + `pwhash` varchar(768) NOT NULL,
 + `count` varchar(2) NOT NULL,
 + PRIMARY KEY (`id`),
 + KEY `pwhash_INDEX` (`pwhash`)
 +) ENGINE=InnoDB
 +/*!50100 PARTITION BY HASH (`id`)
 +PARTITIONS 128 */
 +;
 +
 +SHOW CREATE TABLE `dbname`.`tabname`;
 +</file>
 +
 +<code text Beispiel aus Doku>
 +SET GLOBAL local_infile=1;
 +
 +LOAD DATA LOCAL INFILE 'test.csv' INTO TABLE dbname.tabname
 +FIELDS TERMINATED BY ','
 +ENCLOSED BY '"'
 +LINES TERMINATED BY '\n'
 +IGNORE 1 LINES
 +(col1, col2, col3, col4, col5...);
 +</code>
 +
 +<code c test.sql>
 +SET GLOBAL local_infile=1;
 +
 +START TRANSACTION;
 +LOAD DATA LOCAL INFILE 'test.csv' INTO TABLE dbname.tabname
 +FIELDS TERMINATED BY ':'
 +LINES TERMINATED BY '\n'
 +(pwhash, count);
 +COMMIT;
 +</code>
 +
 +<code bash>
 +cat test.sql | mysql --local-infile=1 -usuperuser -p...
 +echo "SELECT * FROM dbname.tabname LIMIT 12;" | mysql -t
 ++----+-------------------------------------+-------+
 +| id | pwhash                              | count |
 ++----+-------------------------------------+-------+
 +|  1 | 001C6CE64AFA01E95015ABAE848E45F6E01 | 4     |
 +|  2 | 001C6CE64AFA01E95015ABAE848E45F6E02 | 4     |
 +|  3 | 001C6CE64AFA01E95015ABAE848E45F6E03 | 4     |
 +|  4 | 001C6CE64AFA01E95015ABAE848E45F6E04 | 4     |
 +|  5 | 001C6CE64AFA01E95015ABAE848E45F6E05 | 4     |
 +|  6 | 001C6CE64AFA01E95015ABAE848E45F6E06 | 4     |
 +|  7 | 001C6CE64AFA01E95015ABAE848E45F6E07 | 4     |
 +|  8 | 001C6CE64AFA01E95015ABAE848E45F6E08 | 4     |
 +|  9 | 001C6CE64AFA01E95015ABAE848E45F6E09 | 4     |
 +| 10 | 001C6CE64AFA01E95015ABAE848E45F6E10 | 4     |
 ++----+-------------------------------------+-------+
 +</code>
  
  
Zeile 1261: Zeile 1339:
  
 ### Summen ### Summen
-echo "  +echo " 
 +SET SESSION sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
 SELECT  SELECT 
         table_schema AS 'Datenbankname',         table_schema AS 'Datenbankname',
Zeile 2044: Zeile 2123:
         data_length / 1024 / 1024 'Daten in MB',         data_length / 1024 / 1024 'Daten in MB',
         index_length / 1024 / 1024 'Index in MB'         index_length / 1024 / 1024 'Index in MB'
-        FROM infor/root/bin/Tabellengröße_einer_Datenbank_anzeigen.sh simsysnetwork -Nmation_schema.tables WHERE table_schema='${1}' AND"+        FROM information_schema.tables WHERE table_schema='${1}' AND"
 fi fi
  
Zeile 2051: Zeile 2130:
         echo "${SQL} table_name='${TAB}';" | mysql ${OPT}         echo "${SQL} table_name='${TAB}';" | mysql ${OPT}
 done done
 +</code>
 +
 +
 +<code bash /root/bin/Datenbankgröße.sh>
 +#!/bin/bash
 +
 +#------------------------------------------------------------------------------#
 +
 +echo "
 +SELECT
 +        table_schema 'Datenbankname',
 +        sum( data_length + index_length ) / 1024 / 1024 'Datenbank in MB',
 +        data_length / 1024 / 1024 'Daten in MB',
 +        index_length / 1024 / 1024 'Index in MB'
 +FROM
 +        information_schema.tables
 +GROUP BY table_schema
 +;" | mysql -t
 +
 +#------------------------------------------------------------------------------#
 +</code>
 +
 +<code bash /root/bin/Tabellengröße.sh>
 +#!/bin/bash
 +
 +#------------------------------------------------------------------------------#
 +echo "
 +SELECT 
 +        table_schema AS 'Datenbankname',
 +        table_name,
 +        ROUND( DATA_LENGTH / 1024 / 1024, 3 ) AS 'Daten (MB)',
 +        ROUND( INDEX_LENGTH / 1024 / 1024, 3 ) AS 'Index (MB)',
 +        ROUND( DATA_FREE / 1024 / 1024, 3 ) AS 'Freier Speicher (MB)'
 +FROM
 +        information_schema.tables
 +WHERE
 +        TABLE_TYPE='BASE TABLE'
 +        AND
 +        ENGINE='InnoDB'
 +        AND
 +        TABLE_SCHEMA<>'mysql'
 +        AND
 +        TABLE_SCHEMA<>'sys'
 +ORDER BY 3
 +;" | mysql -t
 +
 +#------------------------------------------------------------------------------#
 </code> </code>
  
/home/http/wiki/data/attic/mysql.1718716634.txt · Zuletzt geändert: von manfred