安裝mysql後,有的用戶既想在本地訪問,又想遠程訪問。
mysql -h host -uroot -ppassword 出現錯誤:
MYSQL ERROR 1045 (28000): Access denied for user (using password: YES)
這是因爲你沒有進入mysql的權限,你的主機沒有在mysql的user表裏存儲,或者用戶名或者密碼不正確。
1.跳過授權,進入mysql:
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
2.賦予足夠的權限
grant
all privileges on *.* to 'root'@'%' with grant option;
將權限導入內存,可以不用重啓mysql來查看是否正確執行權限
flush privileges;
3.重新配置用戶密碼
>use mysql
>UPDATE
user SET Password=PASSWORD('newpassword') where USER='root';
4.sudo service mysql restart
成功。這樣就既可以從內網又可以從外網訪問數據庫了。
附:
如果user表裏沒有記錄,就得手動添加:
INSERT
INTO user(host, user, password, select_priv, insert_priv, update_priv) VALUES ('localhost', 'username', PASSWORD(‘yourpassword'), 'Y', 'Y','Y');
註釋/etc/mysql/my.cnf裏的記錄
bind-address =127.0.0.1