我该如何将我的Unity3D应用程序连接到Mac OSX上的MySQL数据库

问题描述:

我一直在阅读大量有关让我的Unity应用程序能够从MySQL数据库检索数据的最佳方法。一致意见认为,出于安全考虑,数据库连接应该在PHP中设置,然后Unity代码应该与PHP进行交互。我该如何将我的Unity3D应用程序连接到Mac OSX上的MySQL数据库

所以不是:

团结 - > MySQL的

我们:

团结 - > PHP - > MySQL的。

这是伟大的一切,但我真的不担心我的应用程序的安全性。我正在为大学的最后一年的一个项目工作;它可以被认为是内部软件,所以应用程序的用户也将拥有数据库。所以我不担心安全问题。

所以我只想让这个Unity - > MySQL连接工作。我感觉自己如此亲密,但却陷入了一些错误,不知道该从哪里出发。

我的数据库连接代码

public class TweetDAO { 

    private string connString; 

    public TweetDAO() 
    { 
     connString = "Server=localhost; Port=3306; Database=tweets; Uid=root; Pwd=root;"; 
    } 

    public string ReadString(string query) 
    { 
     MySqlConnection conn = new MySqlConnection (connString); 
     string result = ""; 

     try { 

      MySqlCommand command = conn.CreateCommand(); 
      MySqlDataReader reader; 
      command.CommandText = query; 
      conn.Open(); 
      reader = command.ExecuteReader(); 
      while (reader.Read()) 
      { 
       result = reader.GetValue(0).ToString(); 
      } 

     } 
     catch (MySqlException ex) { 
      Debug.Log(ex.Message); 
     } 
     finally { 
      conn.Dispose(); 
      conn = null; 
     } 
     return result; 
    } 

} 

当我运行此我得到SocketException: Connection refused和异常消息是Unable to connect to any of the specified MySQL hosts.

我想,这一定只是有毛病我的连接字符串,但我已经尝试了很多不同的组合,似乎没有任何工作。

我将非常感谢任何帮助。

谢谢! :)

+0

当您在浏览器中请求http://127.0.0.1/3306时会发生什么? –

+0

@OscarLundberg啊哈..当我去127.0.0.1:3306我很好,无法连接到服务器。 :\我在Mac OSX上为我的服务器运行MySQL使用MAMP。当我看着phpMyAdmin时,我连接到http:// localhost:8888/phpMyAdmin /?lang = en#PMAURL-0:index.php?db =&table =&server = 1&target =&token = f87f04abd37b68623fda35adc7077365 – Redtama

+0

因此,您是否尝试更改端口为8888? –

正如我们在评论中得出的结论,问题是连接字符串中定义的端口不同于服务器客户端中的端口设置。 (XAMPP,WAMP等)

快速测试这样的问题最简单的方法是我认为通过浏览器手动检查它。虽然它不会解决任何问题,但根据浏览器中显示的内容,您应该能够弄清楚什么地方出了问题。

+0

是的,谢谢你的提示。令我困惑的是,MAMP说“使用MySQL的端口3306”,但在MAMP设置中它实际上使用的是8889端口。现在我明白我需要确保服务器和连接字符串都是一致的:) – Redtama