Mel*_*emi 6 mysql sockets ruby-on-rails mysql.sock osx-server
更新:我已经停止了正在运行并引起一些混乱的旧 mysql 进程。现在我想我只运行了较新的 (5.1.40) 版本。但是,它指向错误的数据文件。它指向默认安装数据文件,我希望它指向/var/mysql. 这是 /etc/my.cnf 的一部分
# The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3306
socket = /var/mysql/mysql.sock
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
port = 3306
socket = /var/mysql/mysql.sock
Run Code Online (Sandbox Code Playgroud)
这是指向较旧的 mysql.sock。我似乎无法在较新的 MySQL 安装的目录树中找到?!?除非它在某个不为人知的地方。
有人帮忙吗?基本上我安装了一个更新的 MySQL,现在需要让这个新版本用我现有的数据启动。并整理出这个 mysql.sock 的东西....
我最近在 Mac OS X 服务器上更新了 MySQL,并且从 Rails 应用程序连接到它的时间很长。或始终从命令行开始。
我确定这对我来说是一个明显的错误,但我只有中等的命令行经验,所以希望有人能提供帮助......
还相关的是我的 rails 应用程序无法再连接。无法通过连接,/tmp/mysql.sock但我不确定它为什么在那里寻找,因为 /tmp 中没有 mysql.sock,我不知道它应该在哪里/在哪里......
编辑:从 mysql_config --sockets 添加结果
$ mysql_config --sockets
Usage: /usr/local/mysql/bin/mysql_config [OPTIONS]
Options:
--cflags [-I/usr/local/mysql/include -g -Os -arch ppc -fno-common -D_P1003_1B_VISIBLE -DSIGNAL_WITH_VIO_CLOSE -DSIGNALS_DONT_BREAK_READ -DIGNORE_SIGHUP_SIGQUIT -DDONT_DECLARE_CXA_PURE_VIRTUAL]
--include [-I/usr/local/mysql/include]
--libs [-arch ppc -L/usr/local/mysql/lib -lmysqlclient -lz -lm -lmygcc]
--libs_r [-arch ppc -L/usr/local/mysql/lib -lmysqlclient_r -lz -lm -lmygcc]
--plugindir [/usr/local/mysql/lib/plugin]
--socket [/tmp/mysql.sock]
--port [0]
--version [5.1.40]
--libmysqld-libs [-arch ppc -L/usr/local/mysql/lib -lmysqld -ldl -lz -lm -lmygcc]
Run Code Online (Sandbox Code Playgroud)
Edit2 which mysql_config
$ which mysql_config
/usr/local/mysql/bin/mysql_config
Run Code Online (Sandbox Code Playgroud)
您正在尝试为服务器和客户端使用不同的套接字。你的 Rails 正在尝试连接到 /tmp/mysql.sock,MySQL 正在监听 /var/mysql/mysql.sock。
通常MySQL配置存储在/etc/my.cnf中,但在你ps的输出中我看到套接字路径作为参数给出。所以实际上取决于您系统的具体情况。
无论如何,查看 /etc/my.cnf 和你的database.yml并确保mysql.sock出现在两个文件中的相同路径中。