在Windows XP上运行的MySQL 5.1.31.
从本地 MySQL服务器(192.168.233.142)我可以以root身份连接如下:
>mysql --host=192.168.233.142 --user=root --password=redacted
Run Code Online (Sandbox Code Playgroud)
从远程计算机(192.168.233.163),我可以看到mysql端口是打开的:
# telnet 192.168.233.142 3306
Trying 192.168.233.142...
Connected to 192.168.233.142 (192.168.233.142).
Run Code Online (Sandbox Code Playgroud)
但是当我尝试从远程计算机连接到mysql时,我会收到:
# mysql --host=192.168.233.142 --user=root --password=redacted
ERROR 1045 (28000): Access denied for user 'root'@'192.168.233.163' (using password: YES)
Run Code Online (Sandbox Code Playgroud)
我在mysql.user中只有2个条目:
Host User Password
--------------------------------------
localhost root *blahblahblah
% root [same as above]
Run Code Online (Sandbox Code Playgroud)
我还需要做些什么来启用远程访问?
编辑
正如下面的Paulo所建议的,我尝试用特定于IP的条目替换%的mysql.user条目,因此我的用户表现在看起来像这样:
Host User Password
------------------------------------------
localhost root *blahblahblah
192.168.233.163 root [same as above]
Run Code Online (Sandbox Code Playgroud)
然后我重新启动了机器,但问题仍然存在.
我正在 docker 容器中创建一个 laravel 项目,以及 MySQL 和 phpmyadmin,当尝试迁移(或从 phpmyadmin 访问数据库)时,我收到访问被拒绝错误。
我已经尝试了几种 SOF 解决方案,但没有一个起作用,也尝试了 GitHub issues 中的解决方案。
这是我的 docker-compose.yml
version: "3"
services:
web:
container_name: ${APP_NAME}_web
build:
context: ./docker/web
ports:
- 9000:80
volumes:
- ./:/var/www/app
networks:
- mynet
db:
image: mysql:5.7
container_name: db
command: --default-authentication-plugin=mysql_native_password
restart: always
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: laracocodb
MYSQL_USER: root
MYSQL_PASSWORD: root
MYSQL_ROOT_PASSWORD: root
volumes:
- mysqldata:/var/lib/mysql/
networks:
- mynet
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: phpma
links:
- db:db
ports:
- 9191:80
environment:
MYSQL_USERNAME: root
MYSQL_ROOT_PASSWORD: root
PMA_HOST: …Run Code Online (Sandbox Code Playgroud)