MySQL-Server lässt sich nicht installieren [Ubuntu 6.10]

T

taner

Jungspund
Hi,

ich versuche unter Ubuntu 6.10 den MySQL-Server über

sudo apt-get install mysql-server

zu installieren... Allerdings will er leider nicht. Und folgendes spuckt er aus:

Code:
Richte mysql-server-5.0 ein (5.0.24a-9) ...
 * Stopping MySQL database server mysqld                                 [ ok ]
 * Starting MySQL database server mysqld                                 [fail]
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: Fehler beim Bearbeiten von mysql-server-5.0 (--configure):
 Unterprozess post-installation script gab den Fehlerwert 1 zurück
dpkg: Abhängigkeitsprobleme verhindern Konfiguration von mysql-server:
 mysql-server hängt ab von mysql-server-5.0; aber:
  Package mysql-server-5.0 is not configured yet.
dpkg: Fehler beim Bearbeiten von mysql-server (--configure):
 Abhängigkeitsprobleme - lasse es unkonfiguriert
Fehler traten auf beim Bearbeiten von:
 mysql-server-5.0
 mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

Kann irgendwer helfen? Bin langsam überfordert...
 
Einmal sauber deinstallieren (mit purge-Option) und nach einem 'apt-get update' nochmal neu installieren. Vorher mit 'dpkg -l | grep mysql' sicherstellen, dass du wirklich den MySQL-Server komplett deinstalliert hast (wichtig, unbedingt --purge beim Deinstallieren nutzen, damit die Startskripte gelöscht werden!)
 
Habe ich gemacht, aber es kommt wieder der gleiche Fehler.. Habe ihn auch mit purge gelöscht:

Code:
~$ dpkg -l | grep mysql
ii  libdbd-mysql-perl                3.0006-1                          A Perl5 database interface to the MySQL data
ii  libmysql++-dev                   2.0.7-3                           mysql C++ library bindings (development)
ii  libmysql++2c2a                   2.0.7-3                           mysql C++ library bindings (runtime)
ii  libmysqlclient15-dev             5.0.24a-9                         mysql database development files
ii  libmysqlclient15off              5.0.24a-9                         mysql database client library
ii  mysql-admin                      1.1.10-1                          GUI tool for intuitive MySQL administration
ii  mysql-admin-common               1.1.10-1                          Architecture independent files for MySQL Adm
ii  mysql-client                     5.0.24a-9                         mysql database client (current version)
ii  mysql-client-5.0                 5.0.24a-9                         mysql database client binaries
ii  mysql-common                     5.0.24a-9                         mysql database common files (e.g. /etc/mysql
ii  mysql-navigator                  1.4.2-7                           GUI client program for MySQL database server
ii  mysql-query-browser              1.1.18-5ubuntu1                   Official GUI tool to query MySQL database
ii  mysql-query-browser-common       1.1.18-5ubuntu1                   Architecture independent files for MySQL Que
ii  mysqltcl                         3.02-1                            Interface to the MySQL database for the Tcl

Code:
~$ sudo apt-get install mysql-server
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut       
Reading state information... Fertig
The following packages were automatically installed and are no longer required:
  libsvn0 kdesvn-kio-plugins libsvnqt2
Use 'apt-get autoremove' to remove them.
Die folgenden zusätzlichen Pakete werden installiert:
  mysql-server-5.0
Die folgenden NEUEN Pakete werden installiert:
  mysql-server mysql-server-5.0
0 aktualisiert, 2 neu installiert, 0 zu entfernen und 3 nicht aktualisiert.
Es müssen noch 0B von 25,0MB Archiven geholt werden.
Nach dem Auspacken werden 67,5MB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren [J/n]? J
Vorkonfiguration der Pakete ...
Wähle vormals abgewähltes Paket mysql-server-5.0.
(Lese Datenbank ... 105833 Dateien und Verzeichnisse sind derzeit installiert.)
Entpacke mysql-server-5.0 (aus .../mysql-server-5.0_5.0.24a-9_i386.deb) ...
Wähle vormals abgewähltes Paket mysql-server.
Entpacke mysql-server (aus .../mysql-server_5.0.24a-9_all.deb) ...
Richte mysql-server-5.0 ein (5.0.24a-9) ...
 * Stopping MySQL database server mysqld                                 [ ok ] 
 * Starting MySQL database server mysqld                                 [fail] 
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: Fehler beim Bearbeiten von mysql-server-5.0 (--configure):
 Unterprozess post-installation script gab den Fehlerwert 1 zurück
dpkg: Abhängigkeitsprobleme verhindern Konfiguration von mysql-server:
 mysql-server hängt ab von mysql-server-5.0; aber:
  Package mysql-server-5.0 is not configured yet.
dpkg: Fehler beim Bearbeiten von mysql-server (--configure):
 Abhängigkeitsprobleme - lasse es unkonfiguriert
Fehler traten auf beim Bearbeiten von:
 mysql-server-5.0
 mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
 
Code:
invoke-rc.d: initscript mysql, action "start" failed.

Hier scheint das ursprüngliche Problem zu liegen.

Du hast wirklich vorher wie theton schon meinte

Code:
sudo apt-get remove --purge mysql-server

gemacht?

Mach das nochmal und dann poste mal:

Code:
ls -al /etc/init.d/my*

Sollte dann wirklich alles weg sein, installier nochmal und poste dann den Inhalte vom mysql-Startscript in /etc/init.d
 
Ich habs noch mal genauso gelöscht, bei deinem zweiten Befehĺ kommt:

Code:
ls: /etc/init.d/my*: No such file or directory
 
Da sind jetzt drei Dateien... Wusste nicht welche du genau willst, also hier alle 3:

/etc/init.de/mysql
Code:
#!/bin/bash
#
### BEGIN INIT INFO
# Provides:          mysql
# Required-Start:    $syslog mysql-ndb-mgm
# Required-Stop:     $syslog
# Should-Start:      $local_fs $remote_fs $network $named $time
# Should-Stop:       $local_fs $remote_fs $network $named $time
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start and stop the mysql database server daemon
# Description:       Controls the main MySQL database server daemon "mysqld"
#                    and its wrapper script "mysqld_safe".
### END INIT INFO
#
set -e
set -u
${DEBIAN_SCRIPT_DEBUG:+ set -v -x}

test -x /usr/sbin/mysqld || exit 0

. /lib/lsb/init-functions

SELF=$(cd $(dirname $0); pwd -P)/$(basename $0)
CONF=/etc/mysql/my.cnf
MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"

# priority can be overriden and "-s" adds output to stderr
ERR_LOGGER="logger -p daemon.err -t /etc/init.d/mysql -i"

# Safeguard (relative paths, core dumps..)
cd /
umask 077

# mysqladmin likes to read /root/.my.cnf. This is usually not what I want
# as many admins e.g. only store a password without a username there and
# so break my scripts.
export HOME=/etc/mysql/

## Fetch a particular option from mysql's invocation.
#
# Usage: void mysqld_get_param option
mysqld_get_param() {
	/usr/sbin/mysqld --print-defaults \
		| tr " " "\n" \
		| grep -- "--$1" \
		| tail -n 1 \
		| cut -d= -f2
}

## Do some sanity checks before even trying to start mysqld.
sanity_checks() {
  # check for config file
  if [ ! -r /etc/mysql/my.cnf ]; then
    log_warning_msg "$0: WARNING: /etc/mysql/my.cnf cannot be read. See README.Debian.gz"
    echo                "WARNING: /etc/mysql/my.cnf cannot be read. See README.Debian.gz" | $ERR_LOGGER
  fi

  # check for buggy options
  if grep -q ^expire.logs.days $CONF  &&  ! grep -q ^log.bin $CONF; then
    log_failure_msg "$0: ERROR: Using expire_logs_days without log_bin crashes the server. See README.Debian.gz"
    echo                "ERROR: Using expire_logs_days without log_bin crashes the server. See README.Debian.gz" | $ERR_LOGGER
    exit 1
  fi

  # check for diskspace shortage
  datadir=`mysqld_get_param datadir`
  if LC_ALL=C BLOCK_SIZE= df --portability $datadir/. | tail -n 1 | awk '{ exit ($4>4096) }'; then
    log_failure_msg "$0: ERROR: The partition with $datadir is too full!"
    echo                "ERROR: The partition with $datadir is too full!" | $ERR_LOGGER
    exit 1
  fi
}

## Checks if there is a server running and if so if it is accessible.
#
# check_alive insists on a pingable server
# check_dead also fails if there is a lost mysqld in the process list
#
# Usage: boolean mysqld_status [check_alive|check_dead] [warn|nowarn]
mysqld_status () {
    ping_output=`$MYADMIN ping 2>&1`; ping_alive=$(( ! $? ))

    ps_alive=0
    pidfile=`mysqld_get_param pid-file`
    if [ -f "$pidfile" ] && ps `cat $pidfile` >/dev/null 2>&1; then ps_alive=1; fi
    
    if [ "$1" = "check_alive"  -a  $ping_alive = 1 ] ||
       [ "$1" = "check_dead"   -a  $ping_alive = 0  -a  $ps_alive = 0 ]; then
	return 0 # EXIT_SUCCESS
    else
  	if [ "$2" = "warn" ]; then
  	    echo -e "$ps_alive processes alive and '$MYADMIN ping' resulted in\n$ping_output\n" | $ERR_LOGGER -p daemon.debug
	fi
  	return 1 # EXIT_FAILURE
    fi
}

#
# main()
#

case "${1:-''}" in
  'start')
	sanity_checks;
	# Start daemon
	log_daemon_msg "Starting MySQL database server" "mysqld"
	if mysqld_status check_alive nowarn; then
	   log_progress_msg "already running"
	   log_end_msg 0
	else
  	    /usr/bin/mysqld_safe > /dev/null 2>&1 &
	    # 6s was reported in #352070 to be too few when using ndbcluster
	    for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14; do
                sleep 1
	        if mysqld_status check_alive nowarn ; then break; fi
		log_progress_msg "."
	    done
	    if mysqld_status check_alive warn; then
                log_end_msg 0
	        # Now start mysqlcheck or whatever the admin wants.
	        output=$(/etc/mysql/debian-start)
		[ -n "$output" ] && log_action_msg "$output"
	    else
	        log_end_msg 1
		log_failure_msg "Please take a look at the syslog"
	    fi
	fi

	# Some warnings
        if $MYADMIN variables | egrep -q have_bdb.*YES; then
            echo "BerkeleyDB is obsolete, see /usr/share/doc/mysql-server-5.0/README.Debian.gz" | $ERR_LOGGER -p daemon.info
        fi
        if [ -f /etc/mysql/debian-log-rotate.conf ]; then
            echo "/etc/mysql/debian-log-rotate.conf is obsolete, see /usr/share/doc/mysql-server-5.0/NEWS.Debian.gz" | $ERR_LOGGER -p daemon.info
        fi
	;;

  'stop')
	# * As a passwordless mysqladmin (e.g. via ~/.my.cnf) must be possible
	# at least for cron, we can rely on it here, too. (although we have 
	# to specify it explicit as e.g. sudo environments points to the normal
	# users home and not /root)
	log_daemon_msg "Stopping MySQL database server" "mysqld"
	if ! mysqld_status check_dead nowarn; then
	  set +e
	  shutdown_out=`$MYADMIN shutdown 2>&1`; r=$?
	  set -e
	  if [ "$r" -ne 0 ]; then
	    log_end_msg 1
	    [ "$VERBOSE" != "no" ] && log_failure_msg "Error: $shutdown_out"
	    log_daemon_msg "Killing MySQL database server by signal" "mysqld"
	    killall -15 mysqld
            server_down=
	    for i in 1 2 3 4 5 6 7 8 9 10; do
              sleep 1
              if mysqld_status check_dead nowarn; then server_down=1; break; fi
            done
          if test -z "$server_down"; then killall -9 mysqld; fi
	  fi
        fi

        if ! mysqld_status check_dead warn; then
	  log_end_msg 1
	  log_failure_msg "Please stop MySQL manually and read /usr/share/doc/mysql-server-5.0/README.Debian.gz!"
	  exit -1
	else
	  log_end_msg 0
        fi
	;;

  'restart')
	set +e; $SELF stop; set -e
	$SELF start 
	;;

  'reload'|'force-reload')
  	log_daemon_msg "Reloading MySQL database server" "mysqld"
	$MYADMIN reload
	log_end_msg 0
	;;

  'status')
	if mysqld_status check_alive nowarn; then
	  log_action_msg "$($MYADMIN version)"
	else
	  log_action_msg "MySQL is stopped."
	  exit 3
	fi
  	;;

  *)
	echo "Usage: $SELF start|stop|restart|reload|force-reload|status"
	exit 1
	;;
esac


/etc/init.d/mysql-ndb
Code:
#!/bin/bash
#
### BEGIN INIT INFO
# Provides:          mysql-ndb
# Required-Start:    $syslog mysql mysql-ndb-mgm
# Required-Stop:     $syslog mysql mysql-ndb-mgm
# Should-Start:      $local_fs $remote_fs $network $named $time
# Should-Stop:       $local_fs $remote_fs $network $named $time
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start and stop the mysql database cluster server daemon
# Description:       Controls the MySQL database cluster server daemon "ndbd".
### END INIT INFO
#
set -e
set -u
${DEBIAN_SCRIPT_DEBUG:+ set -v -x}

# Variables
SELF=$(cd $(dirname $0); pwd -P)/$(basename $0)
DAEMON=/usr/sbin/ndbd
CONF=/etc/mysql/my.cnf
export HOME=/etc/mysql/

# Safeguard (relative paths, core dumps..)
cd /
umask 077

# Exit *silently* if we're not supposed to be started.
#
# The Debian scripts should execute these scripts to stop and start
# the daemon when upgrading if it is started. On the other hand it should
# remain silently if the server has not even been configured.
# See /usr/share/doc/mysql-server-*/README.Debian for more information.
test -x $DAEMON || exit 0
if $DAEMON --help | grep -q '^ndb-connectstring.*No default value'; then exit 0; fi
. /lib/lsb/init-functions

#
# main()
#
case "${1:-''}" in
  'start')
	# Start daemon
        # Creatign a PID file does not work as the master process forks
        # a child with different PID and then terminates itself.
	log_daemon_msg "Starting MySQL NDB cluster server" "ndbd"
	if start-stop-daemon \
		--start \
		--exec $DAEMON \
		--user mysql
	then
	  log_end_msg 0
	else
	  log_end_msg 1
	  log_warning_msg "Please take a look at the syslog."
	  exit 1
	fi			  
	;;

  'stop')
	log_daemon_msg "Stopping MySQL NDB cluster management server" "ndbd"	
	if start-stop-daemon \
		--stop \
		--oknodo \
		--exec $DAEMON
	then
	  log_end_msg 0
	else
	  log_end_msg 1
	  exit 1
        fi
	;;

  'restart'|'force-reload')
	set +e; $SELF stop; set -e
	$SELF start 
	;;

  *)
	echo "Usage: $SELF start|stop|restart|force-reload"
	exit 1
	;;
esac


/etc/init.d/mysql-ndb-mgm

Code:
#!/bin/bash
#
### BEGIN INIT INFO
# Provides:          mysql-ndb-mgm
# Required-Start:    $syslog
# Required-Stop:     $syslog mysql
# Should-Start:      $local_fs $remote_fs $network $named $time
# Should-Stop:       $local_fs $remote_fs $network $named $time
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start and stop the mysql database cluster management daemon
# Description:       Controls the MySQL database cluster management daemon
#                    "ndb_mgmd".
### END INIT INFO
#
set -e
set -u
${DEBIAN_SCRIPT_DEBUG:+ set -v -x}

# Variables
SELF=$(cd $(dirname $0); pwd -P)/$(basename $0)
DAEMON=/usr/sbin/ndb_mgmd
CONF=/etc/mysql/ndb_mgmd.cnf
export HOME=/etc/mysql/

# Safeguard (relative paths, core dumps..)
cd /
umask 077

# Exit *silently* if we're not supposed to be started.
#
# The Debian scripts should execute these scripts to stop and start
# the daemon when upgrading if it is started. On the other hand it should
# remain silently if the server has not even been configured.
# See /usr/share/doc/mysql-server-*/README.Debian for more information.
test -x $DAEMON || exit 0
test -r $CONF || exit 0
. /lib/lsb/init-functions

#
# main()
#
case "${1:-''}" in
  'start')
	# Start daemon
	log_daemon_msg "Starting MySQL NDB cluster management server" "ndb_mgmd"
	# --pid-file does not work as the daemon forks itself with $PID=$PID+1
	if start-stop-daemon \
		--start \
		--exec $DAEMON \
		--user mysql \
		-- \
		-f $CONF
	then
	  log_end_msg 0
	else
	  log_end_msg 1
	  log_warning_msg "Please take a look at the syslog."
	  exit 1
	fi			  
	;;

  'stop')
  	log_daemon_msg "Stopping MySQL NDB cluster management server" "ndb_mgmd"	
	if start-stop-daemon \
		--stop \
		--oknodo \
		--exec $DAEMON
	then
	  log_end_msg 0
	else
	  log_end_msg 1
	  exit 1
        fi
	;;

  'restart'|'force-reload')
	set +e; $SELF stop; set -e
	$SELF start 
	;;

  *)
	echo "Usage: $SELF start|stop|restart|force-reload"
	exit 1
	;;
esac
 
mysql-server wird doch garnicht gebraucht, ist doch eh nur ein Metapaket, welches eh leer ist. Damit du das runterkriegst wirst du im Verzeichnis /var/lib/dpkg/info die Scripte bearbeiten müssen. Auch wird man wohl dpkg direkt benutzen müssen. Ansonsten wirst du diesen Salat nicht wegkreigen.

Code:
dpkg --purge --ignore-depends=mysql-server mysql-server

Und mit dem anderen Paket das gleiche . Versuche das erst mal so.
 
Code:
~$ sudo dpkg --purge --ignore-depends=mysql-server mysql-server

dpkg - Warnung: Ignoriere den Wunsch, mysql-server zu entfernen; es ist nicht installiert.

Code:
~$ sudo dpkg --purge --ignore-depends=mysql-server mysql-server-5.0

(Lese Datenbank ... 107307 Dateien und Verzeichnisse sind derzeit installiert.)
Entferne mysql-server-5.0 ...
 * Stopping MySQL database server mysqld                                 [ ok ] 
Lösche Konfigurationsdateien von mysql-server-5.0 ...

Danach dann wieder per

Code:
sudo apt-get install mysql-server-5.0

um zum wiederholten Male die gleiche Fehlermeldung zu erhalten...

Falls es vielleicht hilft: Wenn ich

Code:
~$ sudo mysqld

probiere, kommt folgendes:

Code:
061224 13:31:33 [ERROR] Can't start server: Bind on TCP/IP port: Cannot assign requested address
061224 13:31:33 [ERROR] Do you already have another mysqld server running on port: 3306 ?
061224 13:31:33 [ERROR] Aborting

061224 13:31:33 [Note] mysqld: Shutdown complete

Danke schon mal an alle, dass ihr selbst am heiligen Abend eure Zeit für mich opfert. :)
 
Offenbar läuft da schon ein MySQL-Server. Was sagt
Code:
ps ax | grep sql
?
 
Dann poste mal folgendes

Code:
ps ax |grep my

Code:
aptiude search ^mysql
 
Und läuft er nicht doch schon?

Code:
~$ sudo mysqld

probiere, kommt folgendes:

Code:
061224 13:31:33 [ERROR] Can't start server: Bind on TCP/IP port: Cannot assign requested address
061224 13:31:33 [ERROR] [b][i][color=red]Do you already have another mysqld server running on port: 3306 ?[/color][/i][/b]
061224 13:31:33 [ERROR] Aborting

061224 13:31:33 [Note] mysqld: Shutdown complete
Hi... Und? Hast du da einen laufen? Mach mal ps ax | grep my oder nen Portscan auf dich selbst:
Code:
~> ps ax | grep my
 6779 ?        S      0:00 /bin/sh /usr/bin/mysqld_safe --user=mysql --pid-file=/var/lib/mysql/mysqld.pid --socket=/var/lib/mysql/mysql.sock --datadir=/var/lib/mysql
 6886 ?        Sl     0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/lib/mysql/mysqld.pid --skip-locking --port=3306 --socket=/var/lib/mysql/mysql.sock
 8951 pts/4    S+     0:00 grep my

~> nmap localhost | grep my
3306/tcp open  mysql
oder einfach nicht "mysqld" starten sondern mysql (erfolgreiches Login erstmal nicht nötig - es geht drum, ob MySQL antwortet..)
Code:
~> mysql -u jens -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8 to server version: 4.0.21

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>
 
Code:
taner@localhost:~$ ps ax | grep sql
10495 pts/0    R+     0:00 grep sql

Code:
taner@localhost:~$ ps ax | grep my
10491 pts/0    S+     0:00 grep my

Code:
taner@localhost:~$ aptitude search ^mysql
i   mysql-admin                     - GUI tool for intuitive MySQL administratio
i   mysql-admin-common              - Architecture independent files for MySQL A
i   mysql-client                    - mysql database client (current version)   
p   mysql-client-4.1                - mysql database client binaries            
i   mysql-client-5.0                - mysql database client binaries            
i   mysql-common                    - Allgemeine MySQL-Datenbank Dateien (z.B. /
v   mysql-common-4.1                -                                           
i   mysql-navigator                 - GUI Klient Programm für MySQL Datenbank Se
i   mysql-query-browser             - Official GUI tool to query MySQL database 
i   mysql-query-browser-common      - Architecture independent files for MySQL Q
p   mysql-server                    - mysql database server (current version)   
p   mysql-server-4.1                - mysql database server binaries            
C   mysql-server-5.0                - mysql database server binaries            
i   mysqltcl                        - Interface to the MySQL database for the Tc

Code:
taner@localhost:~$ sudo mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
 
Hmm, irgendwas blockiert bei dir den Port 3306, der normalerweise von MySQL genutzt wird. Offenbar ist es aber kein MySQL-Server. Was gibt dir 'netstat -tlnp | grep 3306' aus?
 
Schmeiß mal die anderen Pakete die zu mysql gehören genauso runter so wie beschrieben habe. Bevor das nicht alles restlos entfernt ist gibt das nix. Vor allem das ist das wichtigste

Code:
mysql-server-5.0

Achos um die Pakete markiert v und p mit brauchst du dich nicht zu kümmern. i und c müssen runter
 
Zuletzt bearbeitet:
Jo, ich würde auch empfehlen mal alles zu deinstallieren, was irgendwie mit MySQL zu tun hat. Auch die Bibliotheken, da du sowohl die für 4.1 und 5.0 installiert hast, was durchaus zu Konflikten führen kann.
 

Ähnliche Themen

Problem bei apt-get upgrade (Kali 2.0)

MySQL-Server lässt sich nicht installieren

Updatefehler acpid & acpi-support

hotkey-setup

E: Sub-process /usr/bin/dpkg returned an error code (1)

Zurück
Oben