我目前通过$_SESSION['connection'] = odbc_connect('Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=mysql;Option=3;', 'root', '');
如何允许远程访问我的数据库?
访问数据库除了fromt的事实,我需要得到一个密码放在该帐户(甚至使用另一个帐户不是root?而且很可能改变DATABSE的名字吗?),我想编写一些代码,我可以不费吹灰之力地安装在几个站点上。
我想在每个站点使用相同的代码,但我不能提前知道IP地址。我该如何解决这个问题?我只是告诉他们的IT人员在odbc_connect()调用中设置类似myDatabaseServer
的DNS链接,然后用Server=myDatabaseServer
替代Server=localhost
?或者我需要在Windows控制面板中使用ODBC管理器进行一些操作?
嗯,我也许应该混淆或ditributing之前COMPLE代码...
更新:我发现this question该说
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
coudl是myDatabaseServer
,所以我不需要编辑每个远程站点的配置文件(?)
它也表示GRANT ALL ON test.* TO 'root'@'192.168.1.15' IDENTIFIED BY '';
因此,是一个必须在数据库上运行一次的命令?但我无法预先知道IP地址?事实上,多个用户可能需要访问 - 我可以通配符到192.168。 。?真的,真的需要吗?有没有什么方法可以配置一次,不知道每个用户将使用哪个网络地址范围(我知道它听起来不安全,但我可以授予每个人的访问权并依赖密码保护,外加人员不会知道数据库在那里?)
“甚至可能使用另一个帐户比根?” - 可爱...是的,锁定下来。 – ocodo 2011-02-07 03:45:01
切勿从任何应用程序连接到数据库作为`root`,或永远不允许从任何主机(除`localhost`)连接作为`root`作为生产级数据库;而是创建另一个用户。 – 2011-02-07 03:56:26
+1。是的我知道 ...我只是用root进行开发。别担心,我会锁定它。 – Mawg 2011-02-07 05:58:39