标签: mysql-connector

MySQL C API 处理文本字段

当使用 MySQL C API 中的 Prepared Statements 来处理 TEXT 字段结果时,必须为 out 绑定指定字符串的长度:

 MYSQL_BIND    out_bind;
 char          str_data[STRING_SIZE]; 
 my_bool       is_null;
 my_bool       error;

 ....
 /* STRING COLUMN */
 out_bind.buffer_type = MYSQL_TYPE_STRING;
 out_bind.buffer = str_data;
 out_bind.buffer_length = STRING_SIZE;
 out_bind.is_null= &is_null;
 out_bind.length= &length;
 out_bind.error= &error;

 mysql_stmt_bind_result(statement, out_bind)
Run Code Online (Sandbox Code Playgroud)

在给定的示例中,STRING_SIZE 是已知常量,但如何处理数据长度从小到兆大小不等的 TEXT 字段?

有没有标准的方法呢?

c mysql mysql-connector

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

MySQL C++连接器中的内存泄漏

我正在使用MySQL C++连接器.Valgrind显示每个连接泄漏192个字节.它只是在线程环境中泄漏内存而没有线程,它没有泄漏任何内存.我做错了什么?我是否需要调用其他一些功能进行清理?示例代码:

#include <pthread.h>
#include <iostream>
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>
#include <cppconn/prepared_statement.h>

using namespace std;

void* test(void* arg) {

  try {
    sql::Driver *driver;
    sql::Connection *con;
    /* Create a connection */
    driver = get_driver_instance();
    con = driver->connect("tcp://127.0.0.1:3306", "root", "root");
    /* Connect to the MySQL test database */
    con->setSchema("test");
    delete con;
  } catch (sql::SQLException &e) {
    cout << "# ERR: SQLException in " << __FILE__;
    cout << "(" << __FUNCTION__ << ") on line " << __LINE__ << …
Run Code Online (Sandbox Code Playgroud)

c++ mysql mysql-connector

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

python mysql连接器 - 多个查询的正确方法是什么

import mysql.connector
cnx=mysql.connector.connect(user,password,host,database)
cursor=(cnx.cursor)
Run Code Online (Sandbox Code Playgroud)

并且,我正在尝试使用不同的查询两次查询数据库,如下所示

query1result=[]
query2result=[]

cursor.execute(query1)
for each in cursor:
    query1result.append[each]
cursor.execute(query1)
for each in cursor:
    query1result.append[each]
Run Code Online (Sandbox Code Playgroud)

我在 python/mysql/connector/cursor.py 收到错误消息。第 474 行

我想知道多个查询的正确方法是什么。

python mysql mysql-connector

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

使用服务器游标获取与流式传输之间的区别

使用服务器游标获取结果和使用获取结果在行为方面有什么区别?

前者(服务器游标)可以被激活:

  • 通过设置useCursorFetch=truedefaultFetchSize=N连接属性中的每个语句。(其中N是大于零的数字。)

  • 或者单独的语句通过最初的设置useCursorFetch=truecom.mysql.jdbc.Connection.setUseCursorFetch(true)在连接上,然后是java.sql.Statement.setFetchSize(N)在语句上。

后者()可以被激活:

  • 通过设置java.sql.Statement.setFetchSize(Integer.MIN_VALUE)或调用语句在单个语句com.mysql.jdbc.Statement.enableStreamingResults()上。

  • 并且可能通过defaultFetchSize=X在连接属性中设置在每个语句上,其中X是一个等于Integer.MIN_VALUE.

使用这些替代方法进行开发时需要考虑什么? 一个好的答案可能涉及性能锁持有资源分配(/释放)等主题

java mysql mysql-connector

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

Entity Framework 6 Code First 和 MySql DateTime 精度?

我在Code First中将EF 6与最新的MySql .Net 连接器一起使用,但我找不到如何将我的 DateTime 列精度设置为 6,它似乎始终为 0(无毫秒)!

我试过:

modelBuilder.Properties().Where(p => p.PropertyType == typeof(DateTime)).Configure(p => p.HasPrecision(6));
Run Code Online (Sandbox Code Playgroud)

modelBuilder.Entity<my_table>()
                .Property(e => e.my_datetime)
                .HasPrecision(6);
Run Code Online (Sandbox Code Playgroud)

但它似乎被忽略了,我已经跟踪context.Database.Log,我可以看到我的日期格式不精确:@gp2: '2015-10-26 15:59:06' (Type = DateTime, IsNullable = false)

我做了一个测试项目,但这一次,使用EF 设计器,它正常工作:S 在 edmx 文件中,我可以看到定义的精度<Property Name="my_datetime" Type="datetime" Precision="6" />,当我向数据库添加对象时,我的精度正确设置为 6 小数秒精度。

c# datetime entity-framework mysql-connector entity-framework-6

5
推荐指数
0
解决办法
2313
查看次数

使用 Python mysql.connector 远程连接 MySQL

以下代码(从与 mysql 服务器不同的机器运行,在同一局域网内),使用 Python3 和 mysql.connector 工作在本地连接到 MySQL 数据库:

import mysql.connector
cnx = mysql.connector.connect(host='192.168.0.24', database='import_test',user='user_builder', password='password***', port=3309)
Run Code Online (Sandbox Code Playgroud)

但是,下面的代码,远程连接到同一个数据库, 不能正常工作

import mysql.connector
cnx = mysql.connector.connect(host='http://imaginarywebsite.ddns.net', database='import_test',user='user_builder', password='password***', port=3309)
Run Code Online (Sandbox Code Playgroud)

相反,我收到以下错误:

File "C:\Users\****\AppData\Roaming\Python\Python34\site-packages\mysql\connector\network.py", line 464, in open_connection
     errno=2003, values=(self.get_address(), _strioerror(err)))
mysql.connector.errors.InterfaceError: 2003: Can't connect to MySQL server on 'http://imaginarywebsite.ddns.net:3309' (11004 getaddrinfo failed)
Run Code Online (Sandbox Code Playgroud)

这是我的 my.cnf 文件的摘录:

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

[mysqld]
innodb_buffer_pool_size=4G
innodb_log_file_size=1024M
innodb_read_io_threads=64
innodb_write_io_threads=64
innodb_io_capacity=7000
innodb_thread_concurrency=0

port            = 3309
bind-address    = 0.0.0.0
Run Code Online (Sandbox Code Playgroud)

所以,这是目前有效的:

  • 使用 192.168.0.24:3309 地址在本地连接到数据库,所以我确定问题不是来自“权限授予”或任何登录/密码/端口错误。
  • 使用http://imaginarywebsite.ddns.net/phpmyadmin通过 phpmyadmin 远程连接,所以我确定问题不是来自我的 DNS …

python mysql ssh remote-access mysql-connector

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

带有 JDBC 的 MySQL - 需要 useUnicode 吗?

很多地方都说明,如果要在MySQL中使用JDBC,并且支持UTF-8,则需要useUnicode=true在JDBC URL中添加。

例如:

但是,我在 Mac OS X 上使用 MySQL 5.7.19 和 mysql-connector-java 5.1.41(由 Spring Boot 1.5.3 引入)在本地尝试了这个。我添加了一个文件/etc/my.cnf

[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
Run Code Online (Sandbox Code Playgroud)

这确保 MySQL 设置为 UTF-8:

mysql> SHOW VARIABLES LIKE 'character_set%';
+--------------------------+-----------------------------------------------------------+
| Variable_name            | Value                                                     |
+--------------------------+-----------------------------------------------------------+
| character_set_client     | utf8                                                      |
| character_set_connection | utf8                                                      |
| character_set_database   | utf8                                                      |
| character_set_filesystem | binary                                                    |
| character_set_results    | utf8                                                      |
| character_set_server     | …
Run Code Online (Sandbox Code Playgroud)

java mysql jdbc mysql-connector

5
推荐指数
0
解决办法
2194
查看次数

通过Apache-kafka将删除事件从MySQL流式传输到PostgreSQL

我试图将事件从MySQL传输到PostgreSQLApache Kafka.尽管插入和更新可以正常工作,但我不知道如何从中删除记录MySQL并将事件传输到PostgreSQL

假定以下拓扑:

               +-------------+
               |             |
               |    MySQL    |
               |             |
               +------+------+
                      |
                      |
                      |
      +---------------v------------------+
      |                                  |
      |           Kafka Connect          |
      |  (Debezium, JDBC connectors)     |
      |                                  |
      +---------------+------------------+
                      |
                      |
                      |
                      |
              +-------v--------+
              |                |
              |   PostgreSQL   |
              |                |
              +----------------+
Run Code Online (Sandbox Code Playgroud)

我正在使用以下docker镜像;

  1. 阿帕奇·祖克珀
  2. 阿帕奇-卡夫卡
  3. Debezium / JDBC连接器

然后

# Start the application
export DEBEZIUM_VERSION=0.6
docker-compose up

# Start PostgreSQL connector
curl -i -X POST -H "Accept:application/json" -H  "Content-Type:application/json" …
Run Code Online (Sandbox Code Playgroud)

mysql postgresql mysql-connector apache-kafka

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

“WFLYCTL0412:未安装所需的服务:”=&gt; [“jboss.jdbc-driver.mysql”]

我正在尝试将 mysql 数据源添加到我的 Wildfly(Jboss15.0.0) 服务器。但我遇到以下错误:

WFLYCTL0013: Operation ("add") failed - address: ([
    ("subsystem" => "datasources"),
    ("data-source" => "MySqlDS")
]) - failure description: {
    "WFLYCTL0412: Required services that are not installed:" => ["jboss.jdbc-driver.mysql"],
    "WFLYCTL0180: Services with missing/unavailable dependencies" => [
        "org.wildfly.data-source.MySqlDS is missing [jboss.jdbc-driver.mysql]",
        "jboss.driver-demander.java:/MySqlDS is missing [jboss.jdbc-driver.mysql]"
    ]
}
09:22:10,385 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([
    ("subsystem" => "datasources"),
    ("data-source" => "MySqlDS")
]) - failure description: {
    "WFLYCTL0412: Required services that are not installed:" …
Run Code Online (Sandbox Code Playgroud)

jboss datasource mysql-connector wildfly

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

在 Mac 上安装 mysqlclient 时出错

我正在尝试在 macOS BigSur(在 M1 芯片 mac 上运行)上安装 mysqlclient 作为使用 MySQL DB 实现 django 项目的一部分。但是,我收到以下错误:

Collecting mysqlclient
  Using cached mysqlclient-2.0.3.tar.gz (88 kB)
Using legacy 'setup.py install' for mysqlclient, since package 'wheel' is not installed.
Installing collected packages: mysqlclient
    Running setup.py install for mysqlclient ... error
    ERROR: Command errored out with exit status 1:
     command: /Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/rs/vv5212l55ys7lk0vx4p87gxw0000gn/T/pip-install-73_o12ze/mysqlclient_23e4f763c971433c863260eda891b9d0/setup.py'"'"'; __file__='"'"'/private/var/folders/rs/vv5212l55ys7lk0vx4p87gxw0000gn/T/pip-install-73_o12ze/mysqlclient_23e4f763c971433c863260eda891b9d0/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/rs/vv5212l55ys7lk0vx4p87gxw0000gn/T/pip-record-jl3d35rj/install-record.txt --single-version-externally-managed --compile --install-headers /Library/Frameworks/Python.framework/Versions/3.9/include/python3.9/mysqlclient
         cwd: /private/var/folders/rs/vv5212l55ys7lk0vx4p87gxw0000gn/T/pip-install-73_o12ze/mysqlclient_23e4f763c971433c863260eda891b9d0/
    Complete output …
Run Code Online (Sandbox Code Playgroud)

python macos installation mysql-connector apple-m1

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