【问题标题】:Access denied 'debian-sys-maint'@'localhost'访问被拒绝'debian-sys-maint'@'localhost'
【发布时间】:2023-03-16 10:04:01
【问题描述】:
$ cat /etc/mysql/debian.cnf                                               1 ↵
[client]
host     = localhost
user     = debian-sys-maint
password = #%@u5D2Y0eP5
socket   = /var/run/mysqld/mysqld.sock

[mysql_upgrade]
host     = localhost
user     = debian-sys-maint
password = #%@u5D2Y0eP5
socket   = /var/run/mysqld/mysqld.sock
basedir  = /usr

但是当我尝试检查 mysql 的状态时:

$ service mysql status
/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: NO)'

我很困惑为什么它不使用我提供的密码?


Mysql:14.14 Distrib 5.5.31
Debian:Wheezy

另外,here's my /etc/mysql/my.cnf configuration 文件。

【问题讨论】:

  • 你是怎么安装mysql的? bash 脚本是自定义的吗?
  • @Krishnanunni 我使用了check cookbook 和下面的config
  • 你在 mysql 中创建了一个名为 'debian-sys-maint' 的用户吗?还是你刚刚配置的?
  • 我检查了mysql.user 表,debian-sys-maint@localhost 在那里。
  • 我认为,由于您的密码字符串以 '#' 开头,因此已被注释掉。所以不会有可读的密码。现在才注意到

标签: mysql debian chef-infra


【解决方案1】:

问题是我的密码包含特殊字符,我尝试将密码更改为字母密码,现在可以了。

【讨论】:

    【解决方案2】:

    您的问题是密码包含# 字符; hash 是 debian.cnf 中的注释字符,使用 mysql 配置文件格式。如果将值括在引号中,则可以在密码中使用 # 罚款。来自the manual

    您可以选择将值括在单引号或双引号中,如果值包含“#”注释字符,这很有用。

    这样就好了:

    password = "#%@u5D2Y0eP5"
    

    【讨论】:

      【解决方案3】:

      将 localhost 更改为 127.0.0.1(loopback) 再试一次它对我来说已经穿了

      主机:127.0.0.1

      谢谢

      【讨论】:

      • 请检查您是否插入了正确的用户名和密码。并检查您是否允许为用户访问数据库。
      • 如果我尝试mysql --user=debian-sys-maint --password='#%@u5D2Y0eP5',我可以正常连接。
      • mirzmaster.wordpress.com/2009/01/16/mysql-access-denied-for-user-debian-sys-maintlocalhost/ 请检查这个:) 希望你能从这个博客中找到解决方案
      猜你喜欢
      • 2012-07-23
      • 2019-03-21
      • 1970-01-01
      • 2019-04-30
      • 2021-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多