Go Back   EQEmulator Home > EQEmulator Forums > Support > Support::Linux Servers

Support::Linux Servers Support forum for Linux EQEMu users.

Reply
 
Thread Tools Display Modes
  #1  
Old 06-10-2009, 11:16 AM
rainwalkerx
Fire Beetle
 
Join Date: Mar 2009
Location: Nowhere
Posts: 5
Default

Ok, one more note on my inexperience. A long time ago when I was still struggling to make things work I tried the guide located here:

http://www.eqemulator.net/wiki/wikka...ka=LinuxServer

The section "Compilation : zone" under Part 2 required me to mess around with some MySQL configuration file. I tried to follow the steps but I remember worrying about not understanding everything correctly or possibly modifying the wrong stuff. Here's part of the section from the guide:

Code:
 #!/bin/sh

cflags="-I/usr/local/share/mysql/include/mysql"
include="-I/usr/local/share/mysql/include/mysql"
libs="-L/usr/local/share/mysql/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm"
libs_r="-L/usr/local/share/mysql/lib/mysql -lmysqlclient_r -lpthread -lz -lcrypt -lnsl -lm -lpthread"
socket="/tmp/mysql.sock"
port="3306"
version="4.0.18"
embedded_libs="-L/usr/local/share/mysql/lib/mysql -lmysqld -lpthread -lz -lcrypt -lnsl -lm -lpthread -lrt"

usage () {
	    cat <<EOF
Usage: $0 [OPTIONS]
Options:
	    --cflags         [$cflags]
	    --include        [$include]
	    --libs           [$libs]
	    --libs_r         [$libs_r]
	    --socket         [$socket]
	    --port           [$port]
	    --version        [$version]
	    --libmysqld-libs [$embedded_libs]
EOF
	    exit 1
}

if test $# -le 0; then usage; fi

while test $# -gt 0; do
	    case $1 in
	    --cflags)  echo "$cflags" ;;
	    --include) echo "$include" ;;
	    --libs)    echo "$libs" ;;
	    --libs_r)  echo "$libs_r" ;;
	    --socket)  echo "$socket" ;;
	    --port)    echo "$port" ;;
	    --version) echo "$version" ;;
	    --embedded-libs | --embedded | --libmysqld-libs) echo "$embedded_libs" ;;
	    *)         usage ;;
	    esac

	    shift
done

exit 0
And here's what my mysql_config file looks like, now:
Code:
#!/bin/sh
# Copyright (C) 2000-2006 MySQL AB
# 
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

# This script reports various configuration settings that may be needed
# when using the MySQL client library.

which ()
{
  IFS="${IFS=   }"; save_ifs="$IFS"; IFS=':'
  for file
  do
    for dir in $PATH
    do
      if test -f $dir/$file
      then
        echo "$dir/$file"
        continue 2
      fi
    done
    echo "which: no $file in ($PATH)"
    exit 1
  done
  IFS="$save_ifs"
}

#
# If we can find the given directory relatively to where mysql_config is
# we should use this instead of the incompiled one.
# This is to ensure that this script also works with the binary MySQL
# version

fix_path ()
{
  var=$1
  shift
  for filename
  do
    path=$basedir/$filename
    if [ -d "$path" ] ;
    then
      eval "$var"=$path
      return
    fi
  done
}

get_full_path ()
{
  file=$1

  # if the file is a symlink, try to resolve it
  if [ -h $file ];
  then
    file=`ls -l $file | awk '{ print $NF }'`
  fi

  case $file in
    /*) echo "$file";;
    */*) tmp=`pwd`/$file; echo $tmp | sed -e 's;/\./;/;' ;;
    *) which $file ;;
  esac
}

me=`get_full_path $0`

basedir=`echo $me | sed -e 's;/bin/mysql_config;;'`

ldata='/var/lib/mysql'
execdir='/usr/sbin'
bindir='/usr/bin'

# If installed, search for the compiled in directory first (might be "lib64")
pkglibdir='/usr/lib/mysql'
pkglibdir_rel=`echo $pkglibdir | sed -e "s;^$basedir/;;"`
fix_path pkglibdir $pkglibdir_rel lib/mysql lib

pkgincludedir='/usr/include/mysql'
fix_path pkgincludedir include/mysql include

version='5.0.67'
socket='/var/run/mysqld/mysqld.sock'
ldflags='-Wl,-Bsymbolic-functions -rdynamic '

if [ 0 -eq 0 ]; then
  port=0
else
  port=3306
fi

# Create options 
# We intentionally add a space to the beginning and end of lib strings, simplifies replace later

libs=" $ldflags -L$pkglibdir -lmysqlclient"
libs="$libs   "
libs_r=" $ldflags -L$pkglibdir -lmysqlclient_r  "
embedded_libs="-L/usr/local/share/mysql/lib/mysql -lmysqld -lpthread -lz -lcrypt -lnsl -lm -lpthread -lrt"

if [ -r "$pkglibdir/libmygcc.a" ]; then
  # When linking against the static library with a different version of GCC
  # from what was used to compile the library, some symbols may not be defined
  # automatically.  We package the libmygcc.a from the build host, to provide
  # definitions for those.  Bugs 4921, 19561, 19817, 21158, etc.
  libs="$libs -lmygcc "
  libs_r="$libs_r -lmygcc "
  embedded_libs="$embedded_libs -lmygcc "
fi

cflags="-I$pkgincludedir  -DDBUG_OFF -DBIG_JOINS=1 -O2 -fPIC   " #note: end space!
include="-I$pkgincludedir"

# Remove some options that a client doesn't have to care about
# FIXME until we have a --cxxflags, we need to remove -Xa
#       and -xstrconst to make --cflags usable for Sun Forte C++
# FIXME until we have a --cxxflags, we need to remove -AC99
#       to make --cflags usable for HP C++ (aCC)
for remove in DDBUG_OFF DSAFEMALLOC USAFEMALLOC DSAFE_MUTEX \
              DPEDANTIC_SAFEMALLOC DUNIV_MUST_NOT_INLINE DFORCE_INIT_OF_VARS \
              DEXTRA_DEBUG DHAVE_purify O 'O[0-9]' 'xO[0-9]' 'W[-A-Za-z]*' \
              'mtune=[-A-Za-z0-9]*' 'mcpu=[-A-Za-z0-9]*' 'march=[-A-Za-z0-9]*' \
              Xa xstrconst "xc99=none" AC99 \
              unroll2 ip mp restrict
do
  # The first option we might strip will always have a space before it because
  # we set -I$pkgincludedir as the first option
  cflags=`echo "$cflags"|sed -e "s/ -$remove  */ /g"` 
done
cflags=`echo "$cflags"|sed -e 's/ *\$//'` 

# Same for --libs(_r)
for remove in lmtmalloc static-libcxa i-static static-intel
do
  # We know the strings starts with a space
  libs=`echo "$libs"|sed -e "s/ -$remove  */ /g"` 
  libs_r=`echo "$libs_r"|sed -e "s/ -$remove  */ /g"` 
  embedded_libs=`echo "$embedded_libs"|sed -e "s/ -$remove  */ /g"` 
done

# Strip trailing and ending space if any, and '+' (FIXME why?)
libs=`echo "$libs" | sed -e 's;  \+; ;g' | sed -e 's;^ *;;' | sed -e 's; *\$;;'`
libs_r=`echo "$libs_r" | sed -e 's;  \+; ;g' | sed -e 's;^ *;;' | sed -e 's; *\$;;'`
embedded_libs=`echo "$embedded_libs" | sed -e 's;  \+; ;g' | sed -e 's;^ *;;' | sed -e 's; *\$;;'`

usage () {
        cat <<EOF
Usage: $0 [OPTIONS]
Options:
        --cflags         [$cflags]
        --include        [$include]
        --libs           [$libs]
        --libs_r         [$libs_r]
        --socket         [$socket]
        --port           [$port]
        --version        [$version]
        --libmysqld-libs [$embedded_libs]
EOF
        exit 1
}

if test $# -le 0; then usage; fi

while test $# -gt 0; do
        case $1 in
        --cflags)  echo "$cflags" ;;
        --include) echo "$include" ;;
        --libs)    echo "$libs" ;;
        --libs_r)  echo "$libs_r" ;;
        --socket)  echo "$socket" ;;
        --port)    echo "$port" ;;
        --version) echo "$version" ;;
        --embedded-libs | --embedded | --libmysqld-libs) echo "$embedded_libs" ;;
        *)         usage ;;
        esac

        shift
done

#echo "ldata: '"$ldata"'"
#echo "execdir: '"$execdir"'"
#echo "bindir: '"$bindir"'"
#echo "pkglibdir: '"$pkglibdir"'"
#echo "pkgincludedir: '"$pkgincludedir"'"
#echo "version: '"$version"'"
#echo "socket: '"$socket"'"
#echo "port: '"$port"'"
#echo "ldflags: '"$ldflags"'"
#echo "client_libs: '"$client_libs"'"

exit 0
When that attempt to get a working server also failed, I tried to go back and undo the changes I'd made to this important-looking file. Unfortunately, I couldn't remember everything I'd done, since my mysql_config file had looked very different from the one displayed in the guide

Any chance that herein lies the problem?
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 10:50 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3