building_mariadb_on_freebsd
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| building_mariadb_on_freebsd [2010/09/09 06:34] – created k2patel | building_mariadb_on_freebsd [2020/08/10 02:35] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Build / Compile MariaDB on FreeBSD ====== | ====== Build / Compile MariaDB on FreeBSD ====== | ||
| - | 88888 Coming Soon.... 888888 | + | ==== Getting Source ==== |
| + | |||
| + | |||
| + | get source from [[http:// | ||
| + | extract to / | ||
| + | |||
| + | ==== Configure ==== | ||
| + | |||
| + | |||
| + | **Modular configure** (usually you need to load plugins with my.cnf) i am using this one. | ||
| + | |||
| + | <code bash> | ||
| + | ./configure --with-extra-charsets=all --localstatedir=/ | ||
| + | </ | ||
| + | OR | ||
| + | |||
| + | **Build With Plugin** | ||
| + | <code bash> | ||
| + | ./configure --with-extra-charsets=all | ||
| + | </ | ||
| + | |||
| + | OR | ||
| + | |||
| + | **Static Build** as suggested by MariaDB wiki. | ||
| + | <code bash> | ||
| + | ./configure --prefix=/ | ||
| + | --with-extra-charsets=all | ||
| + | --with-plugin-maria --with-maria-tmp-tables --with-plugin-xtradb \ | ||
| + | --with-mysqld-ldflags=-static --with-client-ldflags=-static --with-readline \ | ||
| + | --with-ssl --with-plugins=max-no-ndb --with-embedded-server --with-libevent \ | ||
| + | --with-mysqld-ldflags=-all-static | ||
| + | --with-zlib-dir=bundled --enable-local-infile | ||
| + | </ | ||
| + | Now run “make -j4” and “make install” – will install it on system. | ||
| + | |||
| + | ==== rc script ==== | ||
| + | |||
| + | |||
| + | You can simply use script provided with port version of mysql. | ||
| + | Just in case if you dont have it, use below. | ||
| + | |||
| + | <code bash / | ||
| + | #!/bin/sh | ||
| + | # | ||
| + | # $FreeBSD: ports/ | ||
| + | # | ||
| + | |||
| + | # PROVIDE: mysql | ||
| + | # REQUIRE: LOGIN | ||
| + | # KEYWORD: shutdown | ||
| + | |||
| + | # | ||
| + | # Add the following line to / | ||
| + | # mysql_enable (bool): | ||
| + | # Set it to " | ||
| + | # mysql_limits (bool): | ||
| + | # Set it to yes to run `limits -e -U mysql` | ||
| + | # just before mysql starts. | ||
| + | # mysql_dbdir (str): | ||
| + | # Base database directory. | ||
| + | # mysql_args (str): | ||
| + | # to mysqld_safe (default empty). | ||
| + | # | ||
| + | |||
| + | . / | ||
| + | |||
| + | name=" | ||
| + | rcvar=`set_rcvar` | ||
| + | |||
| + | load_rc_config $name | ||
| + | |||
| + | : ${mysql_enable=" | ||
| + | : ${mysql_limits=" | ||
| + | : ${mysql_dbdir="/ | ||
| + | : ${mysql_args="" | ||
| + | |||
| + | mysql_user=" | ||
| + | mysql_limits_args=" | ||
| + | pidfile=" | ||
| + | command="/ | ||
| + | command_args=" | ||
| + | procname="/ | ||
| + | start_precmd=" | ||
| + | start_postcmd=" | ||
| + | mysql_install_db="/ | ||
| + | mysql_install_db_args=" | ||
| + | |||
| + | mysql_create_auth_tables() | ||
| + | { | ||
| + | eval $mysql_install_db $mysql_install_db_args >/ | ||
| + | [ $? -eq 0 ] && chown -R ${mysql_user}: | ||
| + | } | ||
| + | |||
| + | mysql_prestart() | ||
| + | { | ||
| + | if [ ! -d " | ||
| + | mysql_create_auth_tables || return 1 | ||
| + | fi | ||
| + | if checkyesno mysql_limits; | ||
| + | eval `/ | ||
| + | else | ||
| + | return 0 | ||
| + | fi | ||
| + | } | ||
| + | |||
| + | mysql_poststart() | ||
| + | { | ||
| + | local timeout=15 | ||
| + | while [ ! -f " | ||
| + | timeout=$(( timeout - 1 )) | ||
| + | sleep 1 | ||
| + | done | ||
| + | return 0 | ||
| + | } | ||
| + | |||
| + | run_rc_command " | ||
| + | </ | ||
| + | |||
| + | **Enable and Start** | ||
| + | |||
| + | Final steps…. (remember i am using Modular configure) | ||
| + | <code bash / | ||
| + | [mysqld] | ||
| + | ## | ||
| + | ## Load Plugins | ||
| + | ## To specify cutom plugin dir use line below. | ||
| + | ## plugin_dir=/ | ||
| + | ## | ||
| + | |||
| + | plugin-load=ha_xtradb.so | ||
| + | |||
| + | ## | ||
| + | ## General Optimization | ||
| + | ## | ||
| + | |||
| + | open-files-limit=1024 | ||
| + | local-infile | ||
| + | character-set-server=utf8 | ||
| + | connect-timeout=60 | ||
| + | key_buffer_size=1M | ||
| + | sort_buffer=256K | ||
| + | max_heap_table_size=1M | ||
| + | |||
| + | ## | ||
| + | ## InnoDB Configuration. | ||
| + | ## | ||
| + | |||
| + | innodb_buffer_pool_size = 16M | ||
| + | innodb_additional_mem_pool_size = 2M | ||
| + | innodb_data_file_path = ibdata1: | ||
| + | innodb_log_file_size = 5M | ||
| + | innodb_log_buffer_size = 8M | ||
| + | innodb_log_files_in_group=2 | ||
| + | innodb_flush_log_at_trx_commit = 1 | ||
| + | innodb_lock_wait_timeout = 50 | ||
| + | innodb_file_per_table | ||
| + | |||
| + | ## | ||
| + | ## Setting Log / Bin expiry and name | ||
| + | ## | ||
| + | |||
| + | expire_logs_days=5 | ||
| + | log-bin=mysqld-bin | ||
| + | log-bin-trust-function-creators=1 | ||
| + | datadir=/ | ||
| + | relay-log=freebsd-relay-bin | ||
| + | binlog-ignore-db=mysql, | ||
| + | |||
| + | ## | ||
| + | ## Replication Options | ||
| + | ## | ||
| + | |||
| + | server-id=0 | ||
| + | |||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | |||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | |||
| + | </ | ||
| + | |||
| + | Enabled it in rc.conf | ||
| + | |||
| + | <code bash> | ||
| + | echo ' | ||
| + | </ | ||
| + | |||
| + | Now start it using. | ||
| + | |||
| + | <code bash> | ||
| + | / | ||
| + | </ | ||
| + | |||
| + | **Error** | ||
| + | |||
| + | If you get any error related to DB not found (usually get created on first RUN). | ||
| + | |||
| + | <code bash> | ||
| + | mysql_install_db --datadir=/ | ||
| + | </ | ||
| + | |||
| + | **ENJOY!! Optimized Version of MySQL MariaDB** | ||
building_mariadb_on_freebsd.1284014087.txt.gz · Last modified: 2020/08/10 02:28 (external edit)
