我刚刚删除并重新安装了Snow Leopard。我安装了MySQL 5.1.48 64位清理。我遇到了MySQL服务器的问题......当我启动计算机并登录时,服务器没有运行。我尝试通过单击“启动MySQL服务器”使用首选项窗格启动它,但它所做的只是突出显示按钮蓝色并想一会儿,然后按钮恢复正常并且没有任何反复发生。
然后我尝试从终端启动它:
Hristo$ sudo /usr/local/mysql/support-files/mysql.server start
Starting MySQL
.....................................................................
ERROR! Manager of pid-file quit without updating file.
所以我检查了状态:
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
我试过了:
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)
所以我不知道该怎么做。当我第一次安装时,服务器正在工作,但我去了偏好窗格试图阻止它...同样的事情发生了......我点击了“停止MysQL服务器”按钮,它做了一些思考,然后什么也没做。所以我重新启动计算机,现在我遇到了上述问题,显然,mysql.sock文件不在/ tmp /中。我安装的时候就在那里,重新启动计算机后就不存在了。
有什么想法吗?
这是我的/etc/my.cnf
文件。
[client]
socket = /var/mysql/mysql.sock
[mysqld]
socket = /var/mysql/mysql.sock
在设置Apache,PHP和MySQL时,我遵循了以下指示:http://superfancy.net/coding/php-mysql-apache-in-mac-osx-leopard/现在,如果我删除MySQL配置文件,事情似乎工作正常。但是当my.cnf
中存在/etc/
时,事情就不起作用了。 MySQL版本是:
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
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
答案 0 :(得分:16)
使用快速安装方法安装自制软件包管理器 http://github.com/mxcl/homebrew
然后从终端
brew install mysql
并按照安装后的简短说明列表
再次查看说明
brew info mysql
答案 1 :(得分:5)
我认为你的my.cnf文件中存在错误。
尝试获取其中一个my.cnf文件或在[mysqld]部分下添加用户,pid-file,port,basedir,datadir,tmpdir的选项(这里是linux机器上基本mysqld设置的引用,适用于OS X也许this会有所帮助)
[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
答案 2 :(得分:4)
以防万一其他人遇到这个令人愤怒的问题......
自制软件安装mysql,雪豹(最新更新)
确保您的/usr/local/var/mysql
和所有子目录都归当前用户所有!
sudo chown -R <user> /usr/local/var/mysql
如果你想使用/etc/my.cnf
启动mysql并指定类似
default-character-set=utf8
您的服务器永远不会启动。我相信默认情况下MySql 5.5.x有这个设置。在my.cnf文件中注释掉这一行 mysql.server start应该可以做到。
答案 3 :(得分:3)
每次加载MySQL时都应重新创建该文件,但有时权限会受到影响。尝试手动创建/tmp/mysql.sock
在linux上,命令是:
sudo touch /tmp/mysqld.sock
然后设置正确的所有者:
sudo chown mysql:mysql /tmp/mysqld.sock
我假设mac上的命令行是相同的。
答案 4 :(得分:3)
我认为其他一些解决方案适合其他人,但我有所有这些相同的症状(包括line 418: pidof: command not found
问题),但我的根本原因有点不同。
我有一个工作/etc/my.cnf
文件突然停止工作,所以我确信问题不是我的配置。事实证明,/usr/local/var/mysql/
下的子目录由_mysql:staff所有,当它应该由我拥有时。运行chown -R 'whoami' /usr/local/var/mysql/
后,一切都与世界相符。
答案 5 :(得分:2)
首先,你必须解锁那个pid进程。 srvice mysql stop
停止mysql
在那之后输入这个命令ps-ef| grep mysql
它将显示两个sid的pid。杀死两个
kill -9 pid 1 pid2
然后按service mysql start
启动sql。
答案 6 :(得分:1)
似乎有一条错误消息:
line 418: pidof: command not found
您是否安装了pidof
? Its manpage说:
pidof只是一个(符号)链接到killall5程序,它也应该位于/ sbin
也许符号链接不存在或者Mac OS上没有安装killall5?
答案 7 :(得分:0)
http://dev.mysql.com/doc/refman/5.5/en/mysql-server.html
引用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.
我最初的猜测是mysqld没有更新/删除其pidfile的权限,可能还有一个需要手动删除的遗留pidfile。但“伟大的调试正义”听起来好得令人难以置信。 :)
答案 8 :(得分:0)
尝试将其安装为MAMP的一部分。这将在不同的位置安装一个mysql服务器(Applications / MAMP / mysql以及apache等。然后你可以使用它来启动它。你也可以使用acitivity监视器(应用程序/实用程序)监视活动。
删除:/Applications/MAMP/tmp/mysql/mysql.pid
并且重新启动确实有帮助。
HTH
答案 9 :(得分:0)
如果您安装了查看自制程序,请尝试
unset TMPDIR
mysql_install_db