thanos trompoukis wrote:
Hi all, I am new with FreeBSD and I have a problem with mysql.I have 6.2Release i386 I am running mysql 5.0.27 and It worked perfectly until the time that I formated /tmp (for some other reason) and now when I am trying to connect on mysql *I get this:* *[r...@leonidas:/]$ mysql ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock2' (38)* *and when I edit /var/db/mysql/leonidas.MSHOME.err I see this:* *090628 14:49:19 mysqld started 090628 14:49:19 [Warning] Ignoring user change to 'ser=mysql' because the user was set to 'mysql' e 090628 14:49:20 InnoDB: Started; log sequence number 0 43655 090628 14:49:20 [ERROR] Can't start server : Bind on unix socket: Permission denied 090628 14:49:20 [ERROR] Do you already have another mysqld server running on socket: /tmp/mysql.soc 090628 14:49:20 [ERROR] Aborting 090628 14:49:20 InnoDB: Starting shutdown... 090628 14:49:22 InnoDB: Shutdown completed; log sequence number 0 43655 090628 14:49:22 [Note] /usr/local/libexec/mysqld: Shutdown complete 090628 14:49:22 mysqld ended *I have checked /tmp and there is no mysql.sock file. (because I formated /tmp immagine) I wouldn't like to loose my database, and I have no idea.... What I have to do? Thanx! :D
You've apparently got a copy of mysql still running, despite trashing everything in /tmp. You can confirm that by: % sockstat | grep mysql Now, if sockstat shows that mysql is listening on a network interface, then you may just be able to log into it over a network connection and shut it down cleanly. If not, then you have no alternative by to signal the process to death and then let it repair the datafiles as it restarts. * If you have to kill mysql by signalling it: At first, try: # kill -15 `ps -ax | grep mysqld | cut -d ' ' -f 2` If it doesn't work immediately, leave mysql for 5 minutes, and see if it has shut down yet. Try again if not, possibly several times. Failing that, use: # kill -9 `ps -ax | grep mysqld | cut -d ' ' -f 2` But this last really should be avoided, as it causes the process to crash without any opportunity to close itself down nicely.* If mysql is listening on a network interface -- preferably any of 127.0.0.1:3306, [::1]:3306 or *:3306
Try using mysqladmin to shut it down cleanly. Note that mysql does special shortcut things when hostname is localhost and tries to use the socket in /tmp/mysql.sock -- which doesn't help you at all. You can force it to make a *network* connection to localhost by: # mysqladmin -h localhost -P 3306 --protocol=TCP -u root -p shutdown This will prompt you for the mysql root password. If mysqladmin doesn't work, then try using kill as above. Your data *should* survive MySQL being forcibly restarted in either of these ways. MySQL takes very great pains to ensure data is written to persistent media (ie. disk) in order to provide proper ACID compliance. However, if mysql does get killed, it will need to do some repair work on data structures when it next starts up, and that can take a while. Because writing out its PID file is one of the last things mysql does in the startup sequence '/usr/local/etc/rc.d/mysql-server status' will report 'not running' during this repair work, so be a bit patient if you see that. Cheers, Matthew -- Dr Matthew J Seaman MA, D.Phil. 7 Priory Courtyard Flat 3 PGP: http://www.infracaninophile.co.uk/pgpkey Ramsgate Kent, CT11 9PW
signature.asc
Description: OpenPGP digital signature