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

Next revision
Previous revision
building_mariadb_on_freebsd [2010/09/09 06:34]
k2patel created
building_mariadb_on_freebsd [2020/08/10 02:35] (current)
Line 1: Line 1:
 ====== Build / Compile MariaDB on FreeBSD ====== ====== Build / Compile MariaDB on FreeBSD ======
  
-88888 Coming Soon.... 888888+==== Getting Source ==== 
 + 
 + 
 +get source from [[http://​www.mariadb.org/​|MariaDB]]\\ 
 +extract to /​usr/​local/​src/​mariadb 
 + 
 +==== 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=/​var/​db/​mysql 
 +</​code>​ 
 +OR 
 + 
 +**Build With Plugin** 
 +<code bash> 
 +./configure --with-extra-charsets=all ​ --with-plugin-maria --with-plugin-xtradb --localstatedir=/​var/​db/​mysql 
 +</​code>​ 
 + 
 +OR 
 + 
 +**Static Build** as suggested by MariaDB wiki. 
 +<code bash> 
 +./configure --prefix=/​usr/​local/​mysql --enable-assembler \ 
 +--with-extra-charsets=all ​ --enable-thread-safe-client ​ --with-big-tables \ 
 +--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-client-ldflags=-all-static \ 
 +--with-zlib-dir=bundled --enable-local-infile 
 +</​code>​ 
 +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 /​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.1284014087.txt.gz · Last modified: 2020/08/10 02:28 (external edit)