1. 程式人生 > >關於問題 mysql"Access denied for user [email

關於問題 mysql"Access denied for user [email

1.問題來源:

  最近由LAMP轉到LNMP,初次使用LNMP,為了快速入門,直接安裝LNMP組合安裝包。

  當啟動mysql資料庫時,出現如下的錯誤資訊

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

2.問題分析

  錯誤資訊的大意是:使用者root沒有使用密碼訪問localhost主機時被拒絕。

  那麼我想應該為訪問mysql設定訪問密碼

3.解決辦法

 (1)使用mysqld_safe命令啟動mysql,設定或更新root賬號的密碼


    輸入命令:# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

--skip-grant-tables:不啟動grant-tables(授權表),跳過許可權控制

--skip-networking:跳過TCP/IP協議,只在本機訪問(可以不用)

執行上面命令後,視窗會出現無反應的狀態

161218 16:49:00 mysqld_safe Logging to '/usr/local/mysql/var/localhost.localdomain.err'. 161218 16:49:00 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/var

需要使用CTRL+C中斷會話即可。

(2)輸入命令:mysql -u root mysql

4.刪除資料庫mysql表user中多餘的host及user

(1)檢視user表中的主機host以及使用者user

select host,user,password from user;

+-----------+------+-------------------------------------------+ | host      | user | password                                  | +-----------+------+-------------------------------------------+ | localhost | root | *13BBDE5E97CE38A753D89FFC23C28C565FD4E00D | | 127.0.0.1 | root | *13BBDE5E97CE38A753D89FFC23C28C565FD4E00D | | ::1       | root | *13BBDE5E97CE38A753D89FFC23C28C565FD4E00D | +-----------+------+-------------------------------------------+

 (2)根據上表的資訊,只保留localhost,其他的host刪除:

 
 

delete from user where host <> 'localhost';

5.設定新的密碼:

update user set password=password('1570211');

6.使修改生效

  #flush privileges

7.退出,重新登入mysql

  # quit; 

  # mysql -uroot -p1570211