我正在做一个网络项目,我使用 wamppserver
来管理服务器和数据库。现在我面临一个问题,我必须分享该项目。因此,如果我可以共享我在项目中使用的特定数据库,以便其他人可以从他们的计算机访问并获取以前存储在数据库中的所有数据,这将很有用。有可能做到吗?怎么办?
最佳答案
如果你需要授予其他机器访问本地mysql服务器上的一个数据库的权限,你需要做一些事情:
- 您需要打开 MySQL 的网络接口(interface):检查 my.cnf,然后执行以下操作:
- 注释 Skip-networking 行。
- 更改绑定(bind)地址行以保存您的 LAN IP 地址/WAN IP 地址(如果计算机本身有 WAN IP)/0.0.0.0(对于计算机的所有 IPv4 地址)/::(对于所有 IPv4 和机器的 IPv6 地址)。重新配置后,重新启动MySQL服务器。
- 检查/配置防火墙以打开端口 3306(您可以将防火墙配置为仅接受来自所需 IP 的连接)(执行此操作的配置取决于您的防火墙软件)。
- 向您需要的 IP 的用户授予访问权限。
- 您可以从所有 IP 授予一个用户访问权限,为此,请使用具有 super 权限的用户(通常是 root)在 MySQL cli 或 phpmyadmin 上执行命令 [1]。
- 您可以通过一个 IP 向一名用户授予访问权限。执行命令[2]。
[1]: GRANT ALL PRIVILEGES ON database.* TO 'user'@'%' IDENTIFIED BY 'password';
[2]: GRANT ALL PRIVILEGES ON database.* TO 'user'@'host' IDENTIFIED BY 'password';
您需要将database替换为授予权限的数据库名称,user替换为访问的用户名,host替换为客户端访问的IP地址,password替换为所需的密码。
例如,如果您希望同一用户名能够从两个不同的 IP 进行访问,您也可以重复命令 [2]。此外,您还可以使用 [1] 和 [2] 的组合,使用具有以下示例格式的主机:@'192.168.0.%',以便从 192.168.0.0/24 网络上的所有计算机授予这些用户访问权限.
此外,您还可以授予非常精细的权限,例如将 GRANT ALL PRIVILEGES 更改为 GRANT SELECT、INSERT,这些用户只能执行 SELECT 和 INSERT 语句,而不能执行 UPDATE 或 DELETE 等语句。您可以查看 MySQL 文档或 StackOverflow 以获取更多信息。
关于mysql - phpmyadmin 与更多机器共享特定数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53996519/