安裝好了mysql,mysql直接進入數據庫
設置遠程連接后,提示下圖錯誤:
提示:ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'。是因為mysql數據庫的user表里,存在用戶名為空的賬戶即匿名賬戶,實際上是匿名登錄的,通過錯誤提示里的''@'localhost'可以看出來,於是解決辦法見方法二。
方法一:(適用於密碼不正確的)
0、思路:
通過屏蔽mysql的登錄密碼,先進入mysql內部,再通過update命令更新密碼
1、關閉mysql
service mysqld stop //linux下使用
net stop mysql //window下使用
2、屏蔽權限
mysqld_safe --skip-grant-table //linux下使用
mysqld --skip-grant-table //window下使用
或者使用如下命令
mysqld_safe --user=mysql --skip-grant-tables --skip-networking & //linux下使用
屏幕出現: Starting demo from .....
3、新開起一個終端輸入
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES; //更新命令 記得要這句話,否則如果關閉先前的終端,又會出現原來的錯誤
mysql> \q
方法二:(適用於存在空密碼)
0、思路
有時候,mysql雖然擁有了賬號和對應的密碼。但是,由於存在空密碼的情況,會默認登錄到空密碼中。
需要把空密碼的賬號刪除,可以通過如下命令查看所有賬戶
select host,user,password from user;
1.關閉mysql
# service mysqld stop
2.屏蔽權限
# mysqld_safe --skip-grant-table
屏幕出現: Starting demo from .....
3.新開起一個終端輸入
# mysql -u root mysql
mysql> delete from user where USER=''; //刪除空密碼
mysql> FLUSH PRIVILEGES;//記得要這句話,否則如果關閉先前的終端,又會出現原來的錯誤
mysql> exit
4.最后解決啟動報錯
查看mysql啟動日志發現是3306端口被占用,殺掉mysql進程,重啟mysql服務即可