linux下使用localhost和127.0.0.1都不能連接的解決思路


 

linux下剛安裝了mysql,嘗試寫了程序連接mysql,出現了只有用本地ip地址才能連接,而127.0.0.1和localhost都不能訪問

解決這個問題主要查看3個方向

1.hosts中是否有ip映射

2.mysql數據庫中user表中的用戶信息是否正確

 

我解決的方向,

1.hosts查看了有映射127.0.0.1和localhost的信息。

2.用戶信息有誤

問題在這里:剛安裝的時候記得用戶和密碼都是root,而且配置ip地址通過程序或者其他客戶端軟件訪問是能夠訪問成功的。

但是退出重啟系統后在本地使用命令(其他客戶端等都訪問正常)

mysql -uroot -proot

 

訪問不了,提示密碼

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

 

百思不得其解...

沒辦法,只有重新修改用戶密碼了

方法1

# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
# /etc/init.d/mysql restart
# mysql -uroot -p
Enter password: <輸入新設的密碼newpassword>

 

然后在連接mysql,成功。問題完美解決,localhost和127.0.0.1也都能訪問了

 

 

可能還有其他原因

原因2-配置文件錯誤:
檢查etc下面的my.cnf如下內容:

#password   = your_password
port     = 3306
socket     = /usr/mysql-data/mysql.sock
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
port     = 3306
socket     = /usr/mysql-data/mysql.sock

 

 

 

 

 

mysql修改密碼方法有幾種

方法一   

使用phpMyAdmin

  (圖形化管理MySql數據庫的工具),這是最簡單的,直接用SQL語句修改mysql數據庫庫的user表,不過別忘了使用PASSWORD函數,插入用戶用Insert命令,修改用戶用Update命令,刪除用Delete命令。在本節后面有數據表user字段的詳細介紹。   

方法二   

  使用mysqladmin。輸入  

  mysqladmin -u root -p oldpassword newpasswd  

 

執行這個命令后,需要輸入root的原密碼,這樣root的密碼將改為newpasswd。同樣,把命令里的root改為你的用戶名,你就可以改你自己的密碼了。

  當然如果你的mysqladmin連接不上mysql

  server,或者你沒有辦法執行mysqladmin,那么這種方法就是無效的,而且mysqladmin無法把密碼清空。   

  下面的方法都在mysql提示符下使用,且必須有mysql的root權限:   

方法三   

  mysql> INSERT INTO mysql.user (Host,User,Password) VALUES('%','system', PASSWORD('manager'));

  mysql> FLUSH PRIVILEGES   

 

  確切地說這是在增加一個用戶,用戶名為system,密碼為manager。注意要使用PASSWORD函數,然后還要使用FLUSH

  PRIVILEGES來執行確認。  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM