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

 

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

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

1.hosts中是否有ip映射

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

 

我解決的方向,linux

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

2.用戶信息有誤數據庫

問題在這裏:剛安裝的時候記得用戶和密碼都是root,並且配置ip地址經過程序或者其餘客戶端軟件訪問是可以訪問成功的。socket

可是退出重啓系統後在本地使用命令(其餘客戶端等都訪問正常)函數

mysql -uroot -proot

 

訪問不了,提示密碼工具

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

 

百思不得其解...ui

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

方法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來執行確認。  

相關文章
相關標籤/搜索