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
Next revision Both sides next revision
building_mariadb_on_freebsd [2010/09/13 16:55]
k2patel
building_mariadb_on_freebsd [2010/09/13 17:06]
k2patel
Line 35: Line 35:
 Now run "//​make -j4//" and "//​make install//"​ -- will install it on system. Now run "//​make -j4//" and "//​make install//"​ -- will install it on system.
  
-==== Level Headline ​====+==== 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.txt · Last modified: 2020/08/10 02:35 (external edit)