安置MySQL二进制代码分发
作者:天极软件 泉源:天极软件
你必要下列工具安置一个MySQL二进制分发:
- GNU
gunzip
解紧缩分发。 - 一个恰当的
tar
解包分发。 GNUtar
已知可以。
在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 &
倘若你安置了DBI
和Msql-Mysql-modules
Perl模块,你可以运用bin/mysql_setpermission
剧本添加新用户。
以下是更详细的描写:
对于安置二进制分发,遵照以下步骤,然后持续到4.15 安置后期的设置与测试,进行安置后期的设置和测试:
- 遴选一个你想解开分发包的目录,进入给目录。鄙人面的例子中,我们将分发解包在“/usr/local”下并且树立一个安置MySQL的“/usr/local/mysql”目录。(是以,下列指令假定你有权限在“/usr/local”中树立文件,倘若该目录被保护,你必要以
root
施行安置。) - 从4.1 如何获得MySQL中列出的站点之一获得一个分发文件。MySQL二进制分发以紧缩的
tar
文档供应,并且有相似“mysql-VERSION-OS.tar.gz”的名字,这里VERSION
是一个数字(比方,3.21.15
),且OS
表达分发能运转的应用系统范例范例(比方,pc-linux-gnu-i586
)。 - 解开分发并且创竖立安置目录:
shell> gunzip < mysql-VERSION-OS.tar.gz |tar xvf - shell> ln - s mysql-VERSION-OS mysql
第一个命令树立一个名为“mysql-VERSION-OS”的目录,第二个命令天生到该目录的一个标识表记标帜链接。这让你更容易地把安置目录指定为“/usr/local/mysql”。
- 进入安置目录:
shell> cd mysql
你会在
mysql
目录下发现几个文件和子目录,对安置目标最首要的是“bin”和“scripts”子目录。- “bin”
- 这个目录包孕客户次序和就事器,你应该把这个目录的残破路子加到你的
PATH
环境变量,以便你的shell能准确的找到MySQL次序。 - “scripts”
- 这个目录包孕
mysql_install_db
剧本,用来初始化就事器存取权限。
- 倘若你想运用
mysqlaccess
而在某个非尺度的地点有MySQL分发,你必需改动地点,在哪儿mysqlaccess
希冀找到mysql
客户。编纂“bin/mysqlaccess”剧本,年夜约在第18行,根究相似下面的行:$MYSQL = “/usr/local/bin/mysql”; # path to mysql executable
改动路子以反应出
mysql
实际存储在你系统上的地点。倘若你不这样做,当你运转mysqlaccess
时,你将掉掉一个broken pipe
的错误。
- 发现MySQL授权表(只要在你曩昔没安置过MySQL是需求的):
shell> scripts/mysql_install_db
注意当你运转时
mysql_install_db
时,比版本3.22.10老的MySQL版本启动MySQL就事器。这不再是真的了!
- 倘若你想要安置对Perl
DBI
/DBD
接口的支撑,见4.10 Perl安置注意变乱。 - 倘若你喜欢在指点机器时主动启动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
)。倘若你正在运用一个老的不支撑--force
的MySQL版本,你必需用编纂器删除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
的一个拷贝。
版权声明:
原创作品,承诺转载,转载时请务必以超链接要领标明文章 原始来由 、作者信息和本声明。否则将清查法律责任。