SOや他のいくつかの場所で多くのスレッドを読みましたが、MAMPでのmysqlのインストールを修正できませんでした。
バックグラウンド。先日、ローカルサービスを正しく接続するために、rootユーザーに変更を加えました。マシンを再起動した後、mampのphpmyadminはデータベースを表示せず、データベースを作成するための「権限なし」を表示しました。私はここや他の場所で読んだ特権を無駄に戻すために多くのことを試みました。--skip-grant-tablesが機能していないようです。シェルでrootとして接続します。ローカルホストとしての権限はありませんが、127.0.0.1として接続しています。
show grants for root@localhost;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
MAMPの新規インストールをインストールし、DBにコピーしました。それが機能している間、私はDBがすべてのテーブルを表示していないインスタンスに遭遇しました。
だから私は2つの問題のうちの1つを解決しなければなりません。元のインストールを修正するか、新しいmampインストールですべてのテーブルがデータベースに表示されるようにする必要があります。
ここで学んだ教訓は、怠惰にならず、ローカルでrootユーザーをいじくり回して、別のログインを作成することです。
更新私が次のように接続するとき:
/Applications/MAMP/Library/bin/mysql -uroot -h127.0.0.1 -p
mysql> SHOW GRANTS FOR 'root'@'localhost';
+------------------------------------------------------------------------+
| Grants for root@localhost |
+------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
| GRANT ALL PRIVILEGES ON `db`.* TO 'root'@'localhost' WITH GRANT OPTION |
+------------------------------------------------------------------------+
しかし、私が次のように接続すると:
/Applications/MAMP/Library/bin/mysql -uroot -hlocalhost -p
mysql> SHOW GRANTS FOR 'root'@'localhost';
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
mysql> SELECT user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
mysql> SELECT current_user();
+----------------+
| current_user() |
+----------------+
| @localhost |
+----------------+
したがって、IPまたはソケットのいずれかでローカルホストとして接続すると、どういうわけかrootとしてログインしていません。これは非常に紛らわしいと思いますか?