Electron MariaDB SQL 连接失败

问题描述 投票:0回答:1

我正在尝试在 Electron 上创建一个登录系统,我尝试连接到数据库,但它一直显示错误:

SqlError: (conn:-1, no: 45028, SQLState: HY000) retrieve connection from pool timeout after 10001ms
    (pool connections: active=0 idle=0 limit=10)
    at module.exports.createError (VM138 Z:\Electron\node_modules\mariadb\lib\misc\errors.js:66:10)
    at Pool._requestTimeoutHandler (VM210 Z:\Electron\node_modules\mariadb\lib\pool.js:354:26)

我的代码:

const json = JSON.stringify(env);
    const dbdata = JSON.parse(json);

    document.getElementById('loginForm').addEventListener('submit',function(event){
        event.preventDefault();

        const username = document.getElementById('usr').value;
        const password = document.getElementById('pwd').value;

        let hash = crypto.createHash('sha256');
        hash.update(password);
        
        let pool = mariadb.createPool({
            host: dbdata.DB_HOST,
            user: dbdata.DB_USER,
            password: dbdata.DB_PASSWORD,
            timeout: 5
        });
        
        pool.getConnection()
            .then(conn => {
                return conn.query('SELECT * FROM accountData WHERE Username = ? AND Password = ?', [username, hash.digest('hex')]);
            })
            .then(rows => {
                if(rows.length > 0){
                    alert("ok");
                }
                else{
                    alert("bad");
                }
            })
            .catch(err => {
                console.log(err);
            });
    })

我的数据库位于 ubuntu 上,与我的 Windows 电脑位于同一互联网上,我尝试过 ubuntu 的 Ip 和 localhost,但它对我不起作用。 我的登录数据存储在.env文件中,我检查过,它可以在nNode.js中读取它,所以问题可能出在数据库中。 顺便说一句,我在 Ubuntu 上尝试了 phpMyAdmin 和 MariaDB 上的用户名和密码,两者都可以工作,但不能在 Electron 上工作。

node.js electron mariadb
1个回答
0
投票

我终于找到答案了,我修改了/etc/mysql/mariadb.conf.d/50-server.cnf中的bind-address,可以成功连接吗

© www.soinside.com 2019 - 2024. All rights reserved.