开发者社区 问答 正文

在phpmyadmin用root用户登录 MariaDB 10.1.26  (mysql 5.7) 失败

环境: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'


3. 搜索得,如 mysql 5.7 版本后,默认不允许root用户从如phpmyadmin登录

4. 可在服务器里通过mysql,创建一个有完全权限的新用户,如果是生产环境,建议仅授权指定数据库的权限:  
CREATE USER 'idbadm'@'localhost' IDENTIFIED BY 'meizi36829';
    GRANT ALL PRIVILEGES ON *.* TO 'idbadm'@'localhost' WITH GRANT OPTION;
    FLUSH PRIVILEGES;

5. 用新建用户的信息(登录名idbadm,密码meizi36829),再次登录phpmyadmin,成功



参考:
  • https://askubuntu.com/questions/763336/cannot-enter-phpmyadmin-as-root-mysql-5-7
  • https://zenidas.wordpress.com/recipes/mysql-5-7-root-login-without-sudo/

展开
收起
dongshan8 2018-04-21 09:17:27 3626 分享 版权
阿里云 AI 助理回答

要解决您在Debian 9.4环境中使用MariaDB 10.1.26或MySQL 5.7,通过phpMyAdmin登录时遇到的“Access denied for user 'root'@'localhost'”问题,请遵循以下步骤:

问题分析

  • 错误描述:您尝试使用root用户从phpMyAdmin登录到MariaDB或MySQL服务器时收到访问被拒绝的错误。
  • 可能原因:自MySQL 5.7起,默认安全强化措施禁止root用户通过非本地socket方式(如phpMyAdmin)进行远程或网络登录。

解决方案

步骤1:创建新用户并授权

既然直接使用root用户不被推荐,您可以按照已搜索到的方法操作,创建一个具有足够权限的新用户来管理数据库。如果已经完成,跳至步骤3。

CREATE USER 'idbadm'@'localhost' IDENTIFIED BY 'meizi36829';
GRANT ALL PRIVILEGES ON *.* TO 'idbadm'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

此命令会创建一个名为idbadm的新用户,并为其设置密码meizi36829,同时授予该用户对所有数据库的全部权限。

步骤2:验证新用户权限

确保新用户的权限设置正确无误,可以通过MySQL命令行工具以新用户身份登录来测试。

步骤3:配置phpMyAdmin使用新用户

编辑phpMyAdmin的配置文件(通常位于/etc/phpmyadmin/config.inc.php),修改控制面板登录的配置,使其使用新创建的用户idbadm而非root用户。

找到如下配置项并更新:

$cfg['Servers'][$i]['controluser'] = 'idbadm';
$cfg['Servers'][$i]['controlpass'] = 'meizi36829';

请根据您的实际安装路径和配置情况调整上述路径和变量名。

注意事项

  • 安全考量:为生产环境创建专用用户时,应仅授予该用户对特定数据库的必要权限,避免使用*.*这样的全局授权。
  • 权限要求:执行上述SQL命令和修改phpMyAdmin配置文件需要具有MySQL的管理员权限以及对系统文件的写入权限。
  • 其他提示:定期审查数据库用户权限,确保遵循最小权限原则,增强系统安全性。

验证与测试

  • 使用新用户idbadm的凭据重新登录phpMyAdmin,确认能够成功访问且具备预期的数据库管理权限。

通过以上步骤,您应该能够成功绕过root用户的登录限制,并通过phpMyAdmin安全地管理数据库。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答