User Tools

Site Tools


building_mariadb_on_freebsd

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
building_mariadb_on_freebsd [2010/09/13 16:55]
k2patel
building_mariadb_on_freebsd [2020/08/10 02:35] (current)
Line 2: Line 2:
  
 ==== Getting Source ==== ==== Getting Source ====
-get source from [[http://​www.mariadb.org | MariaDB]]\\ + 
-extract to ///​usr/​local/​src/​mariadb//+ 
 +get source from [[http://​www.mariadb.org/|MariaDB]]\\ 
 +extract to /​usr/​local/​src/​mariadb 
 ==== Configure ==== ==== Configure ====
-**Modular configure** (usually you need to load plugins with my.cnf) ​**i am using this one.**+ 
 + 
 +**Modular configure** (usually you need to load plugins with my.cnf) i am using this one.
  
 <code bash> <code bash>
 ./configure --with-extra-charsets=all --localstatedir=/​var/​db/​mysql ./configure --with-extra-charsets=all --localstatedir=/​var/​db/​mysql
 </​code>​ </​code>​
- 
 OR OR
  
 **Build With Plugin** **Build With Plugin**
- 
 <code bash> <code bash>
 ./configure --with-extra-charsets=all ​ --with-plugin-maria --with-plugin-xtradb --localstatedir=/​var/​db/​mysql ./configure --with-extra-charsets=all ​ --with-plugin-maria --with-plugin-xtradb --localstatedir=/​var/​db/​mysql
Line 22: Line 25:
  
 **Static Build** as suggested by MariaDB wiki. **Static Build** as suggested by MariaDB wiki.
- 
 <code bash> <code bash>
 ./configure --prefix=/​usr/​local/​mysql --enable-assembler \ ./configure --prefix=/​usr/​local/​mysql --enable-assembler \
Line 32: Line 34:
 --with-zlib-dir=bundled --enable-local-infile --with-zlib-dir=bundled --enable-local-infile
 </​code>​ </​code>​
 +Now run “make -j4” and “make install” – will install it on system.
  
-Now run "//​make -j4//" and "//​make install//"​ -- will install it on system.+==== rc script ====
  
-==== Level 3 Headline ==== 
  
 +You can simply use script provided with port version of mysql.
 +Just in case if you dont have it, use below.
 +
 +<code bash /​usr/​local/​etc/​rc.d/​mysql>​
 +#!/bin/sh
 +#
 +# $FreeBSD: ports/​databases/​mysql51-server/​files/​mysql-server.sh.in,​v 1.6 2008/07/30 06:11:16 ale Exp $
 +#
 + 
 +# PROVIDE: mysql
 +# REQUIRE: LOGIN
 +# KEYWORD: shutdown
 + 
 +#
 +# Add the following line to /​etc/​rc.conf to enable mysql:
 +# mysql_enable (bool): ​ Set to "​NO"​ by default.
 +#                       Set it to "​YES"​ to enable MySQL.
 +# mysql_limits (bool): ​ Set to "​NO"​ by default.
 +#                       Set it to yes to run `limits -e -U mysql`
 +#                       just before mysql starts.
 +# mysql_dbdir (str): ​   Default to "/​var/​db/​mysql"​
 +#                       Base database directory.
 +# mysql_args (str): ​    ​Custom additional arguments to be passed
 +#                       to mysqld_safe (default empty).
 +#
 + 
 +. /​etc/​rc.subr
 + 
 +name="​mysql"​
 +rcvar=`set_rcvar`
 + 
 +load_rc_config $name
 + 
 +: ${mysql_enable="​NO"​}
 +: ${mysql_limits="​NO"​}
 +: ${mysql_dbdir="/​var/​db/​mysql"​}
 +: ${mysql_args=""​}
 + 
 +mysql_user="​mysql"​
 +mysql_limits_args="​-e -U ${mysql_user}"​
 +pidfile="​${mysql_dbdir}/​`/​bin/​hostname`.pid"​
 +command="/​usr/​local/​bin/​mysqld_safe"​
 +command_args="​--defaults-extra-file=${mysql_dbdir}/​my.cnf --user=${mysql_user} --datadir=${mysql_dbdir} --pid-file=${pidfile} ${mysql_args} > /dev/null 2>&1 &"
 +procname="/​usr/​local/​libexec/​mysqld"​
 +start_precmd="​${name}_prestart"​
 +start_postcmd="​${name}_poststart"​
 +mysql_install_db="/​usr/​local/​bin/​mysql_install_db"​
 +mysql_install_db_args="​--ldata=${mysql_dbdir}"​
 + 
 +mysql_create_auth_tables()
 +{
 +        eval $mysql_install_db $mysql_install_db_args >/​dev/​null 2>/​dev/​null
 +        [ $? -eq 0 ] && chown -R ${mysql_user}:​${mysql_user} ${mysql_dbdir}
 +}
 + 
 +mysql_prestart()
 +{
 +        if [ ! -d "​${mysql_dbdir}/​mysql/​."​ ]; then
 +                mysql_create_auth_tables || return 1
 +        fi
 +        if checkyesno mysql_limits;​ then
 +                eval `/​usr/​bin/​limits ${mysql_limits_args}` 2>/​dev/​null
 +        else
 +                return 0
 +        fi
 +}
 + 
 +mysql_poststart()
 +{
 +        local timeout=15
 +        while [ ! -f "​${pidfile}"​ -a ${timeout} -gt 0 ]; do
 +                timeout=$(( timeout - 1 ))
 +                sleep 1
 +        done
 +        return 0
 +}
 + 
 +run_rc_command "​$1"​
 +</​code>​
 +
 +**Enable and Start**
 +
 +Final steps…. (remember i am using Modular configure)
 +<code bash /​etc/​my.cnf>​
 +[mysqld]
 +##
 +## Load Plugins
 +## To specify cutom plugin dir use line below.
 +## plugin_dir=/​usr/​local/​lib/​mysql/​plugin
 +##
 + 
 +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:​1024M:​autoextend
 +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=/​usr/​local/​var
 +relay-log=freebsd-relay-bin
 +binlog-ignore-db=mysql,​test
 + 
 +##
 +## Replication Options
 +##
 + 
 +server-id=0
 + 
 +#​server-id=2
 +#​replicate-same-server-id=0
 +#​auto-increment-increment=5
 +#​auto-increment-offset=2
 +#​slave-net-timeout=120
 + 
 +#​master-host=192.168.1.3
 +#​master-user=repl
 +#​master-password=password
 +#​master-connect-retry=60
 +#​replicate-ignore-db=mysql,​test
 +
 +</​code>​
 +
 +Enabled it in rc.conf
 +
 +<code bash>
 +echo '​mysql_enable="​YES"'​ >> /​etc/​rc.conf
 +</​code>​
 +
 +Now start it using.
 +
 +<code bash>
 +/​usr/​local/​etc/​rc.d/​mysql-server start
 +</​code>​
 +
 +**Error**
 +
 +If you get any error related to DB not found (usually get created on first RUN).
 +
 +<code bash>
 +mysql_install_db --datadir=/​usr/​local/​var
 +</​code>​
 +
 +**ENJOY!! Optimized Version of MySQL MariaDB**
building_mariadb_on_freebsd.1284396921.txt.gz · Last modified: 2020/08/10 02:28 (external edit)