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

How can I connect my Unity3D application to a MySQL database on Mac OSX

我一直在阅读大量有关让我的 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.

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

如有任何帮助,我将不胜感激。

谢谢! :)

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

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