首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何允许远程访问我的数据库?

如何允许远程访问我的数据库?
EN

Stack Overflow用户
提问于 2011-02-07 03:18:50
回答 2查看 3K关注 0票数 0

我目前正在通过$_SESSION['connection'] = odbc_connect('Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=mysql;Option=3;', 'root', '');访问数据库

除了我需要在这个帐户上设置一个密码(甚至可能使用根之外的另一个帐户?并且可能会更改数据库名称?),我想编写一些代码,我可以拒绝在几个站点上安装这些代码。

我想在每个站点上使用相同的代码,尽管我无法预先知道IP地址。我该怎么做?我是否只是告诉他们的IT人员为类似于myDatabaseServer的东西设置DNS流,然后在odbc_connect()调用中用Server=myDatabaseServer替换Server=localhost?还是我需要在Windows控制面板中使用ODBC管理器?

嗯,我应该先把代码弄糊涂或者组合一下,然后再重新分配.

更新:我找到了这个问题,上面说

代码语言:javascript
运行
复制
In your MySQL configuration file (my.cnf), you need the following at least:
port         = 3306          # Port MySQL listens on 
bind-address = 192.168.1.15  # IP address of your server 
# skip-networking            # This should be commented out to enable networking

我假设bind-address可以是myDatabaseServer,所以我不需要为每个远程站点(?)编辑配置文件。

它还提到了GRANT ALL ON test.* TO 'root'@'192.168.1.15' IDENTIFIED BY '';,所以这是一个必须在数据库上运行一次的命令?但我不能提前知道IP地址?事实上,多个用户可能需要访问-我可以通配符它到192.168..?所以真的真的需要吗?是否有任何方法可以让我一次配置它,而不知道每个用户将使用的网络地址范围(我知道这听起来不安全,但我是否可以授予每个人访问权限并依赖密码保护,再加上没有外人知道数据库在那里?)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-07 03:48:57

bind-address只能设置为IP地址,而不是域名,并引用mysql服务器将绑定到的传出IP地址。

但是,在外部连接时,您总是可以将bind-address设置为0.0.0.0,这样mysql服务器就可以在它可以访问的任何接口上接受传入的3306连接。管理端负责给服务器命名,您可以通过这个名称连接到它。

一旦设置正确,您只需要设置适当的用户凭据,以便外部用户可以从给定的IP (或模式)连接。

例如:

代码语言:javascript
运行
复制
GRANT ALL PRIVILEGES ON *.* TO USERNAME@IP IDENTIFIED BY "PASSWORD";

用于外部IP模式的看这里

当然,通常您应该使用有限的访问帐户,并且只允许访问特定的数据库/表(db.*通常是可以接受的)。

票数 1
EN

Stack Overflow用户

发布于 2012-01-17 22:48:30

为了补充Slomojo的准确答案:在对特权进行任何更改之后,不要忘记在mysql中使用flush privileges;

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4917826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档