安装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