Debian 9 + MariaDB 10.1.26解决root用户Adminer访问问题的最佳方案
解决Debian 9 MariaDB 10.1.26下Adminer无法登录root账户的问题
我之前也遇到过完全一致的情况——Debian 9搭配的MariaDB 10.1.26确实取消了debian-sys-maint用户,改用unix_socket让Linux root直接免密登录MariaDB root。但这个设计对Web端工具(比如Adminer)不友好,因为Adminer是通过PHP进程运行的,不属于Linux root用户,没法借助unix_socket完成认证。下面给你两种可行的解决思路:
方法一:修改root用户的认证方式为密码登录
- 先以Linux root身份登录MariaDB(无需密码):
mysql -u root - 在MariaDB命令行中,切换root的认证插件并设置强密码(把
your_secure_password替换成你自己的密码):ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_secure_password'; FLUSH PRIVILEGES; - 退出MariaDB:
exit;,现在你可以用密码登录root了:mysql -u root -p - 回到Adminer界面,输入root账户和刚才设置的密码,就能正常登录管理数据库了。
方法二:创建专用的Adminer管理账户(更安全)
如果不想改动root的原生认证方式(毕竟unix_socket对本地root登录的安全性更高),可以创建一个拥有全权限的专用账户供Adminer使用:
- 同样先登录MariaDB:
mysql -u root - 创建账户并赋予最高权限:
CREATE USER 'adminer_manager'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_secure_password'; GRANT ALL PRIVILEGES ON *.* TO 'adminer_manager'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES; - 退出后用这个账户登录Adminer,功能和root完全一致,同时保留了root的unix_socket认证安全特性。
提醒:无论选哪种方法,一定要设置高强度密码,避免数据库被非法访问。
内容的提问来源于stack exchange,提问作者Jeremy Davis
相关产品推荐
相关产品推荐

