ローカルVirtualBoxインスタンスでMySQL 5.7.33を実行します。ローカルにアクセス可能になるように、仮想サーバーからポート3306を転送しました。私の仮想ホストで、私はmy /etc/mysql/my.cnfファイルにこれを持っています...
[client]
#password = your_password
port = 3306
socket = /var/run/mysqld/mysqld.sock
[mysqld]
port = 3306
bind-address = 0.0.0.0
datadir = /var/lib/mysql
socket = /var/run/mysqld/mysqld.sock
pid-file = /var/run/mysqld/mysqld.pid
_
私のローカルマシンから、私はMySQLインスタンスに接続することができます
mysql -h 127.0.0.1 -u my_user my_db -p
_
しかし、私が「localhost」に変わったら、私はもう接続できません
$ mysql -h localhost -u my_user my_db -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
_
問題が何であるかわからない。私のローカルマシンから(仮想サーバーではない)、これは "localhost"のために返されます...
$ Host localhost
localhost has address 127.0.0.1
localhost has IPv6 address ::1
_
その "user"がソケットを介して接続できることについてMySQLに指示してください。
CREATE USER "user"@"localhost" ...;
GRANT ... ON ... TO "user"@"localhost";
_
ただし、それはその同じ仮想ホスト内からのみ「User」を接続するだけです。
それを別の機械と考えてください。