關於問題 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