Mysql Rails服务器错误

Mysql Rails服务器错误,mysql,ruby-on-rails,ruby,installation,failed-installation,Mysql,Ruby On Rails,Ruby,Installation,Failed Installation,我最近使用自制软件在mac上安装了rails。我使用rails s启动了rails服务器,但是当我访问localhost:3000时,我得到了以下错误 Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) socket = socket.to_s unless socket.nil? connect user, pass, host, port, database, socket, fla

我最近使用自制软件在mac上安装了rails。我使用
rails s
启动了rails服务器,但是当我访问
localhost:3000
时,我得到了以下错误

Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

socket = socket.to_s unless socket.nil?

      connect user, pass, host, port, database, socket, flags
    end

    def self.default_query_options
我在谷歌上搜索得够多了,但找不到解决办法

编辑:


我使用mysql.server启动了mysql。它开始了。但是当我使用
mysql-u root
时,它会给出以下错误
错误1045(28000):拒绝用户'root'@'localhost'的访问(使用密码:YES)
。但是在
localhost:3000
中,它给出了用户'root'@'localhost'(使用密码:否)被拒绝访问的错误
。就我记忆所及,我没有为mysql设置任何密码

该错误意味着Rails无法连接到数据库。可能是MySQL没有运行,或者您错误配置了
数据库.yml
文件

你写了你通过自制安装了MySQL。Homebrew不会自动将MySQL配置为在系统启动时启动。这将在安装结束时的输出中解释,如果您运行
brew info mysql

==> Caveats
A "/etc/my.cnf" from another install may interfere with a Homebrew-built
server starting up correctly.

To connect:
    mysql -uroot

To reload mysql after an upgrade:
    launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Or, if you don't want/need launchctl, you can just run:
    mysql.server start
运行
brew info mysql
,按照说明手动启动mysql,或使用
launchctl
对其进行配置

您可以使用

mysql -uroot

还要确保使用正确的主机名、用户名和密码正确配置
database.yml
文件。这些值取决于您(或自制)配置MySQL实例的方式。

如果您的终端出现
错误1045(28000):用户“root”@“localhost”的访问被拒绝(使用密码:是)
,那么您肯定有密码。你可能忘了。 另外,如果您还记得,请转到
config/database.yml
文件并在那里填写您的mysql用户名和密码


另外,如果你仍然没有得到你的密码;使用
brew remove mysql
卸载,然后从oracle网站试用
.dmg
安装程序。

确保您已通过
/etc/init.d/mysqld start
启动mysql服务器

mysql-u root
生成您正在谈论的错误。通过
mysql-u root-p
可以避免这个错误(是的,额外的p有时可以解决您的问题)

如果不起作用,则可以尝试以下命令序列:

  • sudo/etc/init.d/mysqld stop
    停止MySQL服务器
  • sudo/etc/init.d/mysqld restart
    重启MySQL服务器
  • ln-s/tmp/mysql.sock/var/lib/mysql/mysql.sock
    用于创建软件 实际
    mysql.sock文件
    /tmp/mysql.sock
  • /usr/bin/mysql\u secure\u安装
    安装mysql。你可以运行这个,即使你有
    已安装MySQL(用于故障排除)。它将提示您输入
    根密码。输入它,对于其他选项,只需键入“否”的
    n

  • 这通常意味着您正试图连接到本地系统上的MySQL服务器,并且MySQL服务器未安装或未运行。您在本地系统上安装了MySQL服务器吗?是的,我安装了<代码>brew安装mysql
    。我只是这么做了。我不太熟悉Mac的指令。在快速搜索的基础上,尝试下面的对话:另外,如何在基于UNIX的操作系统中使用终端单独启动mysql?默认密码通常是什么?不需要什么帮助。当您安装MySQL服务器时,它会创建一个名为
    root
    的超级用户,并要求您分配密码。你没有设置任何密码吗?如果不是,那么它将使用空密码创建它。为了访问任何MySQL服务器,您还需要安装MySQL客户端。因为我使用Debian Linux,所以我可以选择分别安装服务器和客户端,我不确定
    homebrew
    提供了哪些选项。我使用
    mysql.server start
    启动了mysql。它开始了。但是当我使用
    mysql-u root
    时,它给出了以下错误
    错误1045(28000):拒绝用户'root'@'localhost(使用密码:YES)
    似乎您(或以前的)安装程序更改了mysql的默认配置。据我记忆所及,默认情况下,Homebrew安装MySQL时使用root而不使用密码。检查它们,或者针对特定问题提出新的(更具体的)问题。