AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 763336
Accepted
Mostafa Ahangarha
Mostafa Ahangarha
Asked: 2016-04-27 10:52:58 +0800 CST2016-04-27 10:52:58 +0800 CST 2016-04-27 10:52:58 +0800 CST

无法以 root 身份输入 phpmyadmin (MySQL 5.7)

  • 772

我正在使用 Ubuntu 桌面 16.04(从 15.10 升级)。

我已经从 by 安装了 phpmyadmin apt-get install phpmyadmin。如果我去,它可以工作,localhost/phpmyadmin但我无法以 root 身份登录。

我已经搜索了很多。我发现了许多他们建议/etc/phpmyadmin/config.inc.php用“root”和“”(密码为空)更改和替换用户和密码的来源。但是我config.inc.php的和他们的不一样。例如,在我的文件中,没有用户名和密码行,它似乎是从另一个文件中自动获取的,即/etc/phpmyadmin/config-db.php. 尽管如此,我已经更改了该文件中的用户名和密码,但现在我收到了这个错误:

#1698 - Access denied for user 'root'@'localhost'

我该做什么?


Phpmyadmin 版本:4.5.4.1deb2ubuntu1
mysql Ver 14.14 Distrib 5.7.12,适用于使用 EditLine 包装器的 Linux (x86_64)

mysql
  • 9 9 个回答
  • 411813 Views

9 个回答

  • Voted
  1. Best Answer
    Rael Gugelmin Cunha
    2016-04-27T11:35:42+08:002016-04-27T11:35:42+08:00

    MySQL 5.7 更改了安全模型:现在 MySQLroot登录需要sudo.

    即,phpMyAdmin 将无法使用root凭据。

    最简单、最安全和永久的解决方案将是创建一个新用户并授予所需的权限。

    1.连接mysql

    sudo mysql --user=root mysql
    

    2.创建一个真实的密码

    在以下步骤中,我将<please_replace_this>用作示例密码。请用您的密码替换它!不要用作<please_replace_this>密码!

    3.为phpMyAdmin创建一个用户

    运行以下命令(替换<please_replace_this>为所需的密码):

    CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY '<please_replace_this>';
    GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    

    如果您的 phpMyAdmin 连接到 localhost,这应该足够了。

    4. 可选且不安全:允许远程连接

    请记住:允许远程用户拥有所有权限是一个安全问题,在大多数情况下这不是必需的。

    考虑到这一点,如果您希望此用户在远程连接期间拥有相同的权限,请另外运行(替换<please_replace_this>为步骤 #2 中使用的密码):

    CREATE USER 'phpmyadmin'@'%' IDENTIFIED BY '<please_replace_this>';
    GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'%' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    

    5.更新phpMyAdmin

    使用,在以下部分sudo编辑文件更新用户/密码值(替换为步骤 #2 中使用的密码):/etc/dbconfig-common/phpmyadmin.conf<please_replace_this>

    # dbc_dbuser: database user
    #       the name of the user who we will use to connect to the database.
    dbc_dbuser='phpmyadmin'
    
    # dbc_dbpass: database user password
    #       the password to use with the above username when connecting
    #       to a database, if one is required
    dbc_dbpass='<please_replace_this>'
    
    • 159
  2. Eaten by a Grue
    2018-04-29T21:34:07+08:002018-04-29T21:34:07+08:00

    如果 phpymadmin 无法连接,可能是因为 auth 机制设置为auth_socket. 您可以将其更改为使用常规密码,如下所示:

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'my_password';
    

    我刚刚在全新安装 Ubuntu 18.04 时遇到了这个问题,这就是让它工作的原因。这里有一篇不错的文章解释更多:

    https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/

    • 22
  3. Dan Costinel
    2017-03-20T10:36:16+08:002017-03-20T10:36:16+08:00

    将 mariaDB 与 phpmyadmin(Ubuntu 16.04LTS)一起使用时,我遇到了同样的问题。

    先决条件:

    1) 安装 MariaDB

    sudo apt-get -y install mariadb-server mariadb-client
    sudo mysql_secure_installation (answer to some interactive questions):
        Enter current password for root (enter for none): <enter>
        Set root password: n
        Remove anonymous users: n
        Disallow root login remotely: n
        Remove test database and access to it: n
        Reload privilege tables now: Y
    

    如果要卸载mariaDB:

    sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-5.5 mysql-client-core-5.5
    sudo rm -rf /etc/mysql /var/lib/mysql
    sudo apt-get autoremove
    sudo apt-get autoclean
    

    2)安装phpmyadmin

    sudo apt-get -y install phpmyadmin (and answer some interactive questions)
        Configuring phpmyadmin:
            Web server to reconfigure automatically: apache2
            Configure database for phpmyadmin with dbconfig-common: Yes
            MySQL application password for phpmyadmin: <blank>
    

    3)在apache2中,创建一个指向phpmyadmin的符号链接

    sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
    sudo a2enconf phpmyadmin.conf
    sudo service apache2 restart
    

    好的,现在,如果您按照 Rael 的说明进行操作,您将能够登录phpmyadmin,但是,至少对我而言,我无法创建新数据库,因为出现了一条红色消息:(No privileges或一些类似的消息)

    解决方法是重新配置 phpmyadmin,并回答一些交互式问题。

    sudo dpkg-reconfigure phpmyadmin
    <Ok>
    Reinstall database for phpmyadmin: <Yes>
    Connection method for MySQL database server for phpmyadmin: TCP/IP
    Host name of the MySQL database server for phpmyadmin: localhost
    Port number for the MySQL service: 3306
    MySQL database name for phpmyadmin: phpmyadmin
    <Ok>
    MySQL username for phpmyadmin: root
    MySQL application password for phpmyadmin: pass  # OR ANY PASSWORD YOU WANT
    Password confirmation: pass
    Name of the database's administrative user: root
    Web server to reconfigure automatically: apache2
    An error occurred while installing the database: ignore
    

    现在,如果您尝试localhost/phpmyadmin使用连接到 phpmyadmin ( )

    username: root
    password: pass
    

    您将能够创建数据库。

    • 9
  4. Syed Abdul Qadeer
    2018-07-26T01:44:40+08:002018-07-26T01:44:40+08:00

    在 Ubuntu 16.04 for Mysql 5.7 中检查下表信息并执行必要的设置:

    mysql>  SELECT User, Host, plugin FROM mysql.user;
    +------------------+-----------+-----------------------+
    | User             | Host      | plugin                |
    +------------------+-----------+-----------------------+
    | root             | localhost | auth_socket           |
    | mysql.session    | localhost | mysql_native_password |
    | mysql.sys        | localhost | mysql_native_password |
    | debian-sys-maint | localhost | mysql_native_password |
    | phpmyadmin       | localhost | mysql_native_password |
    | root             | %         | mysql_native_password |
    +------------------+-----------+-----------------------+
    

    检查 root 是否有 auth_socket 插件,然后运行以下命令:

    mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
    mysql> FLUSH PRIVILEGES;
    mysql> exit;
    
    • 8
  5. FIRE FOX
    2018-06-28T04:02:00+08:002018-06-28T04:02:00+08:00

    为了完整起见,我找到了解决我在使用 MariadB 版本 10.1.23 时遇到的麻烦的方法。用于设置新用户的语法类似于@Rael Gugelmin Cunha 在上面的帖子中报告的语法,我将我的解决方案放在这里以供其他面临同样问题的人参考:

    root@raspberrypi:# sudo mysql --user=root mysql
    use mysql;
    CREATE USER 'phpmyadmin'@'%' IDENTIFIED BY 'some_password';
    GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'%' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    

    问候

    • 3
  6. plutesci
    2018-06-16T13:02:01+08:002018-06-16T13:02:01+08:00

    我遇到了同样的问题,我遵循了大多数建议,但没有一个对我有用!当我在浏览器中打开http://localhost/phpmyadmin时,我的问题是一样的,它要求提供登录详细信息。

    我使用root作为用户,我知道的密码是正确的。我得到了

    #1698 - 用户 'root'@'localhost' 的访问被拒绝

    所要做的就是使用已知密码phpmyadmin作为用户,而不是root,它让我进入。

    • 2
  7. Antonio J. de Oliveira
    2018-02-08T05:28:09+08:002018-02-08T05:28:09+08:00

    提到雷尔库尼亚:

    是的,他的解决方案有效,我尝试过其他解决方案。但是,在配置文件中提及用户的密码/etc/dbconfig-common/phpmyadmin.conf似乎是系统范围操作的安全漏洞。

    因此,我宁愿提出MariaDB 10.1.x有关方面的建议( some_user 和 some_pass 将是您可能想出的任何东西):

    # mysql -u root
    use mysql;
    CREATE USER 'some_user'@'%' IDENTIFIED BY 'some_pass';
    GRANT ALL PRIVILEGES ON \*.\* TO 'some_user'@'%' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    

    并保持 phpadmin setup (4) 不变。

    之后使用您自己的凭据登录到 phpmyadmin

    在我自己的设置中,出于安全目的,我将上面的 '%' 替换为 'localhost',但如果您在服务器上关闭了端口 3306,则不一定会给您带来安全风险。

    • 1
  8. Hemamalini
    2018-10-23T02:56:35+08:002018-10-23T02:56:35+08:00

    仅以下代码适用于 ubuntu 18.04、php 7 以上和 mysql 5.7

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

    不要替换“phpmyadmin”。创建任何其他用户没有像创建新用户那样的完全权限,像这样将数据库权限分配给该用户。只有 phpmyadmin 用户才能获得完全访问权限。

    • 1
  9. zouhair elhadraoui
    2018-03-17T03:26:30+08:002018-03-17T03:26:30+08:00

    如果您单独安装 MySQL,请通过以下命令停止它 sudo /opt/lampp/lampp stop service mysql stop sudo /opt/lampp/lampp start

    • -3

相关问题

  • 上网本上的 MySQL 数据建模

  • 从终端备份mysql

  • 为什么 /etc/init.d/mysql 会运行错误的暴发户工作?

  • 将引号添加到文件中的字符串

  • 如何将 MySQL 数据文件移动到不同的分区?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve