Tag Archive for 'MySQL'

MySQL default Konfiguration

[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
default-character-set=utf8

[mysqld]
skip-external-locking
default-character-set=utf8
default-collation=utf8_general_ci
character-set-server=utf8
collation-server=utf8_general_ci
init-connect='SET NAMES utf8'

key_buffer = 1000M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8

sort_buffer_size = 32M
myisam_sort_buffer_size = 32M

table_cache = 512
tmp_table_size = 64MB

myisam-recover = BACKUP
#max_connections = 100
#table_cache = 64
#thread_concurrency = 10
#
# * Query Cache Configuration
#
query_cache_limit = 4M
query_cache_size = 256M
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2

Natsort in mySQL

“Natsort” scheint irgendwie nicht so ganz unterstützt zu werden. Hier ein Vorschlag von irgendwo her:


CONCAT(IF(ASCII(LEFT(`sortcol`,1))>57,LEFT(`sortcol`,1),'0'),IF(ASCII(RIGHT(`sortcol`,1))>57,LPAD(`sortcol`,10,'0'),LPAD(CONCAT(`sortcol`,'-'), 10,'0'))) AS sortname

MySQL Dump aller Datenbanken in getrennte Dateien

for I in $(mysql -e ‘show databases’ -s –skip-column-names); do mysqldump $I | gzip > “$I.sql.gz”; done

Gesehen bei http://www.commandlinefu.com/

Datenbank inklusive Benutzer und “grant all” erstellen


mysqladmin -u root -v create database

In mysql-Konsole:

grant all on database.* to ‘user’@localhost identified by ‘user_password’;

mySQL Verbindung Encoding

Alle Verbindungen in mySQL auf UTF-8 umstellen. Dazu in /etc/mysql/my.cnf folgendes ergänzen:


[client]
default-character-set = utf8

[mysql]
default-character-set=utf8

[mysqld]
character_set_server = utf8
character_set_client = utf8

Log4j in mySQL Tabelle

Um Logeinträge in eine Datenbanktabelle zu schreiben reicht ein Konfigurationseintrag:


log4j.rootLogger=DEBUG, A1
log4j.appender.A1=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.A1.driver=com.mysql.jdbc.Driver
log4j.appender.A1.URL=jdbc:mysql://127.0.0.1:3306/test
log4j.appender.A1.user=root
log4j.appender.A1.password=
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=INSERT INTO log (`date`,`class`,`level`,`message`) VALUES (TIMESTAMP('%d{yyyy-MM-dd HH:mm:ss}'), '%c', '%p', '%m')

MySQL-Tabelle:

CREATE TABLE `log` (
`id` int(11) NOT NULL auto_increment,
`date` datetime NOT NULL,
`name` varchar(250) default NULL,
`level` varchar(250) default NULL,
`message` TEXT,
PRIMARY KEY (`id`)
) ENGINE=MyISAM;

mySQL BLOB in Select-Abfrage als Text ausgeben

Funktioniert über die Funktion CAST.

CAST(blobfeld AS CHAR(10000) CHARACTER SET utf8)

Der Zeichensatz muss noch, ja nach Codierung, angepasst werden.

SELECT CAST( blobfeld AS char( 10000 ) CHARACTER SET utf8 )
FROM `table` WHERE id =10 LIMIT 0 , 30

MySQL Dump der Funktionen

Um nur die Funktionen zu dumpen:

mysqldump --routines --no-create-info --no-data --no-create-db --skip-opt [[Datenbank]] > name.sql

Für die Datenbank und Funktonen:

mysqldump [[Optionen]] --routines > name.sql

MySQL Dump direkt Packen

Um ein mysqldump direkt zu packen muss die Ausgabe einfach per Pipe an gzip weitergeleitet werden:

mysqldump [[Optionen]] | gzip -9 > name.sql.gz

Anders herum, um das ganze direkt wieder gepackt einzuspielen:

gunzip < name.sql.gz | mysql [[Optionen]]

MySQL auf Kommandozeile mit definierten Zugangsdaten

Es muss die Datei .my.cnf in das Home-Verzeichnis des Benutzers angelegt werden mit folgendem Inhalt:
Continue reading ‘MySQL auf Kommandozeile mit definierten Zugangsdaten’