由于服务器主机名绑定地址无效而导致对 mysql 的访问被拒绝

由于服务器主机名绑定地址无效而导致对 mysql 的访问被拒绝

我无法使用终端登录 mysql。

[root@fst mysql]# mysql -h localhost -u admin -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'admin'@'localhost' (using password: YES)

我确信我的密码正确。当我检查状态时,mysql 也在运行。mysql 数据库也存在于目录 /var/lib/mysql/ 中。主机 host.myi、host.myd 和 host.frm 都存在。

顺便说一下,这与我之前的问题有关MySQL 服务器退出而不更新 PID 文件。最初,问题出现在根目录已满时。为了能够登录 directadmin 并启动 mysql,我添加了 /var/lib/mysql/ 到 /home/mysql 的软链接。因为我的数据库占用了大部分根目录。根目录有 50Gb,/home 有 1.5Gb。不知何故 /var/lib/mysql/idbdata1 已损坏。所以我将它移到另一个位置。

现在,我可以启动 mysql 服务器,但无法登录。

以下是来自 myql 日志的内容。

121212 20:44:10 mysqld_safe mysqld from pid file /var/lib/mysql/fst.srv.net.pid ended
121212 20:44:10 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
121212 20:44:10 [Note] Plugin 'FEDERATED' is disabled.
121212 20:44:10 InnoDB: The InnoDB memory heap is disabled
121212 20:44:10 InnoDB: Mutexes and rw_locks use GCC atomic builtins
121212 20:44:10 InnoDB: Compressed tables use zlib 1.2.3
121212 20:44:10 InnoDB: Using Linux native AIO
121212 20:44:10 InnoDB: Initializing buffer pool, size = 128.0M
121212 20:44:10 InnoDB: Completed initialization of buffer pool
121212 20:44:10 InnoDB: highest supported file format is Barracuda.
121212 20:44:11  InnoDB: Waiting for the background threads to start
121212 20:44:12 InnoDB: 1.1.8 started; log sequence number 1595675
121212 20:44:12 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
121212 20:44:12 [Note]   - '0.0.0.0' resolves to '0.0.0.0';
121212 20:44:12 [Note] Server socket created on IP: '0.0.0.0'.
121212 20:44:12 [Note] Event Scheduler: Loaded 0 events
121212 20:44:12 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.5.27-log'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MySQL Community Server (GPL)

我猜绑定地址有问题。我该如何修复这个问题?

答案1

只需重置您的密码并确保mysql.user表中的用户名和主机规范正确 - “拒绝访问”错误意味着您正在访问侦听器,因此您的绑定地址没有问题。

添加并重新启动服务,然后查看表格并根据需要更改主机和密码 - 确保在完成后将其从配置中删除skip-grant-tablesmy.cnfmysql.userskip-grant-tables

相关内容