在 Cygwin 中编译 MySQL 客户端
转自http://www.phpvim.net/windows/build-mysql-client-on-cygwin.html
MinTTY 是一个小巧但却很实用的 Cygwin 终端机,但有个严重的问题就是无法调用交互性的 Windows 原生程序,比如说
mysql.exe,当你在 MinTTY 中输入如下的命令:
1
$ mysql -uroot
-p
本来 mysql.exe 会提示输入密码,但在 MinTTY 中程序会直接挂起,不再响应,实际上即使在 -p
参数后面跟上密码,也是一样的。
某些程序,比如 python,会提供参数 -i,使自身在终端中进入交互模式,可惜并非所有的程序都有这样的参数。
解决的办法,使用 Cygwin 版本的 MySQL 客户端,但 Cygwin 并没有提供,所以就只有自己动手编译一个!
在 http://dev.mysql.com/downloads
下载源码包并解压。
1
2
3
$ wget
http://
dev.mysql.com/
get/
Downloads/
MySQL-5.5
/
mysql-5.5.0-m2.tar.gz/
from/
......
$ tar
zxvf mysql-5.5.0-m2.tar.gz
$ cd
mysql-5.5.0-m2
在动手编译之前,先打开 Cygwin 安装程序安装 readline,用来替代 MySQL 自带的。MySQL 源码包捆绑的
readline 在 Cygwin中编译会报错。
准备好以后,开始编译过程:
1
2
3
$ ./
configure --without-server
--without-readline
CFLAGS
=-O2 CXXFLAGS
=-O2
$ make
$ make
install
Cygwin 的编译速度是很慢的,和原生 *nix 系统完全没法比,所以如果不是闲到发慌,最好不要去编译“复杂”的 MySQL
Server。
编译安装完 MySQL Client,打开 Windows 系统中的 MySQL Server,使用如下的命令测试一下:
1
$ mysql -h127.0.0.1 -uroot
-p
为什么加上 -h127.0.0.1 呢?默认的情况下,不带 -h 参数或者使用 -h localhost,MySQL 都会使用 Unix
socket file 连接服务器,即使你在命令中指定了端口也会被忽略的,所以肯定连接不上的,提示找不到 /tmp/mysql.sock。使用
IP 或者主机名后,MySQL 就会使用 TCP/IP 模式连接服务器的 3306 端口,这样就什么没问题了。
为了方便,在配置文件中强制客户端使用 TCP/IP 连接模式。
复制 mysql-5.5.0-m2/support-files 中的配置文件样板到 /etc/my.cnf,EG:
1
$ cp
support-files/
my-medium.cnf /
etc/
my.cnf
在 [client] 中加入 protocol=TCP,EG:
1
2
3
4
5
6
7
8
9
10
# The following options will be passed to all MySQL clients
[
client]
#password = your_password
port
相关文档:
1: ASCII(str) 返回字符串str的第一个字符的ASCII值(str是空串时返回0) mysql> select ASCII('2'); -> 50 mysql> select ASCII(2); -> 50 mysql> select ASCII('dete'); -> 100
2:ORD(str) 如果字符串str句首是单字节返回与ASCII()函数返回的相同值。 如果是一个多字节字符,以格式返 ......
MYSQL4.1及更高版本支持服务器端准备语句(Prepared Statements), 它使用增强的二进制客户端/服务器协议在客户端和服务器之间高效的发送数据,可以通过支持这种行协议的编程库来访问准备语句,列入MYSQL CAPI,MYSQL Connector/J和MYSQL Connector/NET 为JAVA和.NET提供了同样的访问接口。它也有SQL语言的访问接口。
创建准 ......
MySql版本信息的查询:
1、通过mysql -V命令查询
C:\mysql\bin>mysql -V
mysql Ver 12.22 Distrib 4.0.18, for Win95/Win98 (i32)
2、通过mysql模式下的status命令查看状态
mysql> status
--------------
mysql Ver 12.22 Distrib 4.0.18, for Win95/Win98 (i32)
Connection id: &nbs ......
key_buffer_size - 这对MyISAM表来说非常重要。如果只是使用MyISAM表,可以把它设置为可用内存的 30-40%。合理的值取决于索引大小、数据量以及负载。
记住,MyISAM表会使用操作系统的缓存来缓存数据,因此需要留出部分内存给它们,很多情况下数据比索引大多了。尽管如此,需要总是检查是否所有的 key_buffer 都被利用了。 ......