我是一名桌面开发人员,不太了解虚拟主机的工作原理...所以请在这里帮助我。
目前,我的应用程序与本地安装在同一台机器上的 MSSQL 数据库一起使用。 现在我需要更广泛地让多个应用程序通过 Internet 使用同一个数据库。 我有一个带有 CPanel 和 MySQL 数据库的虚拟主机。
请告诉我如何从我的另一台计算机访问该 MySQL 数据库中的表? 选择并更新该表中的记录。我是否必须使用 PHP 实现某些功能才能发出此类请求?
请指教..
最佳答案
如果您尝试导入到 mySQL 中,则导出原始 MS-SQL 转储可能不起作用,因为语法存在一些差异。有一些商业程序可以帮助您迁移数据,否则最好编写一个 PHP 程序以从 MSSQL 导出到 mySQL。
但是您的问题听起来更像是在问如何远程访问 数据库。 . PHP 可以 native 执行此操作。当您创建指向数据库的链接时,您指定了主机。例如:$databaseConnection = new mysqli('用户名','密码','host_ip_address');
如果您来自 MSSQL,您可能会遇到一些陷阱。
要允许在 MS-SQL 上进行远程连接,您可以使用“表面区域”配置工具。您可能会发现您的 mySQL 数据库服务器已经配置为允许远程连接,否则您将不得不与您的主机一起使用(听起来您没有自己的盒子)。
下一个技巧是记住 mySQL 中的用户名如下所示:'user'@'host'。
cPanel 主机通常安装了 PHPmyAdmin。打开它并查看mysql数据库中的user表(MySQL服务器上运行的名为mysql的实际数据库)。
您会看到主机列。因此,如果您的“root”用户仅设置为“localhost”,您将无法从另一台机器以该用户身份登录。通配符是 %。您可以在这里阅读 - http://dev.mysql.com/doc/refman/5.5/en/adding-users.html
当然,当涉及到用户时,同样的规则也适用于 mySQL。不要使用您的根帐户访问子数据库,而是分配仅具有所需权限的新用户。还可以考虑使用不可预测的用户名。这并不能真正回答您的问题(抱歉),但在您查看用户表时值得一提。
所以最后回答你的问题: 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 名”
关于c# - 将本地 mssql 数据库移动到 web 托管的 MYSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6610580/