Jam*_*nan 83 mysql macos ruby-on-rails-3
我有一个标准的Rails3环境,RVM 1.2.9,Rails 3.0.5,Ruby 1.9.2p180,MySQL2 Gem 0.2.7,mysql-5.5.10-osx10.6-x86_64
运行rake db:migrate
创建数据库时遇到的错误是:
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Run Code Online (Sandbox Code Playgroud)
config/database.yml有
development:
adapter: mysql2
host: localhost
username: root
password: xxxx
database: xxxx
Run Code Online (Sandbox Code Playgroud)
确定这是我想念的简单事.
Tob*_*hen 207
首先,找到你的套接字文件:
mysqladmin variables | grep socket
Run Code Online (Sandbox Code Playgroud)
对我来说,这给了:
| socket | /tmp/mysql.sock |
Run Code Online (Sandbox Code Playgroud)
然后,添加一行到您的config/database.yml
:
development:
adapter: mysql2
host: localhost
username: root
password: xxxx
database: xxxx
socket: /tmp/mysql.sock
Run Code Online (Sandbox Code Playgroud)
Jam*_*nan 82
找到了!
将host: localhost
config/database.yml 更改host: 127.0.0.1
为使rails通过TCP/IP而不是本地套接字连接.
development:
adapter: mysql2
host: 127.0.0.1
username: root
password: xxxx
database: xxxx
Run Code Online (Sandbox Code Playgroud)
sug*_*ane 11
您的mysql服务器可能没有运行.下面介绍如何启动服务器.这是mysql下载附带的README文件的摘录.
安装完成后,可以通过在终端窗口中运行以下命令来启动MySQL.您必须具有管理员权限才能执行此任务.
如果已安装启动项,请使用以下命令:
shell> sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
(ENTER YOUR PASSWORD, IF NECESSARY)
(PRESS CONTROL-D OR ENTER "EXIT" TO EXIT THE SHELL)
Run Code Online (Sandbox Code Playgroud)
如果不使用"启动项",请输入以下命令序列:
shell> cd /usr/local/mysql
shell> sudo ./bin/mysqld_safe
(ENTER YOUR PASSWORD, IF NECESSARY)
(PRESS CONTROL-Z)
shell> bg
(PRESS CONTROL-D OR ENTER "EXIT" TO EXIT THE SHELL)
Run Code Online (Sandbox Code Playgroud)
这些是解决此问题的选项:
选项 1:将您的主机更改为 127.0.0.1
staging:
adapter: mysql2
host: 127.0.0.1
username: root
password: xxxx
database: xxxx
socket: your-location-socket
Run Code Online (Sandbox Code Playgroud)
选项 2:您似乎有 2 个连接到服务器 MySql。要找到您的套接字文件位置,请执行以下操作:
mysqladmin variables | grep socket
Run Code Online (Sandbox Code Playgroud)
对我来说:
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock' (2)'
Check that mysqld is running and that the socket: '/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock' exists!
Run Code Online (Sandbox Code Playgroud)
或者
mysql --help
Run Code Online (Sandbox Code Playgroud)
我收到此错误是因为我在 OS X 版本 10.9.5 中为 PHP 应用程序安装了 XAMPP。在此处选择默认套接字位置之一。
我选择默认 Rails 应用程序:
socket: /tmp/mysql.sock
Run Code Online (Sandbox Code Playgroud)
对于我的 PHP 应用程序,我安装了 XAMPP,所以我在这里设置了我的套接字:
socket: /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
Run Code Online (Sandbox Code Playgroud)
OS X 中的 OTHERS 套接字位置
对于 MAMPP:
socket: /Applications/MAMP/tmp/mysql/mysql.sock
Run Code Online (Sandbox Code Playgroud)
对于 MySQL 的软件包安装程序:
socket: /tmp/mysql.sock
Run Code Online (Sandbox Code Playgroud)
对于与 Mac OS X 服务器捆绑的 MySQL:
socket: /var/mysql/mysql.sock
Run Code Online (Sandbox Code Playgroud)
对于 Ubuntu:
socket: /var/run/mysqld/mysql.sock
Run Code Online (Sandbox Code Playgroud)
选项 3:如果所有这些设置都不起作用,您可以删除您的套接字位置:
staging:
# socket: /var/run/mysqld/mysql.sock
Run Code Online (Sandbox Code Playgroud)
我希望这对你有帮助。
归档时间: |
|
查看次数: |
94884 次 |
最近记录: |