开发者

Starting MySQL Error on Snow Leopard

ORIGINAL POST

I just erased and re-installed Snow Leopard. I installed MySQL 5.1.48 64-bit clean. I'm having issues with the MySQL server... when I boot the computer and log in, the server is not running. I tried to start it using the preference pane by clicking "Start MySQL Server", but all it did was highlight the button blue and think for like a minute, and then the button went back to normal and nothing happened.

I then tried starting it from the terminal:

Hristo$ sudo /usr/local/mysql/support-files/mysql.server start
Starting MySQL
.....................................................................
ERROR! Manager of pid-file quit without updating file.

so I checked the status:

Hristo$ sudo /usr/local/mysql/support-files/mysql.server status
Password:
/usr/local/mysql/support-files/mysql.server: line 418: pidof: command not found
 ERROR! MySQL is not running

I tried this:

Hristo$ /usr/local/mysql/bin/mysql -u root -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

So I'm not sure what to do. When I first installed, the server was working but I went to the preference pane to try and stop it… and the same thing happened… I clicked the "Stop MysQL Server" button, it did some thinking, then nothing. So I restarted the computer and now I'm having the above problems and apparently, the mysql.sock file is not in /tmp/ anymore. It was there when I installed, and it is not there after I restarted the computer.

Any ideas?

UPDATE

This is my /etc/my.cnf file.

[client]
socket = /var/mysql/mysql.sock

[mysqld]
socket = /var/mysql/mysql.sock

UPDATE 2

When setting up Apache, PHP, and MySQL, I followed these instructions: http://superfancy.net/coding/php-mysql-apache-in-mac-osx-leopard/ Right now, if I remove the MySQL configuration file, things seem to work fine. But when my.cnf exists in /etc/, things don't work. The MySQL verion is:

Hristo$ mysql --version
/usr/local/mysql/bin/mysql  Ver 14.14 Distrib 5.1.46, for apple-darwin9.8.0 (i386) using readline 5.1

UPDATE 3

mysql.err:

100706 11:38:36 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
100706 11:38:36 [Warning] '--log' is deprecated and will be removed in a future release. Please use ''--general_log'/'--general_log_file'' instead.
100706 11:38:36 [Warning] '--log_slow_queries' is deprecated and will be removed in a future release. Please use ''--slow_query_log'/'--slow_query_log_file'' instead.
100706 11:38:开发者_如何转开发36 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/mysql/data/ is case insensitive
100706 11:38:36 [Note] Plugin 'FEDERATED' is disabled.
100706 11:38:36  InnoDB: Started; log sequence number 0 69987
100706 11:38:36 [ERROR] Can't start server : Bind on unix socket: Permission denied
100706 11:38:36 [ERROR] Do you already have another mysqld server running on socket: /var/mysql/mysql.sock ?
100706 11:38:36 [ERROR] Aborting

100706 11:38:36  InnoDB: Starting shutdown...
100706 11:38:41  InnoDB: Shutdown completed; log sequence number 0 69987
100706 11:38:41 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete

mysql.log:

/usr/local/mysql/bin/mysqld, Version: 5.1.46-log (MySQL Community Server (GPL)). started with:
Tcp port: 0  Unix socket: /var/mysql/mysql.sock
Time                 Id Command    Argument


Install homebrew package manager with the quick install method http://github.com/mxcl/homebrew

Then from terminal

brew install mysql

and follow the short list of directions that follow the installation

to see the instructions again

brew info mysql


I think there is an error somewhere in your my.cnf file.

Try to take one of the stock my.cnf files or add options for user, pid-file, port, basedir, datadir, tmpdir under [mysqld] section (here's a quote of basic mysqld settings on linux machine, for OS X maybe this will help)

[mysqld]
#
# * Basic Settings
#

user        = mysql
pid-file    = /var/run/mysqld/mysqld.pid
socket      = /var/run/mysqld/mysqld.sock
port        = 3306
basedir     = /usr
datadir     = /var/lib/mysql
tmpdir      = /tmp
skip-external-locking

#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address        = 127.0.0.1


Just in case anyone else runs into this infuriating issue.....

Homebrew install of mysql, snow leopard (most recent update)

make sure your /usr/local/var/mysql and all subdirs is owned by current user!

sudo chown -R <user> /usr/local/var/mysql

if you want to startup mysql using the /etc/my.cnf and you are specifying something like

default-character-set=utf8

your server will never start. I believe MySql 5.5.x has this set by default. Comment this line out in your my.cnf file and mysql.server start should do the trick.


The file is supposed to be recreated every time that MySQL is loaded, but sometimes permissions will get in the way. Try manually creating /tmp/mysql.sock

On linux the command would be:

sudo touch /tmp/mysqld.sock

Then set the correct owner: sudo chown mysql:mysql /tmp/mysqld.sock

I assume command line on a mac would be the same.


I imagine that some of these other solutions will be appropriate for some other people, but I had all of these same symptoms (including the line 418: pidof: command not found issue), but my root cause was a little different.

I had a working /etc/my.cnf file that abruptly stopped working, so I was confident the problem was not my config. It turned out that a subdirectory under /usr/local/var/mysql/ was owned by _mysql:staff, when it should have been owned by me. After running chown -R 'whoami' /usr/local/var/mysql/, all was right with the world.


First of all you have to unlock that pid process then. stop mysql by srvice mysql stop After that type this command ps-ef| grep mysql It will show two pid of sql. kill both by kill -9 pid 1 pid2 then start sql by service mysql start.


There seems to be an error message:

line 418: pidof: command not found

Do you have pidof installed? Its manpage says:

pidof is simply a (symbolic) link to the killall5 program, which should also be located in /sbin

Perhaps the symlink doesn't exist or killall5 is not installed on your Mac OS?


http://dev.mysql.com/doc/refman/5.5/en/mysql-server.html

Quoting David Tonhofer:

And also add
-----------
echo "Manager PID file is $pid_file, Server PID file is $server_pid_file"
-----------
directly before the line 'case "$mode" in'
for some great debugging justice.

My initial guess was that the mysqld doesn't have permission to update / delete its pidfile, and probably there is a left-over pidfile that needs to be removed by hand. But "great debugging justice" sounds too good to miss. :)


Try to install it as a part of MAMP . That will install a mysql server in a different location ( Applications/MAMP/mysql along with apache etc. Then you can just use the widget to start it. You can also monitor the activity with the acitivity monitor (Applications/utilities) . Besides:

Deleting: /Applications/MAMP/tmp/mysql/mysql.pid

and restarting does help often.

HTH


If you installed view homebrew, try

unset TMPDIR
mysql_install_db
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜