1. 程式人生 > >遠程訪問mysql

遠程訪問mysql

error ger pda ini 清空 都在 -s 進行 amp

問題描述

訪問mysql:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO)

解決方法

一、修改root用戶的密碼
方法一:

/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>

方法二
使用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(‘%‘,‘admin‘, PASSWORD(‘admin‘));
mysql> FLUSH PRIVILEGES
這是在增加一個用戶,用戶名和密碼為admin。註意要使用PASSWORD函數,然後還要使用FLUSH PRIVILEGES來執行確認。

方法四
和方法三一樣,只是使用了REPLACE語句
mysql> REPLACE INTO mysql.user(Host,User,Password)VALUES(‘%‘,‘system‘,PASSWORD(‘manager‘));

mysql> FLUSH PRIVILEGES

方法五
使用SET PASSWORD語句
mysql> SET PASSWORD FOR system@"%" = PASSWORD(‘manager‘);
你也必須使用PASSWORD()函數,但是不需要使用FLUSH PRIVILEGES來執行確認。

方法六
使用GRANT ... IDENTIFIED BY語句,來進行授權。
mysql> grant all privileges on . to root@localhost identified by ‘Admin123‘ with grant option;
mysql> FLUSH PRIVILEGES
這裏PASSWORD()函數是不必要的,也不需要使用FLUSH PRIVILEGES來執行確認。
PASSWORD()函數作用是為口令字加密,在程序中MySql自動解釋。

遠程訪問mysql