zoukankan      html  css  js  c++  java
  • 安置MySQL二进制代码分发

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

    你必要下列工具安置一个MySQL二进制分发:

    • GNU gunzip解紧缩分发。
    • 一个恰当的tar解包分发。 GNU tar已知可以。

    在Linux下的另一个安置要领是运用RPM(RedHat包处理器)分发。见4.6.1 Linux RPM 注意变乱。

    倘若你遇到成绩,在把成绩邮寄到mysql@lists.mysql.com时,请老是运用mysqlbug,就算成绩不是一个bug,mysqlbug收团系统信息,将有助于其余人处理你的成绩。不运用mysqlbug,你将扩充掉掉你成绩的一个处理方案的或许性!在你解包分发后,你会在“bin”目录下找到mysqlbug。见2.3 如何告诉错误或成绩。

    你必需施行以便安置并运用一个MySQL二进制分发的根本命令是:

    shell> gunzip < mysql-VERSION-OS.tar.gz |tar  xvf - 
    shell> ln - s  mysql-VERSION-OS  mysql 
    shell> cd mysql 
    shell> scripts/mysql_install_db 
    shell> bin/safe_mysqld &
    

    倘若你安置了DBIMsql-Mysql-modulesPerl模块,你可以运用bin/mysql_setpermission剧本添加新用户。

    以下是更详细的描写:

    对于安置二进制分发,遵照以下步骤,然后持续到4.15 安置后期的设置与测试,进行安置后期的设置和测试:

    1. 遴选一个你想解开分发包的目录,进入给目录。鄙人面的例子中,我们将分发解包在“/usr/local”下并且树立一个安置MySQL“/usr/local/mysql”目录。(是以,下列指令假定你有权限在“/usr/local”中树立文件,倘若该目录被保护,你必要以root施行安置。)
    2. 从4.1 如何获得MySQL中列出的站点之一获得一个分发文件。MySQL二进制分发以紧缩的tar文档供应,并且有相似“mysql-VERSION-OS.tar.gz”的名字,这里VERSION是一个数字(比方,3.21.15),且OS表达分发能运转的应用系统范例范例(比方,pc-linux-gnu-i586)。
    3. 解开分发并且创竖立安置目录:
      shell> gunzip < mysql-VERSION-OS.tar.gz |tar  xvf - 
      shell> ln - s  mysql-VERSION-OS  mysql
      

      第一个命令树立一个名为“mysql-VERSION-OS”的目录,第二个命令天生到该目录的一个标识表记标帜链接。这让你更容易地把安置目录指定为“/usr/local/mysql”

    4. 进入安置目录:
      shell> cd  mysql

      你会在mysql目录下发现几个文件和子目录,对安置目标最首要的是“bin”“scripts”子目录。

      “bin”
      这个目录包孕客户次序和就事器,你应该把这个目录的残破路子加到你的PATH环境变量,以便你的shell能准确的找到MySQL次序。
      “scripts”
      这个目录包孕mysql_install_db剧本,用来初始化就事器存取权限。
    5. 倘若你想运用mysqlaccess而在某个非尺度的地点有MySQL分发,你必需改动地点,在哪儿mysqlaccess希冀找到mysql客户。编纂“bin/mysqlaccess”剧本,年夜约在第18行,根究相似下面的行:
      $MYSQL = “/usr/local/bin/mysql”; # path to mysql executable

      改动路子以反应出mysql实际存储在你系统上的地点。倘若你不这样做,当你运转mysqlaccess时,你将掉掉一个broken pipe的错误。

    6. 发现MySQL授权表(只要在你曩昔没安置过MySQL是需求的):
      shell> scripts/mysql_install_db

      注意当你运转时mysql_install_db时,比版本3.22.10老的MySQL版本启动MySQL就事器。这不再是真的了!

    7. 倘若你想要安置对Perl DBI/DBD接口的支撑,见4.10 Perl安置注意变乱。
    8. 倘若你喜欢在指点机器时主动启动MySQL,你可以拷贝support-files/mysql.server文件到你系统有启动文件的中间。更多的信息可以在support-files/mysql.server剧本中和4.15.3 主动启动和中止MySQL找到。

    在统统工具被解包并且安置当前,你应该初始化并且测试你的分发。

    你可以用下列命令启动MySQL就事器:

    shell> bin/safe_mysqld &
    

    见4.15 安置后期的设置和测试。


    4.6.1 Linux RPM 注意变乱

    在Linux上安置MySQL推荐的要领是运用一个RPM文件。MySQL RPM面前目今当今是在一个 RedHat 5.2 系统上竖立的,但是应该能使命在支撑rpm且运用glibc的其他 Linux 版本上。

    倘若一个RPM文件有成绩,比方Sorry, the host 'xxxx' could not be looked up,见4.6.3.1 Linux 注意变乱。

    你或许要运用的RPM文件有:

    • MySQL-VERSION.i386.rpm MySQL就事器。除非你只是想要与运转在其他机器上MySQL就事器衔接,否则你将必要它。
    • MySQL-client-VERSION.i386.rpm 尺度MySQL客户次序。你或许老是必要安置这个包。
    • MySQL-bench-VERSION.i386.rpm 测试和基准次序。必要Perl和msql-mysql-modules RPM。
    • MySQL-devel-VERSION.i386.rpm 所需的库和包孕文件。倘若你想要编译其他MySQL客户次序, 比方Perl模块。
    • MySQL-VERSION.src.rpm 包孕上述统统包的源代码。它也能被用来尝试为其他硬件平台构造RPM(比方,Alpha或SPARC)。

    查察一个RPM包中的统统文件:

    shell> rpm - qpl  MySQL-VERSION.i386.rpm

    施行一个尺度的最小安置,运转这个命令:

    shell> rpm -i MySQL-VERSION.i386.rpm  MySQL-client-VERSION.i386.rpm

    只安置客户包:

    shell> rpm -i MySQL-client-VERSION.i386.rpm

    RPM将数据放在“/var/lib/mysql”里,RPM也在“/etc/rc.d/”里树立恰当的入口以便在指点时主动启动就事器。(这意味着倘若你曩昔曾经安置过,在对它改动之前,你可以把你曩昔安置的MySQL启动文件做个拷贝,是以你不会损掉窜改)。

    在安置了RPM文件后,“mysqld”警备次序应该正在运转,并且面前目今当今你应该可以最先运用MySQL。见4.15 安置后期的设置和测试。

    倘若一些工具失足,可以在二进制的安置一节里找到更多的信息。见4.6 安置MySQL二进制代码分发。


    4.6.2 构造客户次序

    倘若你编译你本人写的或你从第三方获得的MySQL客户次序,他们必需用link命令的-lmysqlclient选项进行链接。你或许也必要指定一个 -L 选项,告诉链接器在哪儿查找库文件。比方,倘若库文件安置在“/usr/local/mysql/lib”里,在链接命令上运用 -L/usr/local/mysql/lib -lmysqlclient

    对运用MySQL头文件的客户次序,当你编译他们时,你或许必要指定一个 -I 选项(比方,-I/usr/local/mysql/include), 使得编译器能找到头文件。

    4.6.3 系统特定的成绩

    下一节声名在从一个二进制分发安置MySQL时,曾经在特定的系统上视察到已孕育发生过一些成绩。

    4.6.3.1 Linux 注意变乱

    MySQL必要至多Linux 2.0。

    二进制刊行版用-static链接的,这意味着你伟年夜不用担忧你拥有的系统库是哪个版本。你也不用安置LinuxThreads。一个用-static链接的次序比一个静态链接次序稍年夜些但更快(3-5%)。但是,一个成绩是你不克不及运用静态链接的用户定义函数(UDF)。倘若你预备编写或运用UDF函数(这只对C或C 次序员),你必需编译MySQL本人,运用静态链接。

    倘若你正在运用一个基于libc-的系统(而不是一个glibc2系统),你将或许遇到二进制刊行的主机名分化和getpwnam()的一些成绩(这是由于glibc不幸地依托于一些包孕分化主机名和getwpent()的外部库,致使在用-static编译时)。在这种情况下,当你运转mysql_install_db时,你或许掉掉下列错误信息:

    sorry, the host 'xxxx' could not be looked up

    或当你尝试以 --user 选项运转 mysqld 时的下列错误:

    getpwnam : No such fileor directory

    你能用下列要领之一处理这个成绩:

    • 获得一个MySQL源代码分发(一个RPM或tar分发)并且安置它。
    • 施行mysql_install_db --force;这将不施行mysql_install_db内中的resolveip测试。瑕玷是你不克不及在授权表中运用主机名字;相反你必需运用IP数字(除了localhost)。倘若你正在运用一个老的不支撑--forceMySQL版本,你必需用编纂器删除mysql_install中的resolveip测试。
    • su启动mysqld而不运用--user

    MySQL的Linux-Intel二进制代码和RPM刊行版是为最高或许的速率而设置配备铺排的。我们老是雀跃运用可用的最快的稳固的编译器。

    MySQL的Perl支撑要求Perl 5.004_03或更新。

    4.6.3.2 HP-UX 注意变乱

    针对HP-UX的MySQL二进制分发生发火为一个HP depot(堆栈)或tar 文件格式分发的。为了运用depot文件,你必需运转至多HP-UX 10.x 以便访问HP的软件堆栈工具。

    MySQL的HP版本在运转HP-UX 10.20下的HP 9000/8xx 就事器上编译,并且运用MIT-pthreads。它已知可在这种设置配备铺排下很好地使命。MySQL 3.22.26和更新版也用HP原生线程包构造。

    其他可以运转的设置配备铺排:

    • 运转 HP-UX 10.20 的 HP 9000/7xx
    • 运转 HP-UX 10.30 的 HP 9000/8xx

    下列设置配备铺排简直肯定不克不及运转:

    • 运转 HP-UX 10.x 的 HP 9000/7xx 或 8xx ,x < 2
    • 运转 HP-UX 9.x 的 HP 9000/7xx 或 8xx

    为了安置分发,运用下面的命令之一, 这里/path/to/depot是堆栈文件的残破路子:

    • 要安置统统工具,包孕就事器、客户和开发工具:
       shell> /usr/sbin/swinstall - s  /path/to/depot  mysql.full
    • 仅仅安置就事器:
      shell> /usr/sbin/swinstall - s  /path/to/depot  mysql.server
    • 仅仅安置客户软件包:
      shell> /usr/sbin/swinstall - s  /path/to/depot  mysql.client
    • 仅仅安置开发工具:
      shell> /usr/sbin/swinstall - s  /path/to/depot  mysql.developer

    depot在“/opt/mysql”寄存二进制代码和库文件并在“/var/opt/mysql”寄存数据。depot也在“/sbin/init.d”“ /sbin/rc2.d”里树立恰当的入口以主动地在指点时启动就事器。显然, 这有需求以root身份来安置。

    为了安置HP-UX tar分发,你必需有GNU tar的一个拷贝。





    版权声明: 原创作品,承诺转载,转载时请务必以超链接要领标明文章 原始来由 、作者信息和本声明。否则将清查法律责任。

  • 相关阅读:
    Leetcode: Increasing Triplet Subsequence
    Snapchat面经(师兄的)
    M面经prepare: Shuffle a deck
    M面经Prepare: Find integer Average of 2 integers.
    M面经Prepare: Positive-Negative partitioning preserving order
    M面经Prepare: Delete Words Starting With One Character
    Lintcode: Subtree
    Leetcode: Reconstruct Itinerary
    Groupon面经:Find paths in a binary tree summing to a target value
    一些小感悟(2014.04版)
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1975278.html
Copyright © 2011-2022 走看看