【问题标题】:How can I connect my Unity3D application to a MySQL database on Mac OSX如何将我的 Unity3D 应用程序连接到 Mac OSX 上的 MySQL 数据库
【发布时间】:2017-03-16 07:10:28
【问题描述】:

我一直在阅读大量关于让我的 Unity 应用程序能够从 MySQL 数据库中检索数据的最佳方法。共识是为了安全起见,数据库连接应该在 PHP 中建立,然后 Unity 代码应该与 PHP 交互。

所以而不是:

Unity -> MySQL

我们有:

Unity -> 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.

我认为这一定是我的连接字符串有问题,但我尝试了很多不同的组合,但似乎没有任何效果。

如果能提供任何帮助,我将不胜感激。

谢谢! :)

【问题讨论】:

  • 当您在浏览器中请求127.0.0.1/3306 时会发生什么?
  • @OscarLundberg 啊哈.. 嗯,当我转到 127.0.0.1:3306 时,我得到无法连接到服务器。 :\ 我在 Mac OSX 上为运行 MySQL 的服务器使用 MAMP。当我查看 phpMyAdmin 时,我正在连接到 localhost:8888/phpMyAdmin/…
  • 那么您是否尝试将端口更改为 8888?
  • 啊,这似乎奏效了。我就知道会是那样的小东西!谢谢你。如果您愿意,可以将其作为答案,我会接受。我现在遇到错误Reading from the stream has failed.,但我认为这是我的数据库表和正在运行的查询的问题。谢谢:)

标签: mysql database unity3d database-connection monodevelop


【解决方案1】:

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

在我看来,快速测试此类问题的最简单方法是通过浏览器手动检查。虽然它不能解决任何问题,但根据浏览器中显示的内容,您应该能够找出问题所在或问题所在。

【讨论】:

  • 是的,谢谢您的提示。让我感到困惑的是,MAMP 说“为 MySQL 使用端口 3306”,但在 MAMP 设置中它实际上使用的是端口 8889。现在我明白我需要确保服务器和连接字符串一致:)跨度>
猜你喜欢
  • 2022-07-17
  • 2016-03-13
  • 2019-06-16
  • 2019-08-06
  • 1970-01-01
  • 2017-07-03
  • 2022-01-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多