1

したがって、入力するmysql -u rootとログインしていると思われますが、データベースを作成またはアクセスしようとすると、次の素敵なエラーが発生しますERROR 1044 (42000): Access denied for user ''@'localhost' to database 'test1'。ルートとしてログインした後、DB にアクセスしようとしている理由がわかりませ''@'localhost'ん。おそらく関連して、ルートパスワードを設定しようとするとエラーが発生しますmysqladmin: Can't turn off logging; error: 'Access denied; you need (at least one of) the SUPER privilege(s) for this operation'。実行してmysql-serverを削除してapt-get purge mysql-serverから再インストールしようとしましたが、うまくいきませんでした。これはUbuntu Server 12.10 64ビットを実行しており、mysqlは実際に実行されています。

- 編集 -

もしかしてroot ユーザーがいないのかな。そこで、MySQL を起動し--skip-grant-tablesて root ユーザーを作成しようとしましたが、次のように表示されました ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement。楽しい楽しい楽しい楽しい。

-- 再編集 --

私は、機械加工でmysqlのすべてのものに鈍いハンマーを取り、ルートとして実行してから、すべてapt-get remove .*mysql.*apt-get purge .*msyql.*再インストールしました。今回は通常どおりインストールが行われました。誰もこれに対する答えを思いつくことができない場合 (そして、テストする問題が存在しないことはおそらく役に立たないでしょう)、私は自分で質問に答えます...悪いインストールが最良の選択肢でした。

--もう一度編集--

問題の原因を発見しました。実行rake db:createrake db:migrateたところ、新しくインストールされ、適切に機能している MySQL が同じ問題を抱えている状態に戻りました。おそらく、1 つの真菌がアリを引き継ぐように、rake タスクが MySQL を引き継いだのではないかと考えています... 私の MySQL は、rake に感染したゾンビアリです (?!?!?!?!)。

4

3 に答える 3

1

Ubuntu を使用している場合、mysql のインストール中に変更しない限り、mysql の root パスワードはシステムの root ユーザーのパスワードにする必要があります。

それ以外の場合は、mysql を停止します。

これを実行します:

sudo mysqld_safe --skip-grant-tables &

これにより、パスワードなしで mysql ルートにログインできるようになります。

これを実行します:

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

忘れないで ; 最後に FLUSH PRIVILEGES を忘れないでください。mysql を再起動します。

sudo /etc/init.d/mysql start

これでうまくいくはずです。

運命の奇妙なひねりによってルートユーザーが利用できない場合、次の行:

   sudo mysqld_safe --skip-grant-tables &

新しい root ユーザーを作成するオプションが引き続き表示されますが、この場合は Google を使用して方法を見つけてください。

于 2012-11-24T23:14:18.613 に答える
0

で mysql にログインし、mysql -u rootと入力しshow grants for 'root'@'localhost';ます。これにより、ルートが許可されているかどうかがわかります。

ところで、パスワードを入力せずにログインしていますか?

于 2012-11-24T23:05:00.720 に答える
0

私は数秒前にこの問題を抱えていて、答えを求めてここに来ましたが、mysqladmin コマンドから得た答えについて考え始めました。だから私はこれを試しました1:sudo su(root-password)を使用してターミナルでルートとしてログインし、引用符なしでこれを入力しますが、スペースは必須です:

mysqladmin -u @'hostname' (us your hostname then press enter).
于 2013-02-16T15:26:17.663 に答える