私は誤ってmysqlからすべてのrootユーザーを削除するという素晴らしいことをしました。そんな日。
しかし、私がパニックになる前に、私はこの方法を使用するだろうと思いました here オンラインで検索することから、それほど悪くはないように思われました。
"[mysqld]セクションのmy.cnfに「skip-grant-tables」を追加して、mysqlを再起動します"
次に、「INSERT INTO mysql.user ...」を使用して新しいrootユーザーを挿入します
これを行うと、エラーが発生します。
The target table user of the INSERT is not insertable-into
誰もがこれについて何か考えを持っていますか、どうすればルートユーザーを再作成できますか?
最初はvirtualminと関係があるのではないかと思いました here でも、CLIからmysqlにこれを実行しても、同じエラーが表示されます
私の環境Centos7
Webmin version 1.940
Usermin version|1.780
Virtualmin version 6.08
mysql Ver 15.1 Distrib 10.4.11-MariaDB, for Linux (x86_64) using readline 5.1
私はようやく私の解決策を見つけました(このスレッドで@RolandoMySQLDBAに大きく感謝します ここ )。
私が彼の答えで持っていた唯一の問題は、WITH GRANT OPTION;
が/var/lib/mysql/InitFile.sql
にないということでした:
GRANT ALL PRIVILEGES ON *.* TO root@localhost
IDENTIFIED BY 'password' WITH GRANT OPTION;
完了したら必ずファイルを削除し、/etc/my.cnf
に追加したinit-file文字列を削除して更新してください。
MariaDBがエラーINSERT is not insertable-into
を出力した理由がまだわかりません。これがMariaDBの問題であることを説明するドキュメントが見つかりませんでした。