注册 | 登录
收藏 | 帮助
热门文章
编辑推荐
相关文章  
简单三步走堵死SQLServer注入漏洞
黑客攻破SQL服务器系统的十种方法
透明防火墙架设的完全攻略(brid
linux定时备份mysql数据库
DNS (domain Name System) 系统的
qmail+vpopmail+sqwebmail的安装
qmail Vpopmail And sqwebmail H
qmail Vpopmail And sqwebmail H
qmail Vpopmail And sqwebmail H
qmail Vpopmail And sqwebmail H
您现在的位置: 顶尖设计 >> IT学院 >> 数据库 >> MySQL >> 文章正文
MySQL中文参考手册---4 安装MySQL
作者:晏子  来源:http://linuxdb.yeah.net  点击:  更新:2006-12-20
简介:
.ppd

如果你不能使上述步骤工作,你应该安装MyODBC驱动程序并且通过ODBC连接MySQL服务器。

use DBI;

$dbh= DBI->connect("DBI:ODBC:$dsn","$user","$password") || 

  die "Got error $DBI::errstr when connecting to $dsn\n";

4.10.3 在Win32上安装MySQL Perl分发

MySQL Perl分发包含DBIDBD:MySQLDBD:ODBC

  • 从http://www.mysql.com/download.html得到Win32的Perl分发。
  • C:解压缩分发,这样你得到一个“C:\PERL”目录。
  • 增加目录“C:\PERL\BIN”到你的路径。
  • 增加目录“C:\PERL\BIN\MSWin32-x86-thread”“C:\PERL\BIN\MSWin32-x86”到你的路径。
  • 在 DOS shell执行perl -v测试perl的运行。

4.10.4 使用PerlDBI/DBD接口的问题

如果 Perl 报告它不能找到../mysql/mysql.so模块,那么问题可能是该Perl不能找到共享库文件“libmysqlclient.so”

你可用下列任何一个方法修正它这:

  • perl Makefile.PL -static而非perl Makefile.PL译Msql-Mysql-modules分发。
  • 拷贝libmysqlclient.so到其他共享库文件所在的目录(可能是“/usr/lib”“/lib”)。
  • Linux上,你可以把libmysqlclient.so所在目录的路径名加到“/etc/ld.so.conf”文件中。
  • libmysqlclient.so所在目录的路径名加到LD_RUN_PATH环境变量中。

如果你从DBD-mysql得到下列错误,你可能正在使用gcc(或使用一个旧的用gcc编译的二进制代码):

/usr/bin/perl: can't resolve symbol '__moddi3'

/usr/bin/perl: can't resolve symbol '__divdi3'

“mysql.so”库文件被构造时候,为链接命令加上-L/usr/lib/gcc-lib/... -lgcc(当你编译Perl客户时检查针对“mysql.so”make输出)。-L选项应该指定“libgcc.a”在你系统上所在目录的路径名。

这个问题的另一个原因可能是Perl和MySQL都不是用gcc编译的。在这种情况下,你可以都用gcc编译以解决不匹配。

如果你想要在一个不支持动态链接(象SCO那样)的系统上使用Perl模块,你可以产生包括DBIDBD-mysql的Perl的一个静态版本。这种运行方法是你生成一个链接了DBI代码的Perl版本并在最新的Perl上安装它,然后你使用它来构造附加链接了DBD代码的Perl版本,并且安装它。

在 SCO 上,你必须有下列环境变量设置:

shell> LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:/usr/progressive/lib

或

shell> LD_LIBRARY_PATH=/usr/lib:/lib:/usr/local/lib:/usr/ccs/lib:/usr/progressive/lib:/usr/skunk/lib

shell> LIBPATH=/usr/lib:/lib:/usr/local/lib:/usr/ccs/lib:/usr/progressive/lib:/usr/skunk/lib

shell> MANPATH=scohelp:/usr/man:/usr/local1/man:/usr/local/man:/usr/skunk/man:

首先, 在DBI分发所在目录下运行下列命令,创造包括一个静态链接的Perl DBI

shell> perl Makefile.PL LINKTYPE=static

shell> make

shell> make install

shell> make perl

然后你必须安装新的Perl。make perl的输出将显示正确的你需要执行施行安装的make的命令。在SCO上,是make -f Makefile.aperl inst_perl MAP_TARGET=perl.

接下来,在Msql-Mysql-modules分发所在目录下,使用刚才创建的Perl来创建同样包括一个静态链接的PerlDBD::mysql的另一个Perl:

shell> perl Makefile.PL LINKTYPE=static 

shell> make 

shell> make install 

shell> make perl

最后, 你应该安装这个新的Perl。而且,make perl的输出指出使用的命令。

4.11 系统特定的问题

下面的章节说明在从源代码分发安装MySQL时,发生在特定的系统上并已观察到的一些问题。

4.11.1 Solaris注意事项

在Solaris上,甚至在你解开MySQL分发以前,你可能陷入困境!Solaris tar不能处理长文件名字,因此你在打开MySQL时,可能看到这样的一个错误:

x mysql-3.22.12-beta/bench/Results/ATIS-mysql_odbc-NT_4.0-cmp-db2,informix,ms-sql,mysql,oracle,solid,sybase, 0 bytes, 0 tape blocks

tar: directory checksum error

在这种情况下,你必须使用 GNU tar(gtar) 打开分发。你能在http://www.mysql.com/Downloads/找到为Solaris的一个预编译的拷贝。

Sun的原生线程只工作在Solaris 2.5和更高版本上。对于2.4和更早的版本,MySQL将自动地使用 MIT-pthreads 。见4.9 MIT-pthreads 注意事项。

如果你从配置得到下列错误:

checking for restartable system calls... configure: error can not run test 

programs while cross compiling

这意味着你的编译器安装有些问题!在这种情况下,你应该升级编译器到一个更新的版本。你也可以把下列行插入到config.cache文件来解决这个问题:

ac_cv_sys_restartable_syscalls=${ac_cv_sys_restartable_syscalls='no'}

如果你在一个SPARC上使用Solaris,推荐的编译器是egcs1.1.2 或更新。你能在http://egcs.cygnus.com/找到它。注意:egs1.1.1 和gcc2.8.1 不能在 SPARC 上可靠地工作!

当使用时egcs1.1.2时,推荐的configure命令行是:

shell> CC=gcc CFLAGS="-O6" \

       CXX=gcc CXXFLAGS="-O6 -felide-constructors -fno-exceptions -fno-rtti" \

       ./configure --prefix=/usr/local/mysql --with-low-memory

如果你有Sun Workshop 4.2 编译器,你能这样运行configure

CC=cc CFLAGS="-xstrconst -Xa -xO4 -native -mt" CXX=CC CXXFLAGS="-xO4 -native -noex -mt" ./configure --prefix=/usr/local/mysql

shell> CC=cc CFLAGS="-Xa -fast -xO4 -native -xstrconst -mt" \

       CXX=CC CXXFLAGS="-noex -XO4 -mt" \

       ./configure

你也可以编辑configure脚本改变该行: 
#if !defined(__STDC__) || __STDC__ != 1

为: 
#if !defined(__STDC__)

如果你使用-Xc选项打开__STDC__,Sun编译器不能用 Solaris 的“pthread.h”头文件编译。这是Sun的一个bug。

如果mysqld在运行时发出显示在下面的错误消息,你已经尝试用Sun编译器编译MySQL,没有启用多线程选择(-mt):

libc internal error: _rmutex_unlock: rmutex not held

增加-mtCFLAGSCXXFLAGS并且再试一试。

如果你在用gcc编译MySQL时得到下列错误,它意味着你的gcc没有对

上一页  [1] [2] [3] [4] [5] 




  • 上一篇文章:
  • 下一篇文章:
  • 分享此文:该页面添加到 Mister Wong 添加到雅虎Yahoo!收藏 Add to:Del.icio.us Post to Furl Digg this 添加到Google书签 reddit spurl blogmarks 365Key 评论  收藏  分享  打印
     我来说两句
    姓名:       验证码:   
    主页: 
    评分: 1分 2分 3分 4分 5分
    本频道近期热评文章:
      关于我们 | 联系我们 | 站点地图 | 广告投放 | 友情链接 | 在线留言 | 版权申明
    版权所有 © 2004-2007 顶尖设计(bobd.cn)
    未经授权禁止转载,摘编,复制本站内容或建立镜像. 沪ICP备07504942号 
    网络110
    报警服务