当我尝试安装mysql2 gem时,它失败并没有明显的错误.有谁知道如何解决这个问题,所以mysql2安装?
$ sudo gem install mysql2
Building native extensions. This could take a while...
ERROR: Error installing mysql2:
ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
checking for rb_thread_blocking_region()... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... no …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Ubuntu 10.04服务器,sphinx,myql2版本0.2.7和percona服务器5.5(Myslql 5.5)运行Rails两个应用程序.irb中的mysql2工作正常,我可以连接到db.这个rails 2应用程序正在另一个带有MySql 5.1的Centos服务器上运行.当我跑:
script/server -e production
Run Code Online (Sandbox Code Playgroud)
我明白了:
mysql2.so:libmysqlclient_r.so.15:无法打开共享对象文件:没有这样的文件或目录
这是我的libs:
# ls -l /usr/lib |grep sql
-rw-r--r-- 1 root root 10581008 2011-11-18 16:51 libmysqlclient.a
lrwxrwxrwx 1 root root 16 2011-12-10 05:48 libmysqlclient_r.a -> libmysqlclient.a
lrwxrwxrwx 1 root root 20 2011-12-10 05:48 libmysqlclient.so -> libmysqlclient.so.16
lrwxrwxrwx 1 root root 29 2011-12-10 06:01 libmysqlclient.so.15 -> /usr/lib/libmysqlclient.so.16
-rw-r--r-- 1 root root 7332 2011-11-18 16:44 libmysqlservices.a
-rw-r--r-- 1 root root 562520 2010-02-08 06:59 libsqlite3.a
-rw-r--r-- 1 root root 973 2010-02-08 06:59 libsqlite3.la
lrwxrwxrwx …Run Code Online (Sandbox Code Playgroud) 我有一个基于Web的数据服务的MySQL连接池.当它开始为请求提供服务时,它需要从池中连接才能使用.问题是如果自从使用该特定连接以来已经存在显着的暂停,则服务器可能已经将其计时并且关闭其结束.我希望能够在池管理代码中检测到这一点.
诀窍是:我编码的环境只给我一个非常抽象的API连接.我基本上只能执行SQL语句.我无权访问实际的套接字或直接访问MySQL客户端API.
所以,问题是:我可以在连接上执行哪个最便宜的MySQL语句,以确定它是否正常工作.比如SELECT 1;应该工作,但我想知道是否有更便宜的东西?也许某些东西甚至没有通过网络,但在MySQL客户端库中处理并有效地回答相同的问题?
澄清:我不关心检查MySQL服务器是否正在运行,或者它的数据库配置是否足以回答查询.如果这些事情发生故障,那么服务执行的后续SQL将获取并处理相应的错误.我真的只关心TCP连接是否打开...因为如果服务器关闭它,那么Web服务的SQL将收到一个错误,意味着"只需重新连接并再试一次",这样就不方便了.服务代码的渣土.
关闭:该/* ping */黑客正是那种我一直在寻找的东西,但可惜只能通过JDBC.通过文档阅读该hack,很明显它被放在那里的原因与我想要的完全相同.对于好奇,我在Haskel工作,使用HDBC和HDBC-mysql.我将要求HDBC-mysql的作者添加一种mysql_ping()直接或通过类似黑客调用的方法.
Vlad's DO 1也是我追求的那种东西,而且由于另一个hack在JDBC之外是不可用的,我将使用它.
感谢所有精彩的讨论,特别是@Vlad!
我正在研究OS X 10.6.4.我一直在使用clbuild为SBCL安装支持库(包括clsql),我通过Aquamacs完成所有工作.我使用Hive Logic上的优秀指令安装了MySQL .但是,当我调用(require 'clsql)- 这似乎工作正常 - 然后尝试执行(clsql:connect '(nil "lisp" "root" "") :database-type :mysql)连接到我的本地运行数据库时,我收到此错误消息:
erred while invoking #<COMPILE-OP (:VERBOSE NIL) {12096109}> on
#<CLSQL-MYSQL-SOURCE-FILE "clsql_mysql" {1208E071}>
[Condition of type ASDF:OPERATION-ERROR]
Run Code Online (Sandbox Code Playgroud)
从我对这个问题的研究中,我认为它来自我没有libmysqlclient.dylib文件的编译版本,我在/ usr/local/mysql/lib /中有一个副本,但我不清楚如何去编译它.这个论坛帖似乎说我正是我需要做的,但该目录中没有make文件.
这似乎是常识使用mysql_set_charset/ mysqli::set_charset,而不是直接的MySQL查询的set names.
经常被引用的原因set names是不安全,因为用于mysql_real_escape_string/ 的编码mysqli::real_escape_string只能通过调用mysql_set_charset/ 来设置mysqli::set_charset.(引用的另一个原因是PHP文档说它"不推荐" §.)
但是,set names如果我们使用预备语句和mysql_real_escape_string/mysqli::real_escape_string或除了// 之外的其他逃逸方法,使用直接MySQL查询是否安全mysqli_escape_string?
除了影响mysql_real_escape_string/ mysqli::real_escape_string/ 的编码, vs/?mysqli_escape_string之间有什么区别吗?set namesmysql_set_charsetmysqli::set_charset
我应该使用哪个链接mysqlclient库?他们之间有什么区别?我似乎无法找到答案.谢谢.
我有一个连接到 MySQL 服务器的 C++ 应用程序。
一切正常。
目前它使用 libmysql.dll。
在构建时,我链接到 libmysql.lib。
据我所知,我可以链接到 mysqlclient.lib 并摆脱对 libmysql.dll 的依赖,即将功能嵌入到我的 exe 中。
我的问题是:在哪里可以找到构建 mysqlclient.lib 的源代码?
当调试应用程序时,它链接到 mysqlclient.lib 并进入 mysql_library_init() 例如调试器 (VC++ 2008) 要求文件“f:\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0 .67-build\libmysql\libmysql.c”。
注意:安装 MySQL 时包含 libmysql.lib 和 mysqlclient.lib。
EnvironmentError:找不到mysql_config,同时安装MySQL-python
有人可以建议我做什么?我从我这边做了以下事情:
使用pip安装时出错:
ubuntu12.04@ubuntu12.04:~$ sudo pip install MySQL-python
Downloading/unpacking MySQL-python
Downloading MySQL-python-1.2.4.zip (113kB): 113kB downloaded
Running setup.py egg_info for package MySQL-python
sh: 1: mysql_config: not found
Traceback (most recent call last):
File "<string>", line 16, in <module>
File "/tmp/pip_build_root/MySQL-python/setup.py", line 18, in <module>
metadata, options = get_config()
File "setup_posix.py", line 43, in get_config
libs = mysql_config("libs_r")
File "setup_posix.py", line 25, in mysql_config
raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found
Complete output from command python setup.py egg_info:
sh: …Run Code Online (Sandbox Code Playgroud) 我想建立MySQL驾驶员在交叉编译Qt5的Arm(Raspberry Pi)。
MySQL目标上的客户端库安装,我们运行:pi@raspberrypi:~ $ mysql_config --version
10.1.38
pi@raspberrypi:~ $ mysql_config --include
-I/usr/include/mysql
pi@raspberrypi:~ $ mysql_config --libs
-L/usr/lib/arm-linux-gnueabihf -lmariadbclient -lpthread -lz -lm -ldl
Run Code Online (Sandbox Code Playgroud)
Qt:../configure -opengl es2 -device linux-rpi3-g++ -device-option CROSS_COMPILE=$RPI_TOOLCHAIN -no-use-gold-linker -qt-xcb -xcb -sysroot $RPI_SYSROOT -opensource -confirm-license -nomake examples -nomake tests -release -make libs -prefix /usr/local/qt5pi -sql-mysql -recheck-all
Run Code Online (Sandbox Code Playgroud)
ERROR: Feature 'sql-mysql' was enabled, but the pre-condition 'libs.mysql' failed
Run Code Online (Sandbox Code Playgroud)
config.log似乎Qt Configure会在主机而不是sysroot或target中寻找MySQL![...]
looking for library mysql …Run Code Online (Sandbox Code Playgroud) 我的 MariaDB 服务器在 600 秒(10 分钟)不活动后使我的 C++ 客户端(使用 libmariadb)超时,我不确定为什么,因为我找不到任何指定该数字的已配置超时。
这是我的代码,我在其中执行一个简单的 SELECT 查询,等待 11 分钟,然后再次运行相同的查询并收到“服务器消失”错误:
#include <iostream>
#include <unistd.h>
#include <errmsg.h>
#include <mysql.h>
int main(int, char**)
{
// connect to the database
MYSQL* connection = mysql_init(NULL);
my_bool reconnect = 0;
mysql_options(connection, MYSQL_OPT_RECONNECT, &reconnect); // don't implicitly reconnect
mysql_real_connect(connection, "127.0.0.1", "testuser", "password",
"my_test_db", 3306, NULL, 0);
// run a simple query
mysql_query(connection, "select 5");
mysql_free_result(mysql_store_result(connection));
std::cout << "First query done...\n";
// sleep for 11 minutes
sleep(660);
// run the query again
if(! …Run Code Online (Sandbox Code Playgroud) 我正在开发一个C++应用程序,它需要连接到MySQL服务器以获取一些信息,但我的应用程序不经常运行查询.所以,由于C++连接器在幕后使用C API ......我对此表示怀疑.我是否会使用C API或C++ API陷入困境?