java.sql.SQLException:Android 中用户'root'@'192.148.2.106'(使用密码:YES)的访问被拒绝

Posted

技术标签:

【中文标题】java.sql.SQLException:Android 中用户\'root\'@\'192.148.2.106\'(使用密码:YES)的访问被拒绝【英文标题】:java.sql.SQLException: Access denied for user 'root'@'192.148.2.106' (using password: YES) in Androidjava.sql.SQLException:Android 中用户'root'@'192.148.2.106'(使用密码:YES)的访问被拒绝 【发布时间】:2020-10-06 04:44:48 【问题描述】:

我正在尝试使用 JDBC 将我的 android 应用程序连接到 mysql 数据库,但是当我在真实设备中测试该应用程序时,我不断收到此异常,我真的无法弄清楚 我试图在 XAMPP 中创建一个新用户并授予该用户所有权限,但都没有成功

有人可以帮我解决这个问题吗,我真的被屏蔽了?

我的活动代码:

public class SuccessActivity extends AppCompatActivity 
    public static final String url="jdbc:mysql://192.148.2.114:3306/gtransport";
    public static final String user="root";
    public static final String pass="a123";
    TextView EmailShow;
    TextView Etat;
    String EmailHolder;


    @Override
    protected void onCreate(Bundle savedInstanceState) 

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_success);


        EmailShow = (TextView)findViewById(R.id.email_textview);
        Etat=(TextView)findViewById(R.id.etat_textview);


        Intent intent = getIntent();
        EmailHolder = intent.getStringExtra(MainActivity.USER_NAME);
        EmailShow.setText(EmailHolder);
        new MyTask().execute();


    
    private class MyTask extends AsyncTask<Void,Void,Void>
        private  String V_etat="";



        @Override
        protected Void doInBackground(Void... voids) 

            try
                Class.forName("com.mysql.jdbc.Driver");

                Connection con= DriverManager.getConnection(url,user,pass);
                String sql="select * from Chauffeur where email=?";

                PreparedStatement stmt=con.prepareStatement(sql);
                stmt.setString(1,EmailHolder);

                ResultSet rs=stmt.executeQuery();

                while(rs.next()) 

                    V_etat = (rs.getString("nom"));

                
            
            catch(Exception e)
                e.printStackTrace();
            






            return null;
        

        @Override
        protected void onPostExecute(Void aVoid) 
            Etat.setText(V_etat);
            super.onPostExecute(aVoid);
        
    






这是我在 xampp 中的用户表:

【问题讨论】:

您必须允许网络范围内的 sql 数据库配置中的连接,或者允许所有 IP @GGK 请问我该怎么做? 使用命令允许远程访问GRANT ALL PRIVILEGES ON *.* TO '&lt;user&gt;'@'10.3.%' IDENTIFIED BY '&lt;Password&gt;' WITH GRANT OPTION; 【参考方案1】:

我解决了我的问题! 我发现当我创建用户时,我自己输入了密码,同时我忘记并点击了“生成密码按钮”,它会为你生成一个自动密码。

所以任何面临类似问题的人在创建新用户时都要注意这一点!

【讨论】:

以上是关于java.sql.SQLException:Android 中用户'root'@'192.148.2.106'(使用密码:YES)的访问被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

java.sql.SQLException: Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_

java.sql.SQLException:列计数与第 1 行的值计数不匹配,并且我的数据库的第 1 列是自动记录的

java.sql.SQLException:getShort() 的值无效 - ''

java.sql.SQLException: SQL 语句在 org.hsqldb.jdbc.JDBCUtil.sqlException 处关闭

Oracle DB:java.sql.SQLException:关闭连接

Cause: java.sql.SQLException: 请求的转换无效 ; uncategorized SQLException for SQL []; SQL state [99999]; er