我将尝试解释在Linux和Windows平台上从ColdFusion连接MySQL。
您可以通过nmap或netstat命令检查MySQL安装。
正如你所看到的,我们将使用MySQL 4.1.x,因为没有任何MySQL 5软件包的Debian Linux。 但是在其他Linux发行版或Windows系统上,您可能更喜欢使用MySQL 5.x.
我更喜欢使用当前推荐的版本MySQL?Connector / J 3.1.12。 您可以 下载 “ mysql-connector-java-3.1.12.tar.gz ”或“ mysql-connector-java-3.1.12.zip ”文件。
我们提取这个文件,找到一个文件为“mysql-connector-java-3.1.12-bin.jar”。 我们需要将此文件复制到“[cfmx_root] / runtime / lib”目录中。 我的Windows上有“E:\ CFusionMX7 \ runtime \ lib”,我的Linux系统上有“opt / coldfusionmx / runtime / lib”。
当然我们也需要重新启动ColdFusion服务器。
我还会测试Unicode支持,因为我已经创建了一个数据库,它具有Unicode作为标准字符集和一些Unicode数据进行测试。
将ColdFusion管理员打开为“http:// [machinename]:8500 / CFIDE / administrator / index.cfm”,然后转到菜单中的“数据源”部分。 当我们使用MySQL 4.1.x并且不支持defaul时,我们给出一个新数据库连接的名称,并选择“其他”并定义必需的字段如下。
请务必:此设置在Windows系统上无任何问题,但如果您希望在Linux系统上获得Unicode支持,则必须定义如下的JDBC URL
jdbc:mysql://127.0.0.1:3306 / unicodetest?useUnicode = true&characterEncoding = UTF-8
这些设置适用于我,但在与服务器名称相同的情况下,而不是“127.0.0.1”,您可能会尝试使用真正的服务器IP。
不要忘记,这个cfmx用户不是默认用户。 我已经在MySQL上创建了这个用户。
在这些设置之后,我们可以提交表单,如果一切正常,我们可以获得成功的消息“数据源更新成功”。
我也想把这里放在我的数据库测试脚本这是基本的但有用的。
如果您有任何问题,请随时通过“ howto@demirkapi.net ”与我联系。
为什么这个教程?
因为MySQL是最有名的数据库解决方案之一,而且是为任何类型的应用程序工作的一个好的,强大的和免费的替代方案。开始之前
首先我们需要安装ColdFusion。 如果您还没有在Linux框中特别尝试ColdFusion安装,我将建议我的简单教程“ Debian Sarge(3.1r1)Linux上的ColdFusion 7.x安装 ”。MySQL安装
我们还需要安装MySQL服务器。 我建议使用MySQL版本4.1.x或更高版本由于支持Unicode。 您可以通过 http://mysql.com网站下载所需的MySQL服务器,但如果尚未安装,则在Debian Linux上,可以使用以下命令来安装MySQL。
debian:〜#apt-get install mysql-client-4.1 mysql-common-4.1 mysql-server-4.1
您可以通过nmap或netstat命令检查MySQL安装。
debian:~# nmap localhost
Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2006-01-14 11:22 CET
Interesting ports on localhost.localdomain (127.0.0.1):
(The 1654 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
80/tcp open http
110/tcp open pop3
143/tcp open imap
953/tcp open rndc
3306/tcp open mysql
Nmap finished: 1 IP address (1 host up) scanned in 0.809 seconds
debian:~#
debian:~# netstat -a | grep mysql
tcp 0 0 localhost.localdo:mysql *:* LISTEN
unix 2 [ ACC ] STREAM LISTENING 4245 /var/run/mysqld/mysqld.sock
debian:~#
正如你所看到的,我们将使用MySQL 4.1.x,因为没有任何MySQL 5软件包的Debian Linux。 但是在其他Linux发行版或Windows系统上,您可能更喜欢使用MySQL 5.x.
JDBC连接
如您所知,ColdFusion是一个基于Java的应用服务器,我们将使用JDBC来连接MySQL。 为了通过JDBC连接,我们需要使用我们可以从MySQL页面 下载的 JDBC连接器。我更喜欢使用当前推荐的版本MySQL?Connector / J 3.1.12。 您可以 下载 “ mysql-connector-java-3.1.12.tar.gz ”或“ mysql-connector-java-3.1.12.zip ”文件。
我们提取这个文件,找到一个文件为“mysql-connector-java-3.1.12-bin.jar”。 我们需要将此文件复制到“[cfmx_root] / runtime / lib”目录中。 我的Windows上有“E:\ CFusionMX7 \ runtime \ lib”,我的Linux系统上有“opt / coldfusionmx / runtime / lib”。
当然我们也需要重新启动ColdFusion服务器。
MySQL数据库示例
我使用以下脚本创建一个示例MySQL数据库“unicodetest”。use unicodetest;
CREATE TABLE `turkce` (
`id` int(4) NOT NULL auto_increment,
`testfield` varchar(50) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
insert into turkce values
(1, 'Türkçe Test ğĞ üÜ ıİ şŞ öÖ çÇ'),
(2, 'ì?´ê²ƒì?€ í•œêµì–´ ì?´ë‹¤');
我还会测试Unicode支持,因为我已经创建了一个数据库,它具有Unicode作为标准字符集和一些Unicode数据进行测试。
数据库定义
现在我们需要在ColdFusion管理员中定义我们的新数据库。将ColdFusion管理员打开为“http:// [machinename]:8500 / CFIDE / administrator / index.cfm”,然后转到菜单中的“数据源”部分。 当我们使用MySQL 4.1.x并且不支持defaul时,我们给出一个新数据库连接的名称,并选择“其他”并定义必需的字段如下。
请务必:此设置在Windows系统上无任何问题,但如果您希望在Linux系统上获得Unicode支持,则必须定义如下的JDBC URL
jdbc:mysql://127.0.0.1:3306 / unicodetest?useUnicode = true&characterEncoding = UTF-8
这些设置适用于我,但在与服务器名称相同的情况下,而不是“127.0.0.1”,您可能会尝试使用真正的服务器IP。
不要忘记,这个cfmx用户不是默认用户。 我已经在MySQL上创建了这个用户。
在这些设置之后,我们可以提交表单,如果一切正常,我们可以获得成功的消息“数据源更新成功”。
我也想把这里放在我的数据库测试脚本这是基本的但有用的。
<cfset request.mydsn = "unicodetest">
<strong>Unicode Test</strong>
<br />
<br />
<cfoutput>
<a href="#script_name#">List</a>
<br />
<br />
<form action="#script_name#" method="post">
<input name="testfield" type="text" value="Türkçe Test ğĞ üÜ ıİ şŞ öÖ çÇ" />
<br />
<input name="AddNewRecord" type="submit" value="Add" />
</form>
</cfoutput>
<cfif IsDefined("AddNewRecord")>
<cfquery name="AddNewRecord" datasource="#request.mydsn#">
INSERT INTO turkce
(testfield)
VALUES
('#trim(testfield)#')
</cfquery>
</cfif>
<br />
<br />
<cfquery name="GetResults" datasource="#request.mydsn#">
SELECT id, testfield
FROM turkce
</cfquery>
<cfoutput query="GetResults">
#testfield# <br />
</cfoutput>
如果您有任何问题,请随时通过“ howto@demirkapi.net ”与我联系。
关于作者
O?uz Demirkap? 是TeraTech的高级应用开发
人员 。 他于1994年开始开发CGI Web应用程序,自1997年以来一直在开发ColdFusion。他曾在土耳其和德国担任过许多知名商业和蓝筹公司的CTO或高级开发人员。 他在CFTR - ColdFusion土耳其用户组运行了六年,然后搬到美国。 他是一位着名的ColdFusion传道人,并在欧洲的许多用户组会议上发表过演讲。 他的主要兴趣领域在于ColdFusion,Flex,Frameworks技术和L10N&i18N,CMS,门户网站,电子商务解决方案。