Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[SOLVED] mariadb failed to start ?
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Desktop Environments
View previous topic :: View next topic  
Author Message
minsoehan
Tux's lil' helper
Tux's lil' helper


Joined: 02 Jan 2015
Posts: 101
Location: Yangon, Burma. (Mother Su's Country)

PostPosted: Sun Mar 06, 2016 1:07 pm    Post subject: [SOLVED] mariadb failed to start ? Reply with quote

I never install mysql and I install mariadb.
But I can't start it.
I get this:
Code:
 * Starting mysql ...
/etc/init.d/mysql: line 76: [: too many arguments
 * You don't appear to have the mysql database installed yet.
 * Please run `emerge --config =ERROR: expected 2 parameters, got 3!` to have this done...
 * ERROR: mysql failed to start


I surely installed mariadb.
Why it is telling that "I don't appear to have the mysql database installed yet".

please help.


Last edited by minsoehan on Mon Mar 07, 2016 10:18 am; edited 1 time in total
Back to top
View user's profile Send private message
albright
Advocate
Advocate


Joined: 16 Nov 2003
Posts: 2588
Location: Near Toronto

PostPosted: Sun Mar 06, 2016 1:18 pm    Post subject: Reply with quote

is virtual/mysql installed?
_________________
.... there is nothing - absolutely nothing - half so much worth
doing as simply messing about with Linux ...
(apologies to Kenneth Graeme)
Back to top
View user's profile Send private message
minsoehan
Tux's lil' helper
Tux's lil' helper


Joined: 02 Jan 2015
Posts: 101
Location: Yangon, Burma. (Mother Su's Country)

PostPosted: Sun Mar 06, 2016 1:24 pm    Post subject: Reply with quote

yes
Code:
*  virtual/mysql
      Latest version available: 5.6-r6
      Latest version installed: 5.6-r6
      Size of files: 0 KiB
      Homepage:     
      Description:   Virtual for MySQL database server
      License: 


so do I have to unmerge it?
Back to top
View user's profile Send private message
albright
Advocate
Advocate


Joined: 16 Nov 2003
Posts: 2588
Location: Near Toronto

PostPosted: Sun Mar 06, 2016 1:37 pm    Post subject: Reply with quote

no, I don't think so

I have mariadb but also installed are

dev-db/mysql-init-scripts
dev-perl/DBD-mysql
virtual/libmysqlclient
virtual/mysql

I was guessing you might be missing some of the mysql stuff mariadb uses ... but
I now think I guessed wrong
_________________
.... there is nothing - absolutely nothing - half so much worth
doing as simply messing about with Linux ...
(apologies to Kenneth Graeme)
Back to top
View user's profile Send private message
szatox
Advocate
Advocate


Joined: 27 Aug 2013
Posts: 3134

PostPosted: Sun Mar 06, 2016 2:56 pm    Post subject: Reply with quote

Quote:
/etc/init.d/mysql: line 76: [: too many arguments

Reading error messages goes a long way.
A missing quote around a variable provided to an if or something similar?

What is on line 76 in /etc/init.d/mysql?

Also, the same error message provides a possible solution too:
Quote:
Please run `emerge --config =ERROR: expected 2 parameters, got 3!` to have this done

Good stuff :)
Running this with -a or -p will give you some insight into what's going to happen before you nuke everything from orbit
Back to top
View user's profile Send private message
minsoehan
Tux's lil' helper
Tux's lil' helper


Joined: 02 Jan 2015
Posts: 101
Location: Yangon, Burma. (Mother Su's Country)

PostPosted: Sun Mar 06, 2016 3:39 pm    Post subject: Reply with quote

line 76 in /etc/init.d/mysql is this:

Code:
                if [ -z ${DBPKG_P} ] ; then
                        eerror "You don't appear to have a server package installed yet."
                else
                        eerror "You don't appear to have the mysql database installed yet."
                        eerror "Please run \`emerge --config =${DBPKG_P}\` to have this done..."
                fi


so what am I supposed to do?
honestly I am not very smart.
Back to top
View user's profile Send private message
minsoehan
Tux's lil' helper
Tux's lil' helper


Joined: 02 Jan 2015
Posts: 101
Location: Yangon, Burma. (Mother Su's Country)

PostPosted: Sun Mar 06, 2016 3:44 pm    Post subject: Reply with quote

complete /etc/init.d/mysql file is here:

Code:
msh@localhost ~ $ cat /etc/init.d/mysql
#!/sbin/runscript
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

extra_commands="checkconfig"

depend() {
   use net.lo
   # localmount needed for $basedir
   need localmount
}

get_config() {
   my_print_defaults --config-file="$1" mysqld |
   sed -n -e "s/^--$2=//p"
}

mysql_svcname() {
   local ebextra=
   case "${SVCNAME}" in
      mysql*) ;;
      *) ebextra=" (mysql)" ;;
   esac
   echo "${SVCNAME}${ebextra}"
}

start() {
   # Check for old conf.d variables that mean migration was not yet done.
   set | egrep -sq '^(mysql_slot_|MYSQL_BLOG_PID_FILE|STOPTIMEOUT)'
   rc=$?
   # Yes, MYSQL_INIT_I_KNOW_WHAT_I_AM_DOING is a hidden variable.
   # It does have a use in testing, as it is possible to build a config file
   # that works with both the old and new init scripts simulateously.
   if [ "${rc}" = 0 -a -z "${MYSQL_INIT_I_KNOW_WHAT_I_AM_DOING}" ]; then
      eerror "You have not updated your conf.d for the new mysql-init-scripts-2 revamp."
      eerror "Not proceeding because it may be dangerous."
      return 1
   fi

   # Check the config or die
   checkconfig || return 1

   # Now we can startup
   ebegin "Starting $(mysql_svcname)"

   MY_CNF="${MY_CNF:-/etc/${SVCNAME}/my.cnf}"

   if [ ! -r "${MY_CNF}" ] ; then
      eerror "Cannot read the configuration file \`${MY_CNF}'"
      return 1
   fi

   # tail -n1 is critical as these we only want the last instance of the option
   local basedir=$(get_config "${MY_CNF}" basedir | tail -n1)
   local datadir=$(get_config "${MY_CNF}" datadir | tail -n1)
   local pidfile=$(get_config "${MY_CNF}" pid-file | tail -n1)
   local socket=$(get_config "${MY_CNF}" socket | tail -n1)
   local chroot=$(get_config "${MY_CNF}" chroot | tail -n1)

   if [ -n "${chroot}" ] ; then
      socket="${chroot}/${socket}"
      pidfile="${chroot}/${pidfile}"
   fi

   if [ ! -d "${datadir}" ] ; then
      eerror "MySQL datadir \`${datadir}' is empty or invalid"
      eerror "Please check your config file \`${MY_CNF}'"
      return 1
   fi

   if [ ! -d "${datadir}"/mysql ] ; then
      # find which package is installed to report an error
      local EROOT=$(portageq envvar EROOT)
      local DBPKG_P=$(portageq match ${EROOT} $(portageq expand_virtual ${EROOT} virtual/mysql))
      if [ -z ${DBPKG_P} ] ; then
         eerror "You don't appear to have a server package installed yet."
      else
         eerror "You don't appear to have the mysql database installed yet."
         eerror "Please run \`emerge --config =${DBPKG_P}\` to have this done..."
      fi
      return 1
   fi

   local piddir="${pidfile%/*}"
   checkpath -d --owner mysql:mysql --mode 0755 "$piddir"
   rc=$?
   if [ $rc -ne 0 ]; then
      eerror "Directory $piddir for pidfile does not exist and cannot be created"
      return 1
   fi

   local startup_timeout=${STARTUP_TIMEOUT:-900}
   local startup_early_timeout=${STARTUP_EARLY_TIMEOUT:-1000}
   local tmpnice="${NICE:+"--nicelevel "}${NICE}"
   local tmpionice="${IONICE:+"--ionice "}${IONICE}"
   start-stop-daemon \
      ${DEBUG:+"--verbose"} \
      --start \
      --exec "${basedir}"/sbin/mysqld \
      --pidfile "${pidfile}" \
      --background \
      --wait ${startup_early_timeout} \
      ${tmpnice} \
      ${tmpionice} \
      -- --defaults-file="${MY_CNF}" ${MY_ARGS}
   local ret=$?
   if [ ${ret} -ne 0 ] ; then
      eend ${ret}
      return ${ret}
   fi

   ewaitfile ${startup_timeout} "${socket}"
   eend $? || return 1

   save_options pidfile "${pidfile}"
   save_options basedir "${basedir}"
}

stop() {
   ebegin "Stopping $(mysql_svcname)"

   local pidfile="$(get_options pidfile)"
   local basedir="$(get_options basedir)"
   local stop_timeout=${STOP_TIMEOUT:-120}

   start-stop-daemon \
      ${DEBUG:+"--verbose"} \
      --stop \
      --exec "${basedir}"/sbin/mysqld \
      --pidfile "${pidfile}" \
      --retry ${stop_timeout}
   eend $?
}

checkconfig() {
   local my_cnf="${MY_CNF:-/etc/${SVCNAME}/my.cnf}"
   local basedir=$(get_config "${my_cnf}" basedir | tail -n1)
   local svc_name=$(mysql_svcname)
   ebegin "Checking mysqld configuration for ${svc_name}"

   if [ ${RC_CMD} = "checkconfig" ] ; then
      # We are calling checkconfig specifically.  Print warnings regardless.
      "${basedir}"/sbin/mysqld --defaults-file="${my_cnf}" --help --verbose > /dev/null
   else
      # Suppress output to check the return value
      "${basedir}"/sbin/mysqld --defaults-file="${my_cnf}" --help --verbose > /dev/null 2>&1

      # If the above command does not return 0,
      # then there is an error to echo to the user
      if [ $? -ne 0 ] ; then
         "${basedir}"/sbin/mysqld --defaults-file="${my_cnf}" --help --verbose > /dev/null
      fi
   fi

   eend $? "${svc_name} config check failed"
}

# vim: filetype=gentoo-init-d sw=2 ts=2 sts=2 noet:
Back to top
View user's profile Send private message
albright
Advocate
Advocate


Joined: 16 Nov 2003
Posts: 2588
Location: Near Toronto

PostPosted: Sun Mar 06, 2016 5:55 pm    Post subject: Reply with quote

your error message is a bit strange

I think it should read:

Quote:
Please run `emerge --config =dev-db/mariadb-10.1.12`


(assuming that is the version of mariadb you have installed)

that command will set up the (virtual) mysql database
_________________
.... there is nothing - absolutely nothing - half so much worth
doing as simply messing about with Linux ...
(apologies to Kenneth Graeme)
Back to top
View user's profile Send private message
szatox
Advocate
Advocate


Joined: 27 Aug 2013
Posts: 3134

PostPosted: Sun Mar 06, 2016 7:30 pm    Post subject: Reply with quote

Quote:
if [ -z ${DBPKG_P} ] ; then

Code:
man test
 -z STRING
              the length of STRING is zero
~~/ snip / ~~

You can make the test pass putting double quotes around the variable like in: if [ -z "${DBPKG_P}" ] , but it's not where the failure comes from.
The length of string is definitely greater than 0. We can use your previous error message to guess the value of ${DBPKG_P}.
Code:
 eerror "Please run \`emerge --config =${DBPKG_P}\` to have this done..."
Please run `emerge --config =ERROR: expected 2 parameters, got 3!` to have this done

Ops.... Looks like you installed a package called
Quote:
ERROR: expected 2 parameters, got 3!"

Honestly I doubt you really did. If nothing else, it's not a valid name for a package.
Where does it come from?
This line:
Quote:
DBPKG_P=$(portageq match ${EROOT} $(portageq expand_virtual ${EROOT} virtual/mysql))

You can check it out manually. Paste the below into your terminal:
Code:
EROOT=/
portageq expand_virtual ${EROOT} virtual/mysql
portageq match ${EROOT} $(portageq expand_virtual ${EROOT} virtual/mysql)

Something is bugged here. Question is: which part?
Back to top
View user's profile Send private message
minsoehan
Tux's lil' helper
Tux's lil' helper


Joined: 02 Jan 2015
Posts: 101
Location: Yangon, Burma. (Mother Su's Country)

PostPosted: Mon Mar 07, 2016 12:28 am    Post subject: Reply with quote

Code:
# emerge --config =dev-db/mariadb-10.1.12

gives "package not fount"
Code:
# emerge --config dev-db/mariadb

gives
Code:
msh@localhost ~ $ sudo emerge --config =dev-db/mariadb-10.1.12
Password:

No packages found.

msh@localhost ~ $ sudo emerge --config dev-db/mariadb


Configuring pkg...

 * ERROR: dev-db/mariadb-10.0.23::gentoo failed (config phase):
 *   Your machine must NOT be named localhost
 *
 * Call stack:
 *     ebuild.sh, line  133:  Called pkg_config
 *   environment, line 4352:  Called mysql-multilib-r1_pkg_config
 *   environment, line 3872:  Called die
 * The specific snippet of code:
 *       [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost";
 *
 * If you need support, post the output of `emerge --info '=dev-db/mariadb-10.0.23::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=dev-db/mariadb-10.0.23::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/dev-db/mariadb-10.0.23/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-db/mariadb-10.0.23/temp/environment'.
 * Working directory: '/usr/lib64/python2.7/site-packages'
 * S: '/var/tmp/portage/dev-db/mariadb-10.0.23/work/mariadb-10.0.23'


and those give these:

Code:
msh@localhost ~ $ EROOT=/
msh@localhost ~ $ portageq expand_virtual ${EROOT} virtual/mysql
=dev-db/mariadb-10.0*[-embedded,-static]
dev-db/mariadb:0/18[client-libs(+),abi_x86_64(-)]
msh@localhost ~ $ portageq match ${EROOT} $(portageq expand_virtual ${EROOT} virtual/mysql)
ERROR: expected 2 parameters, got 3!
msh@localhost ~ $
Back to top
View user's profile Send private message
minsoehan
Tux's lil' helper
Tux's lil' helper


Joined: 02 Jan 2015
Posts: 101
Location: Yangon, Burma. (Mother Su's Country)

PostPosted: Mon Mar 07, 2016 9:36 am    Post subject: Reply with quote

found solution.

this error message

Quote:
* The specific snippet of code:
* [[ "${HOSTNAME}" == "localhost" ]] && die "Your machine must NOT be named localhost";



so
I changed my hostname and run
Code:
# emerge --config dev-db/mariadb


then start mysql
Code:
# rc-service mysql start


I think Gentoo wiki's MariaDB page needs to be updated.
Something like adding troubleshooting section.
Back to top
View user's profile Send private message
cr0n0s
n00b
n00b


Joined: 08 Nov 2014
Posts: 16

PostPosted: Wed Mar 23, 2016 1:15 am    Post subject: Reply with quote

szatox wrote:
Quote:
/etc/init.d/mysql: line 76: [: too many arguments

Reading error messages goes a long way.
A missing quote around a variable provided to an if or something similar?

What is on line 76 in /etc/init.d/mysql?

Also, the same error message provides a possible solution too:
Quote:
Please run `emerge --config =ERROR: expected 2 parameters, got 3!` to have this done



emerge --config =ERROR: expected 2 parameters, got 3! to have this done
setlocale: unsupported locale setting
setlocale: unsupported locale setting
!!! config can only take a single package atom at this time


szatox wrote:
Good stuff :)
Running this with -a or -p will give you some insight into what's going to happen before you nuke everything from orbit

Added some quote tags to un-tangle the reply from the quote.Chiitoo
_________________
cronos
Back to top
View user's profile Send private message
Chiitoo
Administrator
Administrator


Joined: 28 Feb 2010
Posts: 2573
Location: Here and Away Again

PostPosted: Sat Mar 26, 2016 9:05 pm    Post subject: Reply with quote

cr0n0s,

It looks like you got your reply tangled with the quote. :]

I went ahead and un-tangled it for you, so that readers don't miss it.
_________________
Kindest of regardses.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Desktop Environments All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum