Linux
無效的伺服器主機名綁定地址導致對 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 伺服器,但無法登錄。
以下是來自 mysql 日誌的內容。
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)
我猜綁定地址有問題。我應該如何解決這個問題?
只需重置您的密碼並確保您的使用者名和主機規範在
mysql.user
表中正確 - “訪問被拒絕”錯誤意味著您正在訪問偵聽器,因此您的綁定地址不是問題。添加
skip-grant-tables
到您my.cnf
的服務並重新啟動服務,然後查看mysql.user
表格並根據需要更改主機和密碼 - 確保在skip-grant-tables
完成後退出配置。