我正在尝试将我的Android 4.x仿真器连接到存储在我的计算机中的MySQL数据库。我可以连接到没有问题的Android 2.x使用IPv4但我不能使用3.X或4.X,因为使用IPv6。
我安装了MySQL 5.6,我正在尝试使用此代码进行连接。
private static Connection conexionMySQL = null;
public static void CreaConexion (Context context, String usuario, String pass, String ip, String puerto, String catalogo)
{
if (conexionMySQL == null)
{
String urlConexionMySQL = "";
if (catalogo != "")
{
urlConexionMySQL = "jdbc:mysql://address=(protocol=tcp)(host="+ip+")(port="+puerto+")(user=root)/"+catalogo+"";
}
else
urlConexionMySQL = "jdbc:mysql://address=(protocol=tcp)(host="+ip+")(port="+puerto+")(user=root)/";
if (usuario != "" & pass != "" & ip != "" & puerto != "")
{
try
{
Class.forName("com.mysql.jdbc.Driver");
Toast.makeText(context, urlConexionMySQL, Toast.LENGTH_LONG).show();
conexionMySQL = DriverManager.getConnection(urlConexionMySQL, usuario, pass);
}
catch (ClassNotFoundException e)
{
Toast.makeText(context, "Error: " + e.getMessage(), Toast.LENGTH_LONG).show();
}
catch (SQLException e)
{
Toast.makeText(context, "Error: " + e.getMessage(), Toast.LENGTH_LONG).show();
}
}
}
}
这是在我的'my.cnf'文件中:
# SERVER SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this
# file.
#
# server_type=3
[mysqld]
# The next three options are mutually exclusive to SERVER_PORT below.
# skip-networking
# enable-named-pipe
# The Pipe the MySQL Server will use
# socket=mysql
# The TCP/IP Port the MySQL Server will listen on
port=3306
bind-address=*
我总是得到错误:通信链接失败,成功发送的最后一个数据包是0毫秒前。驱动程序未收到来自服务器的任何数据包。
我现在不知道该怎么做,帮助!!!
Editted:
我在CMD使用它: 外壳> mysql -h :: 1
并且它可以工作,所以我的数据库配置为获得IPv6连接,但问题保持不变,我可以连接2.x版本,但我不能用更高的。