MySQL ist eines der am weitesten verbreiteten relationale-Datenbanksystem. Anwendung findet diese am häufigsten in “LAMP”-Strukturen bzw. dynamischen Webseiten.
MySQL wird mit einer sogenannten Dual-License ausgeliefert. Es gibt ihn in der kostenpflichtigen Enterprise-Version und in der kostenfreien Community-Version. Als Fork exestiert MariaDB und Drizzle.
Der MySQL-Server wird auf einem Raspberry Pi compiliert was Stunden dauern kann.
Beim compilieren gehe ich wie in der Anleitung von mysql.com vor.
Compilieren:
groupadd mysql useradd -r -g mysql mysql tar zxvf mysql-VERSION.tar.gz cd mysql-VERSION mkdir mysql cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/mysql -DENABLED_PROFILING=0 -DFEATURE_SET=small -DDEFAULT_CHARSET=utf8 -DWITH_EXTRA_CHARSETS=none -DWITH_SSL=system -DWITH_UNIT_TESTS=0 -DWITH_ZLIB=system -DMYSQL_DATADIR=/mysql/data -DSYSCONFDIR=/etc/mysql make make install DESTDIR="/mysql" chown -R mysql /mysql chgrp -R mysql /mysql cd /mysql cp share/mysql_system_tables.sql share/mysql_system_tables.sql.orig
Editiere die Datei “share/mysql_system_tables.sql” und kommentiere Zeile 101 bis 129 aus. Andernfalls wird “mysql_install_db” versuchen InnoDB-Tabellen anzulegen obwohl diese engine nicht exestiert bzw. deaktiviert ist.
http://bugs.mysql.com/bug.php?id=68438
Anschliessend geht es weiter mit:
scripts/mysql_install_db --user=mysql chown -R root . chown -R mysql data
Das Startskript kopieren und Dienst aktivieren:
cp support-files/mysql.server /etc/init.d/mysql update-rc.d mysql defaults (für Debian) chkconfig --add mysql (centos / RedHat) chkconfig --level 345 mysql on (centos / RedHat) service mysql start
Meine my.cnf angepasst an die Bedürfnisse eines Raspberry Pi:
[client] #password = your_password port = 3306 socket = /tmp/mysql.sock [mysqld] user = mysql port = 3306 socket = /tmp/mysql.sock basedir = /mysql datadir = /mysql/data tmpdir = /tmp lc-messages-dir = /mysql/share/mysql skip-external-locking key_buffer_size = 16K max_allowed_packet = 1M table_open_cache = 4 sort_buffer_size = 64K read_buffer_size = 256K read_rnd_buffer_size = 256K net_buffer_length = 2K thread_stack = 64K default-storage-engine = MyISAM default-tmp-storage-engine = MyISAM skip-innodb #skip-networking server-id = 1 # wenn InnoDB aktiv hat sich dies als speicherfreundlich erwiesen #innodb_buffer_pool_size = 4M # 16 #innodb_additional_mem_pool_size = 1M # 2 #innodb_log_file_size = 2M # 5 #innodb_log_buffer_size = 2M # 8 #innodb_flush_log_at_trx_commit = 1 #innodb_lock_wait_timeout = 50 [mysqldump] quick max_allowed_packet = 16M [mysql] no-auto-rehash [myisamchk] key_buffer_size = 8M sort_buffer_size = 8M [mysqlhotcopy] interactive-timeout [mysql_install_db] default-storage-engine = MyISAM default-tmp-storage-engine = MyISAM skip-innodb