标签: mariasql

mariadb IF 语句错误信息?

我测试 sql 查询。

    IF 3 = 3 THEN 
       SELECT 'TRUE'
    ELSE
       SELECT 'FALSE'
    END IF;
Run Code Online (Sandbox Code Playgroud)

我在 SQLyog 上执行了该查询。

我收到以下错误消息。

 You have an error in your SQL syntax; check the manual that corresponds to 
 your MariaDB server version for the right syntax to use near 'ELSE SELECT 
 'FALSE' END IF' at line 3
Run Code Online (Sandbox Code Playgroud)

该查询非常简单。我不知道为什么会出现错误消息。

mariadb mariasql

7
推荐指数
1
解决办法
7203
查看次数

当循环退出时,节点https回调不会触发

我的问题可能是直截了当的,但我无法弄清楚幕后发生了什么.我循环遍历数据库表中的一系列域,调用它们,获取SSL证书并将有关它的信息存储回数据库.

在大多数情况下,它是有效的 - 除了当循环退出任何尚未完成的调用时才停止.

开始检查的数据库检索:

function queryRows() {
complete = false;
var query = c.query("SELECT * FROM domains LIMIT 100 OFFSET " + offset);
query.on('result', function(res) {
res.on('data', function(row) {
  checkUrl(row)
}).on('end', function() {
    complete = true;
});
}).on('end', function() {
    console.log(complete);
    offset += 100;
    if(offset <= (parseInt(rows) + 400)){
      queryRows();
    } else {
        console.log("Done, waiting");
        setTimeoutPromise(600000, 'foobar').then((value) => {
            console.log("restarting")
            offset = 0;
            getTotal();
        });
    }
  });
 }
Run Code Online (Sandbox Code Playgroud)

以及检查SSL的代码:

function checkSSL(id, domain){
complete = false 
var options = { …
Run Code Online (Sandbox Code Playgroud)

ssl https node.js mariasql

6
推荐指数
1
解决办法
201
查看次数

100% CPU 使用率使用集群和 mariaSQL,当集群退出并重新启动时

在我的 Node.JS 应用程序中,我使用集群来利用我的多核 CPU。我正在使用节点的 mariasql 库与我的数据库进行通信。由于node-mariasql库不支持池化,我使用第三方 - generic-pool来维护连接池。

我注意到,每当主线程中的连接在未捕获的异常导致其中一个子集群重新启动后关闭时,我们的 CPU 使用率就会上升到 100%。

每当子集群重新启动时,我都会破坏所有 MySQL 连接。

节点版本 - v4.2.2
MariaDB 版本 - v10.0.15
node-mariasql 版本 - v0.2.5

可重现的代码 - https://github.com/bsurendrakumar/node-simplex/

代码片段

正在创建连接池...

var pool = poolModule.Pool({
  name: 'mariadb',
  create: function(callback) {
    var client = new mSQLClient();
    client.connect(dbConfig);
    client.on('error', function(err) {
      callback(err, null);
    });
    client.on('ready', function() {
      callback(null, client);
    });
  },
  destroy: function(client) {
    if(cluster.isMaster) {
      console.log('Destroying / ending master thread ID -', client.threadId);
    }
    if(isDraining) {
      client.destroy();
    } …
Run Code Online (Sandbox Code Playgroud)

sockets node.js mariasql node-cluster

5
推荐指数
1
解决办法
441
查看次数

使用nodejs时隐藏mariaDB中的元对象数据

我正在记录某些特定查询的结果,并且工作正常,但我注意到还记录了太多元数据,如何禁用这些元数据被记录?

截屏

    const pool = mariadb.createPool({
        host: 'localhost',
        port: 3306,
        user: 'example',
        password: 'pass',
        waitForConnections: true,
        connectionLimit: 10
    });

    async function asyncFunction () {
        let conn;
        try {
            conn = await pool.getConnection();
            const queryResult = await conn.query('select * from test.sb__user where id=94');
            console.log(queryResult); // [ {val: 1}, meta: ... ]
        } catch (err) {
            throw err;
        } finally {
            if (conn) return conn.end();
        }
    }
Run Code Online (Sandbox Code Playgroud)

mysql mariadb node.js mariasql mariadb-connect-engine

5
推荐指数
1
解决办法
1186
查看次数

MariaDB的后续错误

我正在尝试将其设置sequelize为ORM MariaDB

这是我的设置:

var sequelize = require('sequelize');

var db= new sequelize('dbname', 'user', 'pass', {
  dialect: 'mariadb'
});
Run Code Online (Sandbox Code Playgroud)

当我运行我的应用程序时,出现以下错误:

/my/path/to/node_modules/sequelize/lib/dialects/mysql/connection-manager.js:23
    throw new Error('Please install mysql package manually');
    ^

Error: Please install mysql package manually
Run Code Online (Sandbox Code Playgroud)

为什么sequelize尝试连接到mysql而不是我在dialect指令中指定的mariadb ?我想念什么吗?

mariadb node.js sequelize.js mariasql

4
推荐指数
2
解决办法
3572
查看次数

MySQL 对多个 OR 使用索引,但 IN 没有索引,速度慢得多

我一直忙于更改一些 SQL 查询,以便它们看起来对人眼更具可读性,我还被告知它们可能会快 5-10%。

以前的 SQL 语句看起来像这样。

SELECT * FROM team WHERE Team1='Joe Bloggs' OR Team2='Joe Bloggs' OR Team3='Joe Bloggs'

我把它改成

SELECT * FROM team WHERE 'Joe Bloggs' IN (Team1,Team2,Team3)

新查询大约慢了 10 倍,在检查可能是什么原因后,我发现它没有使用任何索引,即使我试图强制使用索引,它仍然不会使用它。

该表有大约 120,000 行,我无法更改表格式,因为其他应用程序我无权访问,请使用它。Team1,Team2,Team3 列都是 VARCHAR(45)

有人可以解释为什么索引用于原始查询而不是新查询吗?我已经阅读了大量页面,但找不到答案,我读到 mysql 可能正在确定不使用索引的速度更快,但是这里不应该是这种情况,因为 IN 查询几乎慢了 10 倍。

多个 OR SELECT(无缓存运行 1000 次)- 12.863906860352 已过去 IN SELECT(无缓存运行 1000 次)- 122.73787903786 已过去

感谢您的时间。

mysql sql select mariadb mariasql

4
推荐指数
1
解决办法
198
查看次数

PHP未返回最新的更新的SQL过程结果

我正在使用mariaDB,codeigniter php

在工作台中执行该过程时,将显示正确的结果。 下图

但是,当我使用php codeigniter运行相同的过程时,它会返回不同的结果集。

array(1) {
[0]=>
array(1) {
    [0]=>
    array(2) {
        ["stuScore"]=> string(7) "44.0000"
        ["answerdQues"]=> string(2) "50"
    }
}
}
Run Code Online (Sandbox Code Playgroud)

查询过程...

SELECT sum(Score) as stuScore, count(distinct ta1.idTestQuestion) as answerdQues
            FROM (select ta0.*, @running_time := if(@running_student = idStudent, @running_time, 0) + ta0.TimeTaken, date_add(ta0.StartTime, INTERVAL @running_time SECOND) as running_time, @running_student := idStudent
                from (select tap.idStudent, ta.score, ta.idTestQuestion, tap.StartTime, ta.TimeTaken
                    from `testanswerpaper` tap
                    left join testanswer ta on ta.idTestAnswerPaper = tap.idTestAnswerPaper and (ta.Status = 'Flagged' || ta.Status = 'Answered')
                    where  tap.`idTestQuestionPaper` …
Run Code Online (Sandbox Code Playgroud)

php sql codeigniter mariadb mariasql

4
推荐指数
1
解决办法
186
查看次数

关于重复密钥更新 - MariaDB

我有一个 MySQL 语句,一次将数据插入 4 行。该insert是工作,但我遇到的困难ON DUPLICATE KEY UPDATE

我收到一个错误: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''count = VALUES(11, 22, 33, 44)'' at line 15

下面是一个例子:

INSERT INTO table1 (id, dept, date, count)
VALUES
(1, 4, 2018-01-15, 3),
(2, 3, 2018-01-15, 4),
(3, 3, 2018-01-15, 14),
(4, 2, 2018-01-15, 11)
ON DUPLICATE KEY UPDATE
count = VALUES(11, 22, …
Run Code Online (Sandbox Code Playgroud)

mysql sql mariadb mariasql

2
推荐指数
1
解决办法
3402
查看次数

如何使用nodejs在mariadb中进行批量插入?

每当我尝试运行我的代码时,都会显示列数不匹配错误。

values=[
    [{id:12227722345,name:"dgssssdavgsgfv",pass:"cvhsssssadfvugod"}],
    [{id:12,name:"ddd",pass:"cvh"}]
   ];

c.query('insert into Hash.asn(userid,username,password) values (?,?,?)',[values],function(err,rows)
{
  if (err)
    console.log(err);

  c.query('commit');
  console.log(rows);

}); 
Run Code Online (Sandbox Code Playgroud)

错误:

{ [Error: Column count doesn't match value count at row 1] code: 1136 }
Run Code Online (Sandbox Code Playgroud)

javascript mariadb node.js mariasql

1
推荐指数
1
解决办法
2166
查看次数

我应该关闭MySQL中的查询缓存吗?

我使用的是具有32GB RAM和8核服务器的专用服务器,使用Maria DB 10.1,大多数表都是InnoDB.总数据库大小小于2GB,但我认为性能很慢.

以下是my.cnf我正在使用的文件:

[mysqld]
log-error=/home/MySQL_Server/mysql/dedi.server.co.err
datadir=/home/MySQL_Server/mysql
pid-file=/home/MySQL_Server/mysqlmysqld.pid
innodb_file_per_table=1

skip-name-resolve=1
bind-address=127.0.0.1
#skip-networking=1
#query_cache_type=0
query_cache_type=1
innodb_file_per_table=1
default-storage-engine=InnoDB

#query_cache_size=0
query_cache_size=128M
query_cache_limit=256K
query_cache_min_res_unit = 2k

performance_schema=ON
innodb_buffer_pool_size = 1536M
innodb_log_file_size = 140M
innodb_log_files_in_group=2

sort_buffer_size=256k
join_buffer_size=256k
read_buffer_size=256k
read_rnd_buffer_size=256k
thread_stack=256k
mrr_buffer_size=256k

join_cache_level=8

tmp_table_size=64M
max_heap_table_size=64M

table_open_cache=1024
thread_cache_size=32

innodb_buffer_pool_instances=1

innodb_use_sys_malloc = 1

max_connections=500
wait_timeout=300
interactive_timeout=360
#tmpdir=/var/mysqltmp
#max_allowed_packet=268435456
Run Code Online (Sandbox Code Playgroud)

MySQL Tuner建议如下:

General recommendations:
    Control warning line(s) into /home/MySQL_Server/mysql/dedi.niresh.co.err file
    Control error line(s) into /home/MySQL_Server/mysql/dedi.niresh.co.err file
    Increasing the query_cache size over 128M may reduce performance
    When making …
Run Code Online (Sandbox Code Playgroud)

mysql mariadb server mariasql

1
推荐指数
1
解决办法
4421
查看次数