如何让mysql数据库允许被远程连接访问?

如何让mysql数据库允许被远程连接访问?,第1张

第一:更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称'%'。 \x0d\x0a或者新加条记录,“host” 项为要访问的ip地址,并授权。重启mysql服务。 \x0d\x0a第二:在系统防火墙添加例外端口:3306,并允许例外。 \x0d\x0a\x0d\x0a错误提示: \x0d\x0aERROR 1130: Host '192.168.1.3is not allowed to connect to this MySQL server \x0d\x0a的解决方法: \x0d\x0a1。改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%" \x0d\x0a1.mysql -u root -pvmware\x0d\x0amysql>use mysql\x0d\x0amysql>update user set host = '%where user = 'root'\x0d\x0amysql>select host, user from user \x0d\x0a\x0d\x0a2. 授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。 \x0d\x0a\x0d\x0aGRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%IDENTIFIED BY 'mypasswordWITH GRANT OPTION\x0d\x0a如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码 \x0d\x0aGRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3IDENTIFIED BY 'mypasswordWITH GRANT OPTION\x0d\x0a\x0d\x0a3.在window自带的防火墙里的例外添加3306端口 \x0d\x0a\x0d\x0a总结: \x0d\x0amysql -u root -p \x0d\x0amysql>use mysql\x0d\x0amysql>select 'hostfrom user where user='root'\x0d\x0amysql>update user set host = '%where user ='root'\x0d\x0amysql>flush privileges\x0d\x0amysql>select 'host from user where user='root'\x0d\x0a第一句是以权限用户root登录 \x0d\x0a第二句:选择mysql库 \x0d\x0a第三句:查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称) \x0d\x0a第四句:修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址 \x0d\x0a第五句:刷新MySQL的系统权限相关表 \x0d\x0a第六句:再重新查看user表时,有修改。。 \x0d\x0a重起mysql服务即可完成。

========本地登录远程mysql

mysql -h IP地址 -P 3306 -u root -p

========创建用户

CREATE USER ‘hyeos’@’%’ IDENTIFIED BY ‘hyeosnet’

说明:

%:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%

hyeosnet:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器

示例:

CREATE USER ‘hyeos’@’localhost’ IDENTIFIED BY ‘hyeosnet’

CREATE USER ‘hyeos’@’192.168.38.110_’ IDENDIFIED BY ‘hyeosnet’

CREATE USER ‘hyeos’@’%’ IDENTIFIED BY ‘hyeosnet’

CREATE USER ‘hyeos’@’%’ IDENTIFIED BY ”

CREATE USER ‘hyeos’@’%’

注意:

创建用户后,该用户只能连接到数据库服务器,但并没有 *** 作该数据库服务器的权限。

========授权

GRANT privilegesxxx ON databasename.tablename TO ‘hyeos‘@’%‘

说明:

privilegesxxx:用户的 *** 作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL

databasename:数据库名

tablename:表名,如果要授予该用户对所有数据库和表的相应 *** 作权限则可用表示,如.*

示例:

GRANT SELECT, INSERT ON DbXXX.user TO ‘hyeos’@’%’

GRANT ALL ON . TO ‘hyeos’@’%’

GRANT ALL ON Dbname.* TO ‘hyeos’@’%’

//注意:

授权之后需要用户重连MySQL,才能获取相应的权限。

用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:

GRANT privilegesxxx ON databasename.tablename TO ‘hyeos’@’%’ WITH GRANT OPTION

设置与更改用户密码

SET PASSWORD FOR ‘hyeos’@’%’ = PASSWORD(‘newhyeosnet’)

如果是当前登陆用户用:

SET PASSWORD = PASSWORD(“newhyeosnet”)

示例:

SET PASSWORD FOR ‘hyeos’@’%’ = PASSWORD(“hyeosnet”)

撤销用户权限

REVOKE privilegexxx ON databasename.tablename FROM ‘hyeos’@’%’

示例:

REVOKE SELECT ON . FROM ‘hyeos’@’%’

注意:

假如你在给用户’hyeos’@’%’授权的时候是这样的(或类似的):GRANT SELECT ON db_name.user TO ‘hyeos’@’%’,则在使用REVOKE SELECT ON . FROM ‘hyeos’@’%’命令并不能撤销该用户对db_name数据库中user表的SELECT *** 作。相反,如果授权使用的是GRANT SELECT ON . TO ‘hyeos’@’%’则REVOKE SELECT ON db_name.user FROM ‘hyeos’@’%’命令也不能撤销该用户对db_name数据库中user表的Select权限。

具体信息可以用命令SHOW GRANTS FOR ‘hyeos’@’%’查看。

=======删除用户

DROP USER ‘hyeos’@’%’

=======刷新系统权限表

flush privileges

=======重设密码及登录主机

alter user ‘root’@’localhost’ identified by ‘XXXXXX’

=======远程导出:

mysqldump -P [端口] -h [IP] -u [用户] -p db_name>db_name.sql

例如:

mysqldump -P 3306 -h 192.168.1.224 -u root -p db_name>db_name.sql

=======远程导入:

mysql -h[IP] -P[端口] -u[用户] -p db_name<db_name.sql p=""></db_name.sql>

例如:

mysql -h 192.168.1.224 -P 3306 -u root -p db_name <db_name.sql

附:

远程导出数据库: mysqldump -h[hosname] -u[user_name] -p[password] –default-character-set=[char_set_name] [db_name] >[save_path]

=======导入数据库时一定要注意字符集是否相同,如果字符集不同会报错,重建数据库改为相同的字符集即可


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6095583.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-14
下一篇 2023-03-14

发表评论

登录后才能评论

评论列表(0条)

保存