您的位置:首页 > 数据库 > MySQL

MySql远程连接数据库 1130 -Host 'xxx.xxx.xxx.xx' is not allowed to connect to this MySQL server

2018-03-22 18:14 666 查看
1。 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"Sql代码 复制代码   1. mysql -u root -pvmwaremysql>use mysql;    2. mysql>update user set host = '%' where user = 'root';    3. mysql>select host, user from user; 2. 授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。Sql代码 复制代码  1. GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH      GRANT OPTION;    2.FLUSH   PRIVILEGES;   如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码Sql代码 复制代码   1. GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY     2. 'mypassword' WITH GRANT OPTION;     3. FLUSH   PRIVILEGES; GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY'mypassword' WITH GRANT OPTION;FLUSH   PRIVILEGES;如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器的dk数据库,并使用mypassword作为密码Sql代码 复制代码   1. GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY     2. 'mypassword' WITH GRANT OPTION;     3. FLUSH   PRIVILEGES; GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY'mypassword' WITH GRANT OPTION;FLUSH   PRIVILEGES;注意授权后必须FLUSH PRIVILEGES;否则无法立即生效。另外一种方法.在安装mysql的机器上运行:1、d:\mysql\bin\>mysql -h localhost -u root//这样应该可以进入MySQL服务器2、mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION//赋予任何主机访问数据的权限3、mysql>FLUSH PRIVILEGES//修改生效4、mysql>EXIT//退出MySQL服务器这样就可以在其它任何的主机上以root身份登录啦!===============================================================================遇到了 SQLException: access denied for  @'localhost' (using password: no)解决办法   grant all privileges on *.* to joe@localhost identified by '1';                  flush privileges;拿  joe    1 登陆附:mysql> grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’;权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。
当权限1,权限2,…权限n被all privileges或者all代替,表示赋予用户全部权限。
当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。
用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%'表示从任何地址连接。
‘连接口令’不能为空,否则创建失败。mysql>grant select,insert,update,delete,create,drop on vtdc.employee to joe@10.163.225.87 identified by ‘123′;
给来自10.163.225.87的用户joe分配可
4000
对数据库vtdc的employee表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为123。mysql>grant all privileges on vtdc.* to joe@10.163.225.87 identified by ‘123′;
给来自10.163.225.87的用户joe分配可对数据库vtdc所有表进行所有操作的权限,并设定口令为123。mysql>grant all privileges on *.* to joe@10.163.225.87 identified by ‘123′;
给来自10.163.225.87的用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。mysql>grant all privileges on *.* to joe@localhost identified by ‘123′;
给本机用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐