android studio 连接mysql 数据库出现错误,无法解决

问题遇到的现象和发生背景

1、我想要使用android studio 连接mysql ,在navicat 已经可以通过ip地址访问数据库了,已经授权远程服务。
2、但是连接过程出现错误。

问题相关代码,请勿粘贴截图

```java
package com.example.mysql;

import android.util.Log;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class MySqlHelp {
    public static int getUserSize(){
        final String cls = "com.mysql.jdbc.Driver";
        final String url = "jdbc:mysql://172.17.xxx.xxx:3306/bookdb";(ip地址不便透露)
        final String user = "root";
        final String pwd = "root";

        int count = 0;
        try{
            Class.forName(cls);
            Connection conn = DriverManager.getConnection(url,user,pwd);
            String sql = "select count(1) as s1 from userinfo";
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery(sql);
            while (rs.next()){
                count = rs.getInt("s1");
                System.out.println(count);
                Log.i("==","count");
            }
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        }

        return 0;
    }
}


主函数

```package com.example.mysql;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.annotation.SuppressLint;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    private Button btn_query;
    private TextView tv_user;


    private Handler handler = new Handler(){

        @Override
        public  void handleMessage(@NonNull Message msg){
//            super.handleMessage(msg);
            if (msg.what == 0) {
                int count = (Integer)msg.obj;
                tv_user.setText("数据为"+count);
            }
        }
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
    }

    //    初始化操作
    private void initView() {
        btn_query = findViewById(R.id.btn_query);
        tv_user = findViewById(R.id.tv_user);
        btn_query.setOnClickListener(this);
    }

    //    点击事件
    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.btn_query:
                doQueryCount();
                break;
        }
    }

    //    查询方法
    private void doQueryCount() {
        new Thread(new Runnable() {
            @Override
            public void run() {
                int count = MySqlHelp.getUserSize();
                Message msg = Message.obtain();
                msg.what = 0;  //查询结果
                msg.obj = count;
                //向主线程发送数据

                handler.sendMessage(msg);
                Log.e("=====","msg="+msg);
                Log.e("=====","count="+count);


            }
        }).start();
    }
}


运行结果及报错内容

img

img

img

img

我的解答思路和尝试过的方法
我想要达到的结果