Line 4: |
Line 4: |
| == Components == | | == Components == |
| | | |
| + | |
| + | === Web === |
| | | |
| === Database === | | === Database === |
| + | ===Install needed packages=== |
| + | apt-get install mysql-client-5.0 mysql-server-5.0 |
| + | |
| + | ===Create database and set permissions=== |
| + | mysqladmin -u root -p create activities |
| + | mysql -u root -p |
| + | |
| + | GRANT ALL ON *.* TO 'activities'@'xxx.xxx.xxx' IDENTIFIED BY 'XXXX'; |
| + | exit; |
| + | |
| + | ===Configuring database=== |
| + | /etc/mysql/my.cnf |
| + | |
| + | <pre> |
| + | [mysqld_safe] |
| + | socket = /var/run/mysqld/mysqld.sock |
| + | nice = 0 |
| + | |
| + | [mysqld] |
| + | # * IMPORTANT |
| + | # If you make changes to these settings and your system uses apparmor, you may |
| + | # also need to also adjust /etc/apparmor.d/usr.sbin.mysqld. |
| + | |
| + | user = mysql |
| + | pid-file = /var/run/mysqld/mysqld.pid |
| + | socket = /var/run/mysqld/mysqld.sock |
| + | port = 3306 |
| + | basedir = /usr |
| + | datadir = /var/lib/mysql |
| + | tmpdir = /tmp |
| + | skip-external-locking |
| + | |
| + | |
| + | # Instead of skip-networking the default is now to listen only on |
| + | # localhost which is more compatible and is not less secure. |
| + | # bind-address = 127.0.0.1 |
| + | |
| + | # * Tuning |
| + | # |
| + | |
| + | tmp_table_size = 16M |
| + | |
| + | innodb_buffer_pool_size = 1024M |
| + | |
| + | key_buffer = 64M |
| + | |
| + | max_allowed_packet = 16M |
| + | thread_stack = 128K |
| + | thread_cache_size = 8 |
| + | # This replaces the startup script and checks MyISAM tables if needed |
| + | # the first time they are touched |
| + | myisam-recover = BACKUP |
| + | |
| + | max_connections = 151 |
| + | |
| + | table_cache = 128 |
| + | #thread_concurrency = 10 |
| + | |
| + | query_cache_limit = 2M |
| + | query_cache_size = 32M |
| + | |
| + | # * Logging and Replication |
| + | # |
| + | # Both location gets rotated by the cronjob. |
| + | # Be aware that this log type is a performance killer. |
| + | #log = /var/log/mysql/mysql.log |
| + | # |
| + | # Error logging goes to syslog. This is a Debian improvement :) |
| + | # |
| + | # Here you can see queries with especially long duration |
| + | log_slow_queries = /var/log/mysql/mysql-slow.log |
| + | long_query_time = 1 |
| + | #log-queries-not-using-indexes |
| + | # |
| + | # The following can be used as easy to replay backup logs or for replication. |
| + | # note: if you are setting up a replication slave, see README.Debian about |
| + | # other settings you may need to change. |
| + | #server-id = 1 |
| + | #log_bin = /var/log/mysql/mysql-bin.log |
| + | expire_logs_days = 10 |
| + | max_binlog_size = 100M |
| + | #binlog_do_db = include_database_name |
| + | #binlog_ignore_db = include_database_name |
| + | # |
| + | # * InnoDB |
| + | # |
| + | # InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/. |
| + | # Read the manual for more InnoDB related options. There are many! |
| + | # You might want to disable InnoDB to shrink the mysqld process by circa 100MB. |
| + | #skip-innodb |
| + | # |
| + | # * Federated |
| + | # |
| + | # The FEDERATED storage engine is disabled since 5.0.67 by default in the .cnf files |
| + | # shipped with MySQL distributions (my-huge.cnf, my-medium.cnf, and so forth). |
| + | # |
| + | |
| + | # |
| + | # Read the manual, too, if you want chroot! |
| + | # chroot = /var/lib/mysql/ |
| + | # |
| + | # For generating SSL certificates I recommend the OpenSSL GUI "tinyca". |
| + | # |
| + | # ssl-ca=/etc/mysql/cacert.pem |
| + | # ssl-cert=/etc/mysql/server-cert.pem |
| + | # ssl-key=/etc/mysql/server-key.pem |
| + | |
| + | [mysqldump] |
| + | quick |
| + | quote-names |
| + | max_allowed_packet = 16M |
| + | |
| + | [mysql] |
| + | #no-auto-rehash # faster start of mysql but no tab completition |
| + | |
| + | [isamchk] |
| + | key_buffer = 16M |
| + | |
| + | # |
| + | # * NDB Cluster |
| + | # |
| + | # See /usr/share/doc/mysql-server-*/README.Debian for more information. |
| + | # |
| + | # The following configuration is read by the NDB Data Nodes (ndbd processes) |
| + | # not from the NDB Management Nodes (ndb_mgmd processes). |
| + | # |
| + | # [MYSQL_CLUSTER] |
| + | # ndb-connectstring=127.0.0.1 |
| + | |
| + | |
| + | # |
| + | # * IMPORTANT: Additional settings that can override those from this file! |
| + | # The files must end with '.cnf', otherwise they'll be ignored. |
| + | # |
| + | !includedir /etc/mysql/conf.d/ |
| + | </pre> |
| + | |
| + | ===Log Rotate=== |
| + | /etc/logrotate.d/mysql-server |
| + | <pre> |
| + | # - I put everything in one block and added sharedscripts, so that mysql gets |
| + | # flush-logs'd only once. |
| + | # Else the binary logs would automatically increase by n times every day. |
| + | # - The error log is obsolete, messages go to syslog now. |
| + | /var/log/mysql.log /var/log/mysql/mysql.log /var/log/mysql/mysql-slow.log { |
| + | daily |
| + | rotate 7 |
| + | missingok |
| + | create 640 mysql adm |
| + | compress |
| + | sharedscripts |
| + | postrotate |
| + | test -x /usr/bin/mysqladmin || exit 0 |
| + | |
| + | # If this fails, check debian.conf! |
| + | MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf" |
| + | if [ -z "`$MYADMIN ping 2>/dev/null`" ]; then |
| + | # Really no mysqld or rather a missing debian-sys-maint user? |
| + | # If this occurs and is not a error please report a bug. |
| + | if ps cax | grep -q mysqld; then |
| + | exit 1 |
| + | fi |
| + | else |
| + | $MYADMIN flush-logs |
| + | fi |
| + | endscript |
| + | } |
| + | </pre> |