环境:Debian 9.4, MariaDB 10.1.26 或 mysql 5.7, phpmyamdin 4.8
过程:
1. 在Debian系统里安装好 nginx + php7.0 + MariaDB 的环境,放置一份 phpmyadmin 尝试登录
2. 用 MariaDB 的root用户和密码登录,失败,提示:
mysqli_real_connect(): (HY000/1698): Access denied for user 'root'@'localhost'>mysqli_real_connect(): (HY000/1698): Access denied for user 'root'@'localhost'
CREATE USER 'idbadm'@'localhost' IDENTIFIED BY 'meizi36829';
GRANT ALL PRIVILEGES ON *.* TO 'idbadm'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
要解决您在Debian 9.4环境中使用MariaDB 10.1.26或MySQL 5.7,通过phpMyAdmin登录时遇到的“Access denied for user 'root'@'localhost'”问题,请遵循以下步骤:
既然直接使用root用户不被推荐,您可以按照已搜索到的方法操作,创建一个具有足够权限的新用户来管理数据库。如果已经完成,跳至步骤3。
CREATE USER 'idbadm'@'localhost' IDENTIFIED BY 'meizi36829';
GRANT ALL PRIVILEGES ON *.* TO 'idbadm'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
此命令会创建一个名为idbadm
的新用户,并为其设置密码meizi36829
,同时授予该用户对所有数据库的全部权限。
确保新用户的权限设置正确无误,可以通过MySQL命令行工具以新用户身份登录来测试。
编辑phpMyAdmin的配置文件(通常位于/etc/phpmyadmin/config.inc.php
),修改控制面板登录的配置,使其使用新创建的用户idbadm
而非root用户。
找到如下配置项并更新:
$cfg['Servers'][$i]['controluser'] = 'idbadm';
$cfg['Servers'][$i]['controlpass'] = 'meizi36829';
请根据您的实际安装路径和配置情况调整上述路径和变量名。
*.*
这样的全局授权。idbadm
的凭据重新登录phpMyAdmin,确认能够成功访问且具备预期的数据库管理权限。通过以上步骤,您应该能够成功绕过root用户的登录限制,并通过phpMyAdmin安全地管理数据库。