[英]Cannot connect to mysql 5.0.8 using mysql_connect with password
我可以使用PHP連接到我的mysql數據庫,沒有密碼。 但是,當我在phpmyadmin中添加密碼時,我無法再連接。 我一直得到錯誤:
"Could not connect: Access denied for user 'admin'@'localhost' (using password: YES)"
我嘗試使用MySQL密碼4.0和4.1+的兩種設置,結果相同。
mysql_connect ("127.0.0.1", "admin", "password") or die('Could not connect: ' . mysql_error());;
mysql_select_db ("datatable");
有沒有人知道這里會發生什么?
編輯:如果我關閉密碼,我可以訪問它。 似乎有一些誤解
根據您顯示的mysql_connect語句,您嘗試以admin@'127.0.0.1'
進行連接。 這需要使用TCP / IP連接到mysql。 如果您以admin@localhost
身份連接,則使用mysql.sock(套接字文件)連接到mysqld。
您應該運行此查詢
SELECT user,host,password FROM mysql.user WHERE user='admin';
您應該看到admin@localhost
定義。 你可能不會看到admin@'127.0.0.1'
。 您可以添加它,但只是為admin@localhost
編碼更容易。
嘗試更改代碼,如下所示:
mysql_connect ("localhost", "admin", "password") or die('Could not connect: ' . mysql_error());;
mysql_select_db ("datatable");
如果你可以在沒有密碼的情況下連接mysql,那么你的mysql安裝就不安全了。
您需要為admin @ localhost添加密碼並刪除匿名用戶登錄,如下所示:
UPDATE mysql.user SET password=password('whateverpassword')
where user='admin' and host='localhost';
DELETE FROM mysql.user WHERE user='';
FLUSH PRIVILEGES;
這是另一個建議:像這樣創建admin@127.0.0.1用戶:
GRANT ALL PRIVILEGES ON *.* TO admin@'127.0.0.1' IDENTIFIED BY 'whateverpassword';
並嘗試您的原始代碼
這可能有所幫助
腳步-
它會問你一個pw - 只是點擊返回因為你還沒有它(下次你去控制台時你需要輸入你進入這里的新pw)。 輸入以下內容:
UPDATE mysql.user SET Password = PASSWORD(“xxxxxx”)WHERE User =“root”; (其中xxxxxx是您在上一步中輸入的密碼)。
現在輸入:FLUSH PRIVILEGES;
轉到您的WAMP或MAMP文件夾,找到APPS文件夾,然后單擊您的PHPMYADMIN文件夾(例如我的文件夾名為phpmyadmin2.11.6)並找到config.inc.php
用wordpad打開config.inc.php並找到以下文本:
$cfg['Servers'][$i]['password'] = '';
現在添加您在步驟3中使用的密碼,如下所示:
$cfg['Servers'][$i]['password'] = 'yourPasswordHere';
你現在應該全部准備好了!
來源 - http://www.knowledgesutra.com/discuss/tsilti-php-myadmin-access-mysql-database.html
您的用戶名或密碼不正確。 確保正確鍵入它們,而不留下尾隨空格。 用戶名和密碼區分大小寫。
如果您通過phpMyAdmin篡改MySQL用戶數據,您必須執行
FLUSH PRIVILEGES
命令以使新規則適用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.