zoukankan      html  css  js  c++  java
  • Solaris上MySQL寄望事项

    作者:天极软件 来源:天极软件

    在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=$

    借使你在一个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没有对你的Solaris版本举行设置!

    shell> gcc -O3 -g -O2 -DDBUG_OFF  -o thr_alarm ...
    ./thr_alarm.c: In function `signal_hand':
    ./thr_alarm.c:556: too many arguments to function `sigwait'
    

    在这种景遇下正确的做法是获得最新版本的egcs,并且用你以后的gcc编译器编译它!至少关于 Solaris 2.5,几乎一切的gcc二进制版本都有旧的、不成用的包含文件,将破怀行使线程的一切程序的文件(并且能够是其他的程序)!

    Solaris不提供一切体系库的静态版本(libpthreadslibdl),所以你不克不及用--static编译MySQL。借使你实验这样做,你将获得错误:

    ld: fatal: library -ldl: not found
    

    借使太多历程试图很快地跟尾mysqld,你将在MySQL日记文件中瞥见这个错误:

    Error in accept: Protocol error
    

    你可以试着用--set-variable back_log=50选项启动效力器作为它的一个处置惩罚设施。

    借使你正在链接你本人的MySQL客户,当你试着实行它时,你能够获得下列错误:

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

    这个成就能用下列设施之一避免:

    • 用下列标识表记标帜链接客户(而不是-Lpath): -Wl,r/full-path-to-libmysqlclient.so
    • 拷贝libmysqclient.so“/usr/lib”
    • 在运转你的客户程序前,把libmysqlclient.so地点目次的路子名加到LD_RUN_PATH的情况变量中。





    版权声明: 原创作品,同意转载,转载时请务必以超链接体式把戏标明文章 原始出处 、作者信息和本声明。不然将追究执法责任。

  • 相关阅读:
    计算机-MQ:Kafka
    DB:时序数据库
    软件-数据仓库工具:hive
    劳动者须防不良企业9类用工陷阱
    PHP+jQuery 注册模块的改进之三:使用 Smarty3
    Java实现 洛谷 P1009 阶乘之和
    Java实现 洛谷 P1009 阶乘之和
    C语言深入理解通过指针引用多维数组(指针中使用起始地址 元素地址 元素值的区分)...
    C语言深入理解通过指针引用多维数组(指针中使用起始地址 元素地址 元素值的区分)...
    C语言深入理解通过指针引用多维数组(指针中使用起始地址 元素地址 元素值的区分)...
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1975271.html
Copyright © 2011-2022 走看看