将本地mssql数据库移动到Web托管的MYSQL

时间:2011-07-07 12:27:46

标签: c# php mysql desktop-application cpanel

我是dektop开发人员,对网站主办的工作方式不太了解......所以请在这里帮助我。

目前我的应用程序与MSSQL数据库一起使用,该数据库本地安装在同一台机器上。 现在我需要更广泛,让多个应用程序通过Internet使用相同的数据库。 我有一个带有CPanel的网站主机和MySQL数据库。

请告诉我如何从另一台计算机访问该MySQL数据库中的表格? 选择并更新该表中的记录。我是否必须使用PHP实现某些功能才能提出此类请求?

请告知..

2 个答案:

答案 0 :(得分:1)

如果您尝试导入mySQL,导出原始MS-SQL转储可能不起作用,因为语法有一些差异。有一些商业程序可以帮助您迁移数据,否则编写PHP程序以从MSSQL导出到mySQL可能会更好。

但您的问题听起来更像是在询问如何远程访问数据库。 。 PHP可以本地执行此操作。创建指向数据库的链接时,请指定主机。例如:$ databaseConnection = new mysqli('username','password','host_ip_address');

如果您来自MSSQL,可能会遇到一些陷阱。

要在MS-SQL上进行远程连接,请使用“表面区域”配置工具。您可能会发现您的mySQL数据库服务器已经配置为允许远程连接,如果不是,您将不得不接受主机(听起来你没有自己的盒子)。

下一个技巧是要记住mySQL中的用户名如下所示:'user'@'host'。

cPanel托管通常安装了PHPmyAdmin。打开它,查看mysql数据库中的用户表(在MySQL服务器上运行的名为mysql的实际数据库)。

您会看到一个主机列。因此,如果您的“root”用户仅设置为“localhost”,您将无法从另一台计算机以该用户身份登录。通配符是%。你可以在这里阅读 - http://dev.mysql.com/doc/refman/5.5/en/adding-users.html

当然,对于用户而言,相同的规则适用于mySQL。不要使用root帐户访问子数据库,而是分配只具有所需权限的新用户。还要考虑使用不可预测的用户名。这并没有真正回答你的问题(对不起),但在你查看用户表时值得一提。

所以最后回答你的问题: 1)登录cPanel并创建数据库'foo'

2)运行SQL命令:

GRANT ALL PRIVILEGES ON foo.* TO 'secretuser'@'%' IDENTIFIED BY 'longpassword'

然后PHP代码看起来像这样:

$host = 'ipaddress or hostname';
$mysqli = new mysqli('secretuser','longpassword',$host,'foo');
// look in php.net for error handling
$query = "SELECT * FROM tablename LIMIT 0,10";
$result = $mysqli->query($query);

我设置限制的原因是因为你可能习惯于“选择前10名”

答案 1 :(得分:0)

您必须将计算机上的数据导出到原始SQL文件中,然后使用PHPMyAdmin控制面板将其导入。假设您还在自己的计算机上使用PHPMyAdmin,则顶部有一个“导出”选项卡。如果单击它,您可以选择将所有表导出到.sql文件。

然后,您需要通过CPanel访问PHPMyAdmin。进入后,您可以点击“导入”选项卡并上传文件以将所有数据导入数据库。要在线与数据库交互,您需要使用PHP中的内置函数 - PHP.net上的MySQL Reference非常有用。然后,您就可以使用PHPMyAdmin控制面板从任何计算机访问数据库。