[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: mysqld_safe 'Can't connect to local MySQL server through socket' from bash



Am 27.09.2013 09:30, schrieb Vladimir Skubriev:
Здраствуйте.

Объясните пожалуйста почем из bash скрипта mysql не соединяется с сервером

Cкрипт останавливается на строке

mysql --socket=/tmp/mysqld_safe.socket < /tmp/mysql_flush_root.sql; if !
[ $? -eq 0 ]; then exit 1001; fi

и пишет:

root@comp:/home/srvadm# /tmp/script
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using
password: YES)
mysql stop/waiting
ERROR 2002 (HY000): Can't connect to local MySQL server through socket
'/tmp/mysqld_safe.socket' (2)

#!/bin/bash
mysql -u root --password=12345678 mysql -e 'show databases;'
if ! [ $? -eq 0 ]; then
service mysql stop; if ! [ $? -eq 0 ]; then exit 1000; fi; sleep 1
mysqld_safe --skip-grant-tables --socket=/tmp/mysqld_safe.socket
--pid-file=/tmp/mysqld_safe.pid >/dev/null &
# chown root:root /tmp/mysqld_safe.socket
# chmod 777 /tmp/mysqld_safe.socket
echo "use mysql;" > /tmp/mysql_flush_root.sql
echo "update user set password=PASSWORD("12345678") where User='root'; "
 >> /tmp/mysql_flush_root.sql
echo "flush privileges;" >> /tmp/mysql_flush_root.sql
mysql --socket=/tmp/mysqld_safe.socket < /tmp/mysql_flush_root.sql; if !
[ $? -eq 0 ]; then exit 1001; fi
rm /tmp/mysql_flush_root.sql
kill -TERM $(cat /tmp/mysqld_safe.pid); if ! [ $? -eq 0 ]; then exit
1002; fi
else exit 0;
fi


Но если просто из консоли запустить
# mysql --socket=/tmp/mysqld_safe.socket
или даже
# mysql -h 192.168.128.12

то все ОК


странно что именно из скрипта не работает соединение.

root@192.168.1.10:/home/srvadm# netstat -alnp | grep mysql
tcp 0 0 192.168.128.12:3306 0.0.0.0:* LISTEN 19636/mysqld
unix 2 [ ACC ] STREAM LISTENING 2464437 19636/mysqld
/tmp/mysqld_safe.socket


root 18762 0.0 0.0 4400 744 pts/1 S 11:16 0:00 /bin/sh
/usr/bin/mysqld_safe --skip-grant-tables
--socket=/tmp/mysqld_safe.socket --pid-file=/tmp/mysqld_safe.pid
mysql 19636 0.1 1.1 795908 90144 pts/1 Sl 11:16 0:00 /usr/sbin/mysqld
--basedir=/usr --datadir=/var/lib/mysql
--plugin-dir=/usr/lib/mysql/plugin --user=mysql --skip-grant-tables
--open-files-limit=1024 --pid-file=/tmp/mysqld_safe.pid
--socket=/tmp/mysqld_safe.socket --port=3306
root 19637 0.0 0.0 4304 664 pts/1 S 11:16 0:00 logger -t mysqld -p
daemon.error
root 19750 0.0 0.0 6504 588 pts/1 S+ 11:20 0:00 grep --color=auto mysql



от какого user работает mysqld?
должет от mysql

--
..
Developer forum http://wiedergold.org/forum/index.php


Reply to: