mysql在虚拟机访问其他服务器的数据库报错ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)怎么修改
时间: 2023-11-29 07:46:46 浏览: 57
当在虚拟机中访问其他服务器的MySQL数据库时,可能会遇到“ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)”的问题。这是因为MySQL默认情况下只允许本地访问,而不允许远程访问。要解决这个问题,需要进行以下步骤:
1. 确保目标MySQL服务器已经允许远程访问。可以通过编辑MySQL配置文件/etc/mysql/mysql.conf.d/mysqld.cnf来实现。找到bind-address行并将其注释掉或将其值更改为0.0.0.0以允许所有IP地址访问。
2. 确保目标MySQL服务器的防火墙已经允许远程访问MySQL端口(默认为3306)。可以通过以下命令来打开端口:
```shell
sudo ufw allow mysql
```
3. 确保在目标MySQL服务器上创建了允许远程访问的用户,并授予该用户适当的权限。可以使用以下命令创建用户并授予权限:
```mysql
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%'; FLUSH PRIVILEGES;
```
其中,'username'和'password'应替换为您要创建的用户名和密码。
4. 确保在虚拟机中使用正确的用户名和密码进行连接。可以使用以下命令连接到MySQL服务器:
```shell
mysql -u username -p -h server_ip_address
```
其中,'username'应替换为在第3步中创建的用户名,'server_ip_address'应替换为目标MySQL服务器的IP地址。