最近在学习虚拟机,安装了MySQL数据库,且配置了root用户的登录权限,在虚拟机内使用MySQL一点问题都没有
但是我现在想用DBVisual 来操作这个数据库,总是报错Access denied for user ‘root’@‘localhost’ (using password:YES)
最后在网上查了,问题原因是:默认mysql的用户是没有远程访问的权限的,因此当程序跟数据库不在同一台服务器上时,我们需要开启mysql的远程访问权限。
方法一:修改mysql库的user表,将host项,从localhost改为%。%这里表示的是允许任意host访问,如果只允许某一个ip访问,则可改为相应的ip,比如可以将localhost改为192.168.1.123,这表示只允许局域网的192.168.1.123这个ip远程访问mysql。
#mysql -u root -proot
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
mysql>flush privileges;
方法二:直接授权(推荐)
从任何主机上使用root用户,密码:youpassword(你的root密码)连接到mysql服务器:
# mysql -u root -proot
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
操作完后切记执行以下命令刷新权限 FLUSH PRIVILEGES
不过必须确认虚拟机的端口3306对本机开放