Zum Inhalt springen

Forum

PHPWelt.net Blog - Ein weiteres tolles WordPress-Blog


MySQL optimieren

Auch die MySQL-Datenbank kann optimiert werden. Dazu muss die Datei “/etc/my.cnf” bearbeitet werden und danach den DB-Server via “/etc/init.d/mysql restart” neustarten.

Folgende Parameter können eingstellt werden:

back_log current value: 5
bdb_cache_size current value: 1048540
binlog_cache_size current value: 32768
connect_timeout current value: 5
delayed_insert_limit current value: 100
delayed_insert_timeout current value: 300
delayed_queue_size current value: 1000
flush_time current value: 0
interactive_timeout current value: 28800
join_buffer_size current value: 131072
key_buffer_size current value: 1048540
long_query_time current value: 10
lower_case_table_names current value: 0
max_allowed_packet current value: 1048576
max_binlog_cache_size current value: 4294967295
max_connect_errors current value: 10
max_connections current value: 100
max_delayed_threads current value: 20
max_heap_table_size current value: 16777216
max_join_size current value: 4294967295
max_sort_length current value: 1024
max_tmp_tables current value: 32
max_write_lock_count current value: 4294967295
myisam_sort_buffer_size current value: 8388608
net_buffer_length current value: 16384
net_read_timeout current value: 30
net_retry_count current value: 10
net_write_timeout current value: 60
read_buffer_size current value: 131072
read_rnd_buffer_size current value: 262144
slow_launch_time current value: 2
sort_buffer current value: 2097116
table_cache current value: 64
thread_concurrency current value: 10
thread_stack current value: 131072
tmp_table_size current value: 1048576
wait_timeout current value: 28800

Im Abschnitt Finetuning ist eingentlich der besste Ansatzpunkt:

key_buffer = 128M
max_allowed_packet = 4M
thread_stack = 1M
thread_cache_size = 100
max_connections = 500
table_cache = 4K
thread_concurrency = 8
query_cache_limit = 1M
query_cache_size = 32M


Externer Zugriff auf eine Mysql-Datenbank

In der Datei “/etc/mysql/my.cnf” die Anbindung an den localhost entfernen in dem der Eintag “bind = 127.0.0.1″ auskommentiert oder gelöscht wird. Zusätlich muss für den Mysqluser der verwendet werden soll, der externe Zugriff erlaubt sein:
Bei vorhanden User:

mysql -u admin -p`cat /etc/psa/.psa.shadow` mysql
update user set host='%' where user="myuser";
flush privileges;
exit;

Nachtrag: danke für den Komentar, so ist es natürlich sicher!
oder einen neuen Nutzer wie folgt anlegen:

mysql_setpermission -u admin --password `cat /etc/psa/.psa.shadow`

MySQL Passwort ändern

Zum ändern des Passwortes von Mysql gibt es folgenden Befel:

mysqladmin --user=root --password=<altes_pw> password <neues_pw>

Mysql mit PHP ansprechen

Um mittels PHP eine Mysql-Datenbank anzusprechen muss zuerst eine Verbindung zur Datenbank hergestellt werden. Dazu wird der Befehl mysql_connect verwendet:

resource mysql_connect  ([ string $Server  [, string $Benutzername  [, string $Benutzerkennwort  [, bool $neue_Verbindung  [, int $client_flags  ]]]]] )

Also z.B.:

$link = mysql_connect('localhost', 'Benutzername', 'Password');
if (!$link)die('keine Verbindung möglich: ' . mysql_error());

Mysql Nutzer und Datenbank erstellen

Zuerst einloggen:

mysql -h localhost -u Nutzername -pPasswort

Wichtig: hinter -p kein Leerzeichen.
Einen neuen Benutzer erstellen wir mittels:

GRANT ALL PRIVILEGES ON *.* TO 'Nutzername'@'localhost'  IDENTIFIED BY 'Passwort' WITH GRANT OPTION;

Eine Neue Datennank wird mittels folgendem Befehl erstellt

CREATE DATABASE name;