Benutzeranmeldung mit Passwort:
mysql -u Ivonne -p
Passwort für Ivonne ändern:
mysql> SET PASSWORD FOR 'IVONNE'@'LOCALHOST" = PASSWORD('new_password');
Rechte auf Datenbank für Ivonne mit Passwortauthentifizierung:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'Ivonne'@'%' IDENTIFIED BY 'hier das Passwort eingeben' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> exit
Datenbank (Schema) anlegen:
CREATE DATABASE horst;
Datenbank auswählen:
USE horst;
Tabelle anlegen:
CREATE TABLE blub ( id MEDIUMINT NOT NULL AUTO_INCREMENT, name VARCHAR(45) NOT NULL, PRIMARY KEY (id) );
Tabelle mit Daten füllen:
INSERT INTO blub (name) VALUES ('Peter'),('Klaus'),('Herbert'),('Erwin');
Spalte in Tabelle hinzufügen:
ALTER TABLE blub ADD nachname VARCHAR(45);
Spaltenname ändern:
ALTER TABLE blub CHANGE name vorname VARCHAR(45);
Wert in Zelle ändern:
UPDATE blub SET name='Frank' WHERE id=3;
Zeile in Tabelle hinzufügen:
INSERT blub SET vorname='Hans', nachname = 'Müller';
Zeile in Tabelle löschen:
DELETE FROM blub WHERE id=4;
Spalte in Tabelle löschen:
ALTER TABLE blub DROP vorname;
Spaltennamen auflisten:
show columns FROM horst.blub;
+---------------+--------------------+-------+-----+-----------+-----------------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+--------------------+-------+-----+-----------+-----------------------+
| id | mediumint(9) | NO | PRI | NULL | auto_increment |
| vorname | varchar(45) | YES | | NULL | |
| nachname | varchar(45) | YES | | NULL | |
+--------------+---------------------+-------+-----+-----------+-----------------------+
Anzahl der Spalten ausgeben:
SELECT COUNT( * ) FROM information_schema.COLUMNS WHERE table_schema = 'horst' AND TABLE_NAME = 'blub';
Anzahl der Zeilen ausgeben:
SELECT count (*) FROM horst.blub;
Für eine zentrale Konfigurationsverwaltung wurde ein zusätzliches Verzeichnis /etc/mysql bzw. /etc/mysql/conf.d angelegt. Der Symlink
/etc/mysql/my.cnf -> /etc/my.cnf
bedingt eine Weiterleitung auf die vom System vorgegebene Datei. Damit die zusätzliche angelegten Konfigurationsdateien unter /etc/mysql/conf.d mit einbezogen werden, wurde ein zusätzlicher Eintrag in /etc/my.cnf vorgenommen:
? /etc/my.cnf
[...]
# includes
!includedir /etc/mysql/conf.d
[...]
? /etc/mysql/conf.d/memory.cnf
MySQL in der Version 5.0 hat eine vordefinierte Speicherbelegung von 64MB - wenn überhaupt. Da dies zu einer langsam Verarbeitung von Abfragen kommen kann, wurde MySQL mehr Speicher - 1GB max - zugesprochen. Weiteres Tuning erfolgt durch die Vergrößerung der InnoDB-Logfiles.
[mysqld]
max_allowed_packet = 16M
key_buffer = 32M
sort_buffer_size = 16M
join_buffer_size = 16M
net_buffer_length = 128K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
tmp_table_size = 32M
query_cache_limit = 2M
query_cache_size = 128M
table_cache = 1000
max_connections = 250
innodb_buffer_pool_size = 1024M
innodb_additional_mem_pool_size = 128M
innodb_thread_concurrency = 8
# Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 256M
innodb_log_buffer_size = 32M
? /etc/mysql/conf.d/storage-engine.cnf
Für neue Datenbanken bitte InnoDB benutzen. Danke!
[mysqld]
default-storage-engine = InnoDB
? /etc/mysql/conf.d/thread-concurrency.cnf
Unser Server hat mehr als nur eine CPU und MySQL darf diese auch alle nutzen. Faustregel hierbei: CPUs * 2
[mysqld]
# Try number of CPU's*2 for thread_concurrency
thread_concurrency=4