安置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的一个拷贝。





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

原文地址:https://www.cnblogs.com/zgqjymx/p/1975278.html