[英]Cannot disable mysql login without password on AlpineLinux of Docker container
我真的被困住了,我需要你的帮助。
My project is to build wordpress-installed website with 3 containers: Nginx, Wordpress + php-fpm and mysql on Docker. 所有容器都建立在 alpine:latest 镜像上。
我成功启动了网站,一切正常,除了一件事:禁用 mysql 无密码登录。
我的 mysql 容器正在以下条件下工作:
我相信我已经尝试了足够的解决方案,例如:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('xxxxxx');
然而,我可以在没有密码的情况下登录 root 用户。
这是我做了这三件事后的截图。
如您所见,root 用户有密码,但我无需在 root 用户上输入任何密码即可登录。
我想要实现的是这样的:
# mysql - u root
Enter Password: // Just enter 'Enter'
ERROR: Access denied for user 'root'@'localhost' (using password: No)
我很感激你的帮助。
更新:2021-06-02
I tried to create a similar condition using debian:buster because official mysql docker uses debian:buster-slim. 这是官方 mysql 图像。
通过在root用户上设置密码,我很容易实现禁用mysql无密码登录。
所以我想知道是不是因为高山...
有多种方法可以做到这一点,我不确定这是否适用于从应用程序端访问服务器,但您可以通过在操作系统级别存储此用户和密码来访问 mysql 提示符。
[client] user=root password=somepassword
[client] user=root password=somepassword
shell> mysql_config_editor set --login-path=dbadmin_local --host=localhost --user=dbadmin --password Enter password:
您可以通过更改登录路径来添加多个主机名和密码。 如果密码已更改,您可以再次运行此实用程序,它会更新文件中的密码:
shell> mysql_config_editor set --login-path=dbadmin_remote -- host=35.186.157.16 --user=dbadmin --password Enter password:
如果要使用 dbadmin 用户登录 35.186.157.16,只需执行 mysql --login-path=dbadmin_remote:
外壳> mysql --login-path=dbadmin_remote
要连接到 localhost,您只需执行 mysql
外壳> mysql
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.