mysql will not start

2.6.37.6-0.5-desktop
KDE Platform Version 4.6.3 (4.6.3) “release 4”
fj8u:~> rpm -qa |grep mysql
libmysqlclient16-5.1.53-4.7.1.x86_64
mysql-community-server-5.1.53-4.7.1.x86_64
libreoffice-base-drivers-mysql-3.3.2.2-1.3.x86_64
php5-mysql-5.3.5-5.12.1.x86_64
mysql-community-server-client-5.1.53-4.7.1.x86_64
libreoffice-base-drivers-mysql-debuginfo-3.3.2.2-1.3.x86_64
libmysqlclusterclient16-7.1.9a-4.7.2.x86_64
perl-DBD-mysql-4.018-4.2.x86_64
libmysqlclient_r16-32bit-5.1.53-4.7.1.x86_64
libqt4-sql-mysql-32bit-4.7.3-170.1.x86_64
libqt4-sql-mysql-4.7.3-170.1.x86_64
libmysqlclient-devel-5.1.53-4.7.1.x86_64
libmysqlclient_r16-5.1.53-4.7.1.x86_64
libmysqld0-5.1.53-4.7.1.x86_64
Should the clusterclient be installed?

Problem: mysql service will not start. Think cause was
unsuccesful upadate of mysql. Then dropped back to original
version. Cannot start service mysql from YaST.

Apache and php appear to be working. info.php works. If I
start mysqld_safe from a command line it starts and then
going to another terminal session I can can log into the
database and run queries etc. After quiting mysql wit \q
mysql_safe stay alive on terminal it was started on.
<Code>

sudo /usr/bin/mysqld_safe
root’s password:
110520 10:57:43 mysqld_safe Logging to
‘/var/log/mysql/mysqld.log’.
110520 10:57:43 mysqld_safe Starting mysqld daemon with
databases from /var/lib/mysql_safe
</Code>

Bad startups:
<Code>

Starting mysql service from YaST:
/etc/init.d/mysql start returned 1 (unspecified error):

Starting from command line:
fj8u:~> mysql -h localhost -u root -p
Enter password: xxxxxxxx
ERROR 2002 (HY000): Can’t connect to local MySQL server
through socket ‘/var/run/mysql/mysql.sock’ (2)
</Code>

Looking at /var/run/mysql/mysql.sock there is no socket
installed because the service would not start under YaST.
<Code>

fj8u:/var/run/mysql> whereis mysqld
mysqld: /usr/sbin/mysqld /usr/share/man/man8/mysqld.8.gz
fj8u:whereis mysqld_safe

fj8u:mysqld_safe: /usr/bin/mysqld_safe
/usr/bin/X11/mysqld_safe /usr/share/man/man1/mysqld_safe.1.gz

fj8u:/var/run/mysql> ls -l /usr/sbin/mysqld
-rwxr-xr-x 1 root root 7744856 Feb 20 17:21 /usr/sbin/mysqld
fj8u:/var/run/mysql> ls -l /usr/bin/mysqld_safe
-rwxr-xr-x 1 root root 17047 Feb 20 17:19
/usr/bin/mysqld_safe

fj8u:/var/run/mysql> ls
protecteddir tmpdir
</Code>

Question should the owner:group of these be mysql:mysql?

There is a mysql user and mysql group. My id is in the mysql
group.

Any help will be greatly appreciated.

Russ
openSUSE 11.4 MS1 (2.6.37.6-0.5-desktop)|Platform Version
4.6.3 (4.6.3) “release 4”|Intel core2duo 2.5 MHZ,|8GB DDR3|
GeForce 8400GS (NVIDIA-Linux-x86_64-270.41.06)

Hello,
what is in your /etc/my.cnf?

Your owner should not be a member of group mysql:
grep mysql /etc/group
mysql:!:105:

See also here:
How to install Apache, PHP and MySQL on Linux: Part 1 | laffers.net

You should not do this. When you do this, logs and database files become owned by root and this will impede future startups, because the mysql daemon runs as the mysql account. The correct way is

/etc/init.d/mysql start

Starting from command line:
fj8u:~> mysql -h localhost -u root -p
Enter password: xxxxxxxx
ERROR 2002 (HY000): Can’t connect to local MySQL server
through socket ‘/var/run/mysql/mysql.sock’ (2)

This is not the service, this is the client program. You are confused between server and client.

The fix is for you to return all files under /var/lib/mysql and /var/log/mysql to mysql ownership and then start it up the correct way.

mahol wrote:

>
> Hello,
> what is in your /etc/my.cnf?
>
> Your owner should not be a member of group mysql:
> grep mysql /etc/group
> mysql:!:105:
>
> See also here:
> ‘How to install Apache, PHP and MySQL on Linux: Part 1 |
laffers.net
> (http://laffers.net/howtos/howto-install-mysql/)
>
Removed myself from group mysql, rebooted. No difference,
mysql service will not start. Error code 1 (unknown reason).

The issue seems to be that mysql service does not put the
socket in /var/run/mysql/. When I start mysqld_safe from the
command line a mysql.sock is put in that directory. And I can
log in as root, myuser id, etc both from the command line,
mysqladmin and phpmyadmin.

I looked at the script for starting mysql in
/etc/init.d/rc.2. looks good as far as I can tell but I’m not
a programmer so I don’t know everything it is doing.

Thanks for replying. I read the article you mentioned, even
though I used the same basic procedure I’ve used since 9.0.
This is first time I have had a problem. I’m sure it was
something I did trying to update mysql through the community
repo.

I’ll keep looking. Saw a few new bugs on bugzilla but problem
was sightly different.

Here’s my my.cnf from etc. none in ~/home.

Example MySQL config file for medium systems.

This is for a system with little memory (32M - 64M) where

MySQL plays

an important part, or systems up to 128M where MySQL is

used together with

other programs (such as a web server)

You can copy this file to

/etc/my.cnf to set global options,

mysql-data-dir/my.cnf to set server-specific options (in

this

installation this directory is /var/lib/mysql) or

~/.my.cnf to set user-specific options.

In this file, you can use all long options that a program

supports.

If you want to know which options a program supports, run

the program

with the “–help” option.

The following options will be passed to all MySQL clients

[client]
#password = your_password
port = 3306
socket = /var/run/mysql/mysql.sock

Here follows entries for some specific programs

The MySQL server

[mysqld]
port = 3306
socket = /var/run/mysql/mysql.sock

Change following line if you want to store your database

elsewhere
datadir = /var/lib/mysql
skip-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M

Don’t listen on a TCP/IP port at all. This can be a

security enhancement,

if all processes that need to connect to mysqld run on the

same host.

All interaction with mysqld must be made via Unix sockets

or named pipes.

Note that using this option without enabling named pipes on

Windows

(via the “enable-named-pipe” option) will render mysqld

useless!

#skip-networking

Replication Master Server (default)

binary logging is required for replication

log-bin=mysql-bin

binary logging format - mixed recommended

binlog_format=mixed

required unique id between 1 and 2^32 - 1

defaults to 1 if master-host is not set

but will not function as a master if omitted

server-id = 1

Replication Slave (comment out master section to use this)

To configure this host as a replication slave, you can

choose between

two methods :

1) Use the CHANGE MASTER TO command (fully described in our

manual) -

the syntax is:

CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>,

MASTER_USER=<user>, MASTER_PASSWORD=<password> ;

where you replace <host>, <user>, <password> by quoted

strings and

<port> by the master’s port number (3306 by default).

Example:

CHANGE MASTER TO MASTER_HOST=‘125.564.12.1’,

MASTER_PORT=3306,

MASTER_USER=‘joe’, MASTER_PASSWORD=‘secret’;

OR

2) Set the variables below. However, in case you choose

this method, then

start replication for the first time (even

unsuccessfully, for example

if you mistyped the password in master-password and the

slave fails to

connect), the slave will create a master.info file, and

any later

change in this file to the variables’ values below will

be ignored and

overridden by the content of the master.info file,

unless you shutdown

the slave server, delete master.info and restart the

slaver server.

For that reason, you may want to leave the lines below

untouched

(commented) and instead use CHANGE MASTER TO (see above)

required unique id between 2 and 2^32 - 1

(and different from the master)

defaults to 2 if master-host is set

but will not function as a slave if omitted

#server-id = 2

The replication master for this slave - required

#master-host = <hostname>

The username the slave will use for authentication when

connecting

to the master - required

#master-user = <username>

The password the slave will authenticate with when

connecting to

the master - required

#master-password = <password>

The port the master is listening on.

optional - defaults to 3306

#master-port = <port>

binary logging - not required for slaves, but recommended

#log-bin=mysql-bin

Point the following paths to different dedicated disks

#tmpdir = /tmp/
#log-update = /path-to-dedicated-directory/hostname

Uncomment the following if you are using InnoDB tables

#innodb_data_home_dir = /var/lib/mysql/
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = /var/lib/mysql/

You can set …_buffer_pool_size up to 50 - 80 %

of RAM but beware of setting memory usage too high

#innodb_buffer_pool_size = 16M
#innodb_additional_mem_pool_size = 2M

Set …_log_file_size to 25 % of buffer pool size

#innodb_log_file_size = 5M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50

The safe_mysqld script

[safe_mysqld]
log-error = /var/log/mysql/mysqld.log
socket = /var/run/mysql/mysql.sock

!include_dir /etc/mysql

[mysqldump]
socket = /var/run/mysql/mysql.sock
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

Remove the next comment character if you are not familiar

with SQL
#safe-updates

[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

[mysqld_multi]
mysqld = /usr/bin/mysqld_safe
mysqladmin = /usr/bin/mysqladmin
log = /var/log/mysqld_multi.log

user = multi_admin

password = secret

If you want to use mysqld_multi uncomment 1 or more mysqld

sections

below or add your own ones.

WARNING

--------

If you uncomment mysqld1 than make absolutely sure, that

database mysql,

configured above, is not started. This may result in

corrupted data!

[mysqld1]

port = 3306

datadir = /var/lib/mysql

pid-file = /var/lib/mysql/mysqld.pid

socket = /var/lib/mysql/mysql.sock

user = mysql

[mysqld2]

port = 3307

datadir = /var/lib/mysql-databases/mysqld2

pid-file = /var/lib/mysql-databases/mysqld2/mysql.pid

socket = /var/lib/mysql-databases/mysqld2/mysql.sock

user = mysql

[mysqld3]

port = 3308

datadir = /var/lib/mysql-databases/mysqld3

pid-file = /var/lib/mysql-databases/mysqld3/mysql.pid

socket = /var/lib/mysql-databases/mysqld3/mysql.sock

user = mysql

[mysqld6]

port = 3309

datadir = /var/lib/mysql-databases/mysqld6

pid-file = /var/lib/mysql-databases/mysqld6/mysql.pid

socket = /var/lib/mysql-databases/mysqld6/mysql.sock

user = mysql

Thanks again.


Russ
openSUSE 11.4 MS1 (2.6.37.6-0.5-desktop)|Platform Version
4.6.3 (4.6.3) “release 4”|Intel core2duo 2.5 MHZ,|8GB DDR3|
GeForce 8400GS (NVIDIA-Linux-x86_64-270.41.06)

ken yap wrote:

>
> upscope;2342439 Wrote:
>> sudo /usr/bin/mysqld_safe
>> root’s password:
>> 110520 10:57:43 mysqld_safe Logging to
>> ‘/var/log/mysql/mysqld.log’.
>> 110520 10:57:43 mysqld_safe Starting mysqld daemon with
>> databases from /var/lib/mysql_safe
>
> You should not do this. When you do this, logs and database
files
> become owned by root and this will impede future startups,
because the
> mysql daemon runs as the mysql account. The correct way is
>
>
> Code:
> --------------------
> /etc/init.d/mysql start
> --------------------
>
>
>> Starting from command line:
>> fj8u:~> mysql -h localhost -u root -p
>> Enter password: xxxxxxxx
>> ERROR 2002 (HY000): Can’t connect to local MySQL server
>> through socket ‘/var/run/mysql/mysql.sock’ (2)
>
> This is not the service, this is the client program. You
are confused
> between server and client.
>
> The fix is for you to return all files under /var/lib/mysql
and
> /var/log/mysql to mysql ownership and then start it up the
correct way.
>
Ken Thanks for the reply. made changes you suggested but
still get error. All files and subfolders under both
directories listed above are now mysql:mysql, permissions all
appear to be 660.

Here’s message I get with start command after complete
reboot:

fj8u:~> sudo /etc/init.d/mysql status
root’s password:
Checking for service MySQL:
unused
finemanruss@linux-fj8u:~> sudo /etc/init.d/mysql start
Will update MySQL now, if you encounter any problems, please
read following file:
/usr/share/doc/packages/mysql-community-
server/README.SuSE
Running protected MySQL…
Upgrading MySQL…
Looking for ‘mysql’ as: /usr/bin/mysql
Looking for ‘mysqlcheck’ as: /usr/bin/mysqlcheck
Running ‘mysqlcheck’ with connection arguments: ‘–port=3306’
‘–socket=/var/run/mysql/mysql.sock’ ‘–
socket=/var/tmp/mysql-protected.t2ycg6/mysql.sock’
Running ‘mysqlcheck’ with connection arguments: ‘–port=3306’
‘–socket=/var/run/mysql/mysql.sock’ ‘–
socket=/var/tmp/mysql-protected.t2ycg6/mysql.sock’
/usr/bin/mysqlcheck: Got error: 1102: Incorrect database name
‘’ when executing ‘CHECK TABLE … FOR UPGRADE’
FATAL ERROR: Upgrade failed
KMyMoney.kmmAccounts OK
KMyMoney.kmmBudgetConfig OK
KMyMoney.kmmCurrencies OK
KMyMoney.kmmFileInfo OK
KMyMoney.kmmInstitutions OK
KMyMoney.kmmKeyValuePairs OK
KMyMoney.kmmPayees OK
KMyMoney.kmmPrices OK
KMyMoney.kmmReportConfig OK
KMyMoney.kmmSchedulePaymentHistory OK
KMyMoney.kmmSchedules OK
KMyMoney.kmmSecurities OK
KMyMoney.kmmSplits OK
KMyMoney.kmmTransactions OK

failed

Not sure why its trying upgrade, never saw this before. All
database names in /var/lib/mysql appear correct, so I’m not
sure what the error is referencing. Still no socket in
/var/run/mysql.


Russ
openSUSE 11.4 MS1 (2.6.37.6-0.5-desktop)|Platform Version
4.6.3 (4.6.3) “release 4”|Intel core2duo 2.5 MHZ,|8GB DDR3|
GeForce 8400GS (NVIDIA-Linux-x86_64-270.41.06)

Are those databases from a previous version of MySQL?

ken yap wrote:

>
> Are those databases from a previous version of MySQL?
>
No same version I think. I tried to update to newer version
and if did not work so I droped back to the version in oss.
Is there a way to tell what version they are from. They were
all working prior to attempted update. Also they work if I
start manual with mysql_safe. I can run querries from
phpMyAdmin, add need info and save the databases etc. Also
from the command line.

When I run from mysql_safe it puts a mysql.sock in
/var/run/mysql/. If I don’t reboot it stays there. If I
shutdown or restart the OS, mysql under YaST Services, fails.
And there is no socket in the /var location.

If I understand the init.d start should call mysqld oe
mysql_safe and that script puts the socket in
/var/run/mysql/.

Also is there a way to single step thru the script.

I have even uninstalled the mysql rpms and reinstalled them.
I think its some kind of permission problem, but I’m not sure
where. Running mysql with root ID instead of mine gets same
errors. Each ID has its own password.

If I get desperate. I could go in and backup mysql database
and drop all the databases, and restore them. Not sure if
that will help. I have MAy 7th backups of all but the newest
Database. I could also recreate it, it was a csv import. It
is the only one that has changed since May 7th.

Do you think I should try updating from the community
database repo again?

Thanks for your continuing help.

Russ


Russ
openSUSE 11.4 MS1 (2.6.37.6-0.5-desktop)|Platform Version
4.6.3 (4.6.3) “release 4”|Intel core2duo 2.5 MHZ,|8GB DDR3|
GeForce 8400GS (NVIDIA-Linux-x86_64-270.41.06)

Looks like your database is pear-shaped. If I were you I would remove /var/lib/mysql (which will delete all the databases), reinstall the mysql RPM from the official openSUSE repo and reimport your databases.

ken yap wrote:

>
> Looks like your database is pear-shaped. If I were you I
would remove /var/lib/mysql (which will delete all the
databases), reinstall the mysql RPM from the official
openSUSE repo and reimport your databases.
>
Ken just to let you know. This worked great. Not sure what
was screwed up but the reinstall corrected it. I was able to
restore all of my data bases.

I did have another problem after this. AKonadi Server would
not start, no mysql.sock in ~/.local/share/akonadi/socket-
linux-fj8u/ but I copied one in and kmail, etc started
working also. After reboot I had two sockets in here so I
deleted one and everything works.

Also found what appears to be problem in mysql–>database–>
export but have not had time to check it.

Wil open bug report if its not something set up wrong.

Again thanks for all your help!!


Russ
openSUSE 11.4 MS1 (2.6.37.6-0.5-desktop)|Platform Version
4.6.3 (4.6.3) “release 4”|Intel core2duo 2.5 MHZ,|8GB DDR3|
GeForce 8400GS (NVIDIA-Linux-x86_64-270.41.06)

upscope wrote:

> ken yap wrote:
>
>>
>> Looks like your database is pear-shaped. If I were you I
> would remove /var/lib/mysql (which will delete all the
> databases), reinstall the mysql RPM from the official
> openSUSE repo and reimport your databases.
>>
> Ken just to let you know. This worked great. Not sure what
> was screwed up but the reinstall corrected it. I was able
to
> restore all of my data bases.
>
> I did have another problem after this. AKonadi Server would
> not start, no mysql.sock in ~/.local/share/akonadi/socket-
> linux-fj8u/ but I copied one in and kmail, etc started
> working also. After reboot I had two sockets in here so I
> deleted one and everything works.
>
> Also found what appears to be problem in mysql–>database–
>
> export but have not had time to check it.
>
> Wil open bug report if its not something set up wrong.
>
> Again thanks for all your help!!
>
Actually should have said bug in phpMyAdin.

Russ
openSUSE 11.4 MS1 (2.6.37.6-0.5-desktop)|Platform Version
4.6.3 (4.6.3) “release 4”|Intel core2duo 2.5 MHZ,|8GB DDR3|
GeForce 8400GS (NVIDIA-Linux-x86_64-270.41.06)