转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> MySql >> 正文
MySQL中文参考手册5(安装MySQL上)         ★★★★

MySQL中文参考手册5(安装MySQL上)

作者:闵涛 文章来源:闵涛的学习笔记 点击数:5210 更新时间:2009/4/22 20:56:57
 4.2的库文件升级,或对其他分发http://www.sunsite.unc.edu/pub/Linux/distributions/redhat/code/rpm/。 

如果你正在链接你自己的MySQL客户并且得到错误: 

ld.so.1: ./my: fatal: libmysqlclient.so.4: open failed: No such file or directory

当执行它们时,这个问题可用下列方法之一避免: 

用下列标志链接客户(而不是-Lpath): -Wl,r/path-libmysqlclient.so。 
拷贝libmysqclient.so到“/usr/lib”。 
在运行你的客户程序前,把libmysqlclient.so所在目录的路径名加到LD_RUN_PATH的环境变量中。 
如果你正在使用 Fujitsu 编译器(fcc / FCC),编译MySQL你将有一些问题,因为 Linux 头文件面向gcc。 

下列configure行应该与fcc/FCC工作: 

CC=fcc CFLAGS="-O -K fast -K lib -K omitfp -Kpreex -D_GNU_SOURCE -DCONST=const 
-DNO_STRTOLL_PROTO" CXX=FCC CXXFLAGS="-O -K fast -K lib  -K omitfp 
-K preex --no_exceptions --no_rtti -D_GNU_SOURCE -DCONST=const 
-Dalloca=__builtin_alloca -DNO_STRTOLL_PROTO ''''-D_EXTERN_INLINE=static __inline''''" 
./configure --prefix=/usr/local/mysql --enable-assembler 
--with-mysqld-ldflags=-all-static --disable-shared --with-low-memory

4.11.5.1 Linux-x86 注意事项
MySQL要求libc版本 5.4.12 或更新,已知可工作在libc 5.4.46。glibc版本2.0.6和以后版本应该也工作。使用RedHat的glibc RPM有一些问题,所以如果你有问题,检查是否有任何更新!glibc2.0.7-19和2.0.7-29 RPM已知可以工作。 

在一些更老的 Linux 分发上,configure可能产生象这样的一个错误: 

Syntax error in sched.h. Change _P to __P in the /usr/include/sched.h file.
See the Installation chapter in the Reference Manual.

按照错误消息所说的去做,并且给只有一条下划线的_P宏增加一个额外下划线 (''''__P''''), 然后再试一试。 

在编译时,你可能得到一些警告;显示在下面的那些可以被忽略: 

mysqld.cc -o objs-thread/mysqld.o
mysqld.cc: In function `void init_signals()'''':
mysqld.cc:315: warning: assignment of negative value `-1'''' to `long unsigned int''''
mysqld.cc: In function `void * signal_hand(void *)'''':
mysqld.cc:346: warning: assignment of negative value `-1'''' to `long unsigned int''''

在Debian GNU/Linux上,如果你想要在系统启动时自动启动MySQL,做下列命令: 

shell> cp support-files/mysql.server /etc/init.d/mysql.server
shell> /usr/sbin/update-rc.d mysql.server defaults 99

mysql.server可以在MySQL安装目录的“share/mysql”目录下面找到, 或在MySQL源代码树的“support-files”目录下找到。 

如果mysqld在它启动时总是核心倾倒(core dump), 问题可能是你有一个老版本的“/lib/libc.a”,重命名它,然后删除“sql/mysqld”并且重新make install再试一试。这个问题在一些 Slackware 安装上被报告了。有最新版本的glibc的RedHat 5.0也有一些类似的问题。见4.11.5.2 RedHat 5.0 注意事项。 

如果再链接mysqld时,你得到下列错误, 它意味着你的“libg++.a”没有正确安装: 

/usr/lib/libc.a(putc.o): In function `_IO_putc'''':
putc.o(.text+0x0): multiple definition of `_IO_putc''''

像这样运行configure,你能避免使用“libg++.a”: 

shell> CXX=gcc ./configure

4.11.5.2 RedHat 5.0 注意事项
如果你在RedHat上有MySQL的任何问题,你应该开始升级glibc到最新可能的版本! 

如果你安装所有的官方RedHat补丁(包括glibc-2.0.7-19和glibc-devel-2.0.7-19),MySQL的二进制代码和源代码分发运行应该没有任何麻烦! 

因为在glibc2.0.5里面有关如何释放pthread_key_create变量有一个错误,更新是需要的。用glibc2.0.5,你必须使用一个静态地链接的MySQL二进制分发。如果你想要从源代码编译,你必须安装来自于http://www.mysql.com/Downloads/Linux 的LinuxThreads修正版本或升级你的glibc。 

如果你有一个不正确的glibc或LinuxThreads版本,其结果是mysqld在每个连接以后崩溃。例如,mysqladmin version完成后,mysqld将崩溃! 

另一个不正确的库的症状是当mysqld启动时,马上崩溃。在一些Linux系统上,这个问题可以通过这样的配置来修正: 

shell> ./configure -- with-mysqld-ldflags=-all-static
在Redhat 5.0上,容易的方法是安装glibc2.0.7-19 RPM并运行configure --with-mysqld-ldflags=-all-static选项。 

对于glibc2.0.7的源代码分发,容易运用并被MySQL测试的一个补丁可以在下面找到: 

http://www.mysql.com/Download/Linux/glibc-2.0.7-total-patch.tar.gz

如果当你构造MySQL时,你有类似于这些崩溃的经历, 你总能下载到最新的MySQL二进制版本。这是静态链接的以避免库冲突而且应该在所有的Linux系统上工作! 

MySQL自带一个内部的调试器可以有很多信息产生踪迹文件,能被用来发现并解决大量不同的问题。见G.1 调试一个MySQL服务器。

4.11.5.3 RedHat 5.1 注意事项
RedHat 5.1的glibc(glibc2.0.7-13 )有一个内存缺陷,所以要得到一个稳定的MySQL版本,你必须升级glibc到2.0.7-19、降级glibc或使用一个mysqld的二进制版本。如果你不这样做,你将碰到内存问题(存储器溢出,等等, 等等)。在这种情况下,最常见的错误是: 

Can''''t create a new thread (errno 11). If you are not out of available
memory, you can consult the manual for any possible OS dependent bug

在你升级到glibc2.0.7-19以后,你可以用动态链接(缺省)配置MySQL,但是在你从源代码安装了glibc 2.0.7-19之前,你不能运行configure --with-mysqld-ldflags=-all-static选项!

你可以用rpm -q glibc检查你有glibc哪个版本。 

4.11.5.4 Linux-SPARC 注意事项
在一些实现中,readdir_r()被破坏了。其症状是SHOW DATABASES总是返回一个空集合。这可以通过在编译前从“config.h”中删除HAVE_READDIR_R进行更正。 

有些问题将需要给你的Linux安装打补丁。补丁可在http://www.mysql.com/patches/Linux-sparc-2.0.30.diff找到,这个补丁是针对Linux分发“sparclinux-2.0.30.tar.gz”,它们可从vger.rutgers.edu(一个从来没有与官方的2.0.30版合并的版本)得到。你也必须安装LinuxThreads 0.6或更新。 

感谢jacques@solucorp.qc.ca提供这个信息。 

4.11.5.5 Linux-Alpha注意事项
在Linux-Alpha上的大问题仍然是在这个平台上的glibc的线程有一些问题。你应该从得到你能找到的最新glibc版本开始。 

注意:在你运行任何使用线程的程序之前(象mysqld、thr_alarm或thr_lock),你应该增减共享存储器的限制(用ulimit)。如果你忘记这样做,MySQL基准测试已知是失败的! 

用下列命令配置MySQL: 

shell> CC=gcc CCFLAGS="-Dalpha_linux_port" 
       CXX=gcc CXXFLAGS="-O3 -Dalpha_linux_port -felide-constructors -fno-exceptions -fno-rtti" 
       ./configure --prefix=/usr/local/mysql

试试编译mysys/thr_lock和mysys/thr_alarm,测试这些程序的运行!(不用参数调用每一个,如果一切正常,每个应该以test_succeeded结束。)

在安装MySQL以后,在safe_mysqld里去掉ulimit命令的注释,并加入选项以增加共享存储器。 

注意对MySQL来说,Linux-Alpha仍然是一个alpha质量的平台。用最新glibc,你有一个让它工作的很好机会。 

如果你用信号方面的问题(MySQL出人意料地在高负载下死掉),你可能找到了一个线程和信号有关的OS错误。在这种情况下,你可以告诉MySQL如下配置以不使用信号: 

shell> CFLAGS=-DDONT_USE_THR_ALARM 
       CXXFLAGS=-DDONT_USE_THR_ALARM 
       ./configure ...

这不影响MySQL性能,但是有副作用,就是你不能用mysqladmin kill或mysqladmin shutdown杀死在一个连接上“睡眠”的客户。相反,当客户发出下一个命令时,它将死掉。 

4.11.5.6 MkLinux 注意
MySQL应该能工作在有最新glibc包的MkLinux上(用glibc2.0.7测试过)。 

4.11.5.7 Qube2 Linux注意事项
为了让MySQL在Qube2上工作,(Linux Mips),你需要最新的glibc库(glibc-2.0.7-29C2已知可工作)。你也必须使用egcsC++编译器(egcs-1.0.2-9或更新)。 

4.11.6 Alpha-DEC-Unix 注意事项
当在Digital UNIX下编译线程程序时,文档推荐对于cc和cxx使用-pthread选项而且库文件用-lmach -lexc(除了-lpthread外)。你应该象下面这样运行configure: 

shell> CC="cc -pthread" CXX="cxx -pthread -O" 
       ./configure --with-named-thread-libs="-lpthread -lmach -lexc -lc"

当编译mysqld时,你可能看见这样一些警告: 

mysqld.cc: In function void handle_connections()'''':
mysqld.cc:626: passing long unsigned int *'''' as argument 3 of
accept(int,sockadddr *, int *)''''

你可以安全地忽略这些警告,他们的发生是因为configure只能检测出错误,而不是警告。 

如果你直接从命令行启动服务器,当你退出时,你可能有死掉的问题。(当你退出时,你的重要进程收到一个SIGHUP信号),如果如此,试着象这样启动服务器: 

shell> nohup  mysqld [options] &

nohup使得跟随它的命令忽视从终端发来的任何SIGHUP信号了。另外,通过运行safe_mysqld启动服务器,它为你使用nohup调用mysqld。 

4.11.7 Alpha-DEC-OSF1注意事项
如果你有编译问题并安装了DECCC和gcc,尝试这样运行configure: 

shell> CC=cc CFLAGS=-O CXX=gcc CXXFLAGS=-O3 
       ./configure --prefix=/usr/local/mysql

如果你得到“c_asm.h”文件的问题,你可以创建并使用一个“哑(dummy)”“c_asm.h”文件: 

shell> touch include/c_asm.h
shell> CC=gcc CFLAGS=-I./include 
       CXX=gcc CXXFLAGS=-O3 
       ./configure --prefix=/usr/local/mysql

在OSF1 V4.0D和编译器"DEC C V5.6-071 on Digital UNIX V4.0 (Rev. 878)" 上,编译器有了一些奇怪的行为(未定义asm标志)。/bin/ld好象也被破坏(当链接mysqld时,发生_exit undefined问题)。在这个系统上,从OSF 4.0C的版本替换了/bin/ld后,我们设法用下列configure命令行编译MySQL,: 

shell> CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql 

用Digital编译器“C++ V6.1-029”,下列命令应该工作: 

CC=cc -pthread
CFLAGS=-O4 -ansi_alias -ansi_args -fast -inline speed -speculate all -arch host
CXX=cxx -pthread
CXXFLAGS=-O4 -ansi_alias -ansi_args -fast -inline speed -speculate all -arch host
export CC CFLAGS CXX CXXFLAGS
./configure --prefix=/usr/mysql/mysql --with-low-memory --enable-large-files 
--with-mysqld-ldflags=-all-static --disable-shared --with-named-thread-libs="-lmach -lexc -lc"

在OSF1的某些版本中,alloca()函数被破坏,通过删除定义''''HAVE_ALLOCA''''的“config.h”的行更正它。 

alloca()函数也可能在/usr/include/alloca.h里面有一个不正确的原型,源于此的警告可以忽略。 

configure将自动地使用下列线程库: --with-named-thread-libs="-lpthread -lmach -lexc -lc"。

当使用g

上一页  [1] [2] [3] [4] [5] [6] [7]  下一页


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台