mysql - Rake 似乎在劫持 MySQL

标签 mysql ruby-on-rails rake ubuntu-12.10 mysqladmin

因此,如果我输入 mysql -u root,我应该已经登录了,但是在尝试创建或访问数据库时,我得到了这个可爱的错误:ERROR 1044 (42000): Access拒绝用户 ''@'localhost' 访问数据库 'test1'。我完全不明白为什么在以 root 身份登录后,它会尝试以 ''@'localhost' 身份访问数据库,这让我有点抓狂。可能相关,当我尝试设置 root 密码时出现错误 mysqladmin: Can't turn off logging;错误:'访问被拒绝;您需要(至少其中一项)此操作的 SUPER 权限'。我尝试通过运行 apt-get purge mysql-server 删除 mysql-server,然后重新安装,但没有成功。这是运行 Ubuntu Server 12.10 64 位并且 mysql 确实在运行。

--编辑--

我想知道是否没有 root 用户。所以我尝试使用 --skip-grant-tables 启动 MySQL 并创建 root 用户,但随后我得到了这个: 错误 1290 (HY000):MySQL 服务器正在使用 --skip-grant-tables 选项运行,因此无法执行此语句。好玩好玩好玩好玩。

--再次编辑--

我对机器上的所有 mysql 采取了钝锤并以 root 身份运行 apt-get remove .*mysql.*apt-get purge .*msyql.* 然后重新安装所有内容。这次安装如期进行。如果没有人能对此给出答案(并且问题不再存在以进行测试可能无济于事)我会自己回答这个问题......看起来像这样,绝对删除错误的安装是最好的选择。

--再次编辑--

我发现了导致问题的原因。我运行了 rake db:createrake db:migrate,我新安装并正常运行的 MySQL 现在又出现了同样的问题。我想知道 rake 任务是否已经接管了 MySQL,就像一个真菌接管了一只 Ant ......我的 MySQL 是一只 rake 出没的僵尸 Ant (?!?!?!?!)。

最佳答案

如果您使用的是 Ubuntu,您的 mysql root 密码应该是您系统 root 用户的密码,除非您在 mysql 安装过程中更改了它。

在任何其他情况下,停止mysql。

执行这个:

sudo mysqld_safe --skip-grant-tables &

它将使您无需密码即可登录到 mysql root。

现在执行:

UPDATE mysql.user SET Password=PASSWORD(‘new_password’) WHERE User=’root’;
FLUSH PRIVILEGES;

不要忘记;最后别忘了FLUSH PRIVILEGES;现在再次启动mysql:

sudo /etc/init.d/mysql start

应该这样做。

如果 root 用户由于某种奇怪的命运转折而不可用,则此行:

   sudo mysqld_safe --skip-grant-tables &

仍然会给你一个选项来创建新的根用户,但在这种情况下使用谷歌来查找如何。

关于mysql - Rake 似乎在劫持 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13546440/

相关文章:

php - Mysql查询WHERE列在json数组中

ruby-on-rails - rake 数据库 :create using PostgreSQL ---- fe_sendauth: no password supplied

ruby-on-rails - Rake 构建在错误的上下文中运行

ruby - 从 Rakefile 执行 bash 命令

python - 在不关闭连接的情况下在 python 中获取更新的 MySQL 表条目

c# - 用于全文搜索的索引数据库,Lucene/iFiler/SQL FTS/..etc

ruby-on-rails - 我的复杂路线的 Controller 规范中没有路线匹配

ruby-on-rails - PayPal 结算后如何查找哪个用户进行了结算?

ruby-on-rails - rake 测试和 test_structure.sql

mysql - 字段列表中的未知列错误