本章要点:
第2章
MySQL的安装
? MySQL的安装布局 ? 如何安装MySQL
? 如何为MySQL服务器设定参数 ? 如何为一个MySQL安装升级
本章介绍MySQL安装和升级的知识。由于MySQL可以在多种平台上使用,并且即使在同一平台上,也存在多种不同的安装分发,因此,MySQL的安装存在多种方法供你选择。
相对于其它的多数关系数据库系统,MySQL的安装并不复杂。本章将各种安装的说明详细记载一起,会为你安装系统提供方便。当然,还是建议你仔细阅读安装包中的说明,因为对于不同版本安装可能有的特殊性,本章无法兼顾和预期。另外,安装包中的文档相对也详尽。
MySQL在Linux上最为常用。Linux上提供各种RPM文件,可以非常方便的安装MySQL数据库系统。如果你喜欢编译源代码或者RPM分发无法在你的平台使用,你可以使用源代码安装,或者还有二进制分发可以采用。
2.1 MySQL系统的安装布局
在说明如何安装MySQL数据库系统之前,读者有必要首先了解一下MySQL的安装布局,这样才能有的放矢,更容易理解后面的叙述。这节描述安装二进制代码和源代码分发时创建的缺省目录布局。
2.1.1 二进制安装 二进制分发通过在你选择的安装地点(典型的“/usr/local/mysql”)解压缩来安装,并且在该处创建下列目录:
表2-1 二进制分发的安装布局
目录 Bin Data include Lib scripts share/mysql sql-bench 目录的内容 客户程序和mysqld服务器 日志文件, 数据库 包含(头)文件 库文件 mysql_install_db 错误消息文件 基准程序 2.1.2 RPM安装 rpm安装本质上也属于二进制分发,因此安装布局同上。不同之处在于它将自动安装启动脚本到/etc/rc.local目录中,并且缺省时,MySQL随系统的启动而自动启动,安装十分方便。
对于RPM分发程序、库文件、头文件和配置文件,分别安装Red Hat Linu标准的目录/usr/bin、/usr/lib/mysql、/usr/include/mysql和/etc/mysql等处。
需要特别注意的是数据库目录的位置,缺省时,/var/lib/mysql
2.1.3 源代码安装 源代码分发在你配置并编译后进行安装。缺省地,安装步骤将文件安装在“/usr/local”下的下列子目录:
表2-2 二源代码分发的安装布局
目录 bin include/mysql Info lib/mysql libexec share/mysql sql-bench var 目录的内容 客户程序和脚本 包含(头)文件 Info格式的文档 库文件 mysqld服务器 错误消息文件 基准程序和crash-me测试 数据库和日志文件
在一个安装目录内,源代码安装的布局在下列方面不同于二进制安装: ? mysqld服务器被安装在“libexec”目录而不是“bin”目录内。
? ?
数据目录是“var”而非“data”。
mysql_install_db被安装在“/usr/local/bin”目录而非“/usr/local/mysql/scripts”内。
头文件和库目录是“include/mysql”和“lib/mysql”而非“include”和“lib”。
?
2.1.4总结 本节介绍了MySQL系统的安装布局,对于源代码分发、二进制分发和RPM分发都做了阐述。阅读本章,有利于你对MySQL有一个清楚的概念,在下几节中,对于诸多繁琐的安装过程,就不再详述安装布局的内容,而是直接使用,读者应该不会感到突兀。
2.2 安装MySQL系统的分发
MyS QL是一个复杂的系统,因此相对于其它普通软件的安装,其过程要复杂、困难一些,本节将指导您完成这一过程。
2.2.1 在Windows下的安装一个二进制分装 在windows下安装一个MySQL的二进制分发十分的容易。首先你必须通过前文所述的方法获得相应的软件包,其文件名应该类似于mysql-x.xx.xx-beta-win.zip或者mysql-x.xx.xx-win.zip。如果你下载的是共享版本,应该类似于mysq-shareware-x.xx.xx-win.zip。由于MySQL的windows版本必修付费使用,共享版本有少许功能限制,因此如果只是用来学习数据库的使用,建议安装测试版本。
安装MySQL首先在某个空目录解压缩安装文件,并且运行Setup.exe程序。 缺省地,MySQL-Win32被配置安装在“C:\\mysql”。如果你想要在其它地方安装MySQL,在“C:\\mysql”安装它,然后将安装移到你想要的地方。或者你也可以在安装时选择其它目录。如果你真的移走MySQL,你可能需要通过提供选项给mysqld告诉mysqld需要的参数信息,尤其是数据库目录的位置。
使用C:\\mysql\\bin\\mysqld --help显示所有的参数选项的信息。例如,如果你移动MySQL分发到“D:\\programs\\mysql”,你可以用D:\\programs\\mysql\\bin\\mysqld --basedir D:\\programs\\mysql来启动mysqld。当然有时你不必这么做,服务器也可以正常运作,不过这是一个保险的方法。
用登记的MySQL版本,你也可以创建一个“C:\\my.cnf”文件来保存用于MySQL服务器的任何缺省选项。拷贝文件“\\mysql\\my-example.cnf”到“C:\\my.cnf”并且编辑它来适用于你的安装。注意你应该用\而不是\指定所有的路径。如果你使用“\\”,你需要指定两次(“\\\\”),因为在MySQL中“\\”是转义字符。
2.2.2 在Windows NT/2000下安装成系统服务 1、安装成系统服务的方法 对于NT,比较方便的方法是把MySQL安装成NT系统服务。如上小节的方法安装完毕后,为了以系统服务的方式服务器的名字是mysqld-nt:
C:\\mysql\\bin\\mysqld-nt --install
你可以在 NT 上使用mysqld或mysqld-opt服务器,但是那些不能作为一种系统服务启动或使用命名管道。
你可以用下列命令启动和停止MySQL服务: c:\\>net start mysql c:\\>net stop mysql 2、安装选项文件 注意,如果你按照前述方法把MySQL安装成系统服务,在这种情况下,你不能对mysqld-nt使用任何其他选项! 所以如果MySQL没有安装在缺省的位置,那么MySQL不能正确定位数据库目录,将无法启动。
作为一个变通的办法,创建一个“C:\\my.cnf”文件来保存用于MySQL服务器的任何缺省选项。拷贝文件“\\mysql\\my-example.cnf”到“C:\\my.cnf”并且编辑它来适用于你的安装。无论什么情况都建议你安装这个选项文件。你需要注意的内容是basedir,作为一个非标准安装,这是必须提供的参数: [mysqld]
basedir = x:/path/to/mysql/
注意你应该用\而不是\指定所有的路径。如果你使用“\\”,你需要指定两次(“\\\\”),因为在MySQL中“\\”是转义字符。
3、为服务器制定参数 当你独立使用mysqld守护程序时,你可以提供参数,例如,指定一个独立的数据库目录:
c:\\mysql\\bin>mysqld –datadir=”d:\\data\\”
如果你把MySQL安装成系统服务,那么你只能在全局选项文件c:\\my.cnf中为服务器提供参数。
例如这样 [mysqld] option1 option2=value
这样相当于用如下参数启动服务器:
c:\\mysql\\bin>mysqld –option1 –option2=value
4、可能出现的问题 服务用MySql名字被安装,一旦安装,它必须使用服务控制管理器(SCM)实用程序启动服务(在控制面板中的管理工具中找到)或使用NET START MySQL命令。如果需要任何选项,在你启动MySQL服务前必须作为SCM实用程序的“启动参数”指定它们。一旦运行,可使用mysqladmin或从SCM实用程序或使用命令NET STOP MySQL停止mysqld-nt。如果你使用SCM停止mysqld-nt,SCM有一条关于mysqld shutdown normally奇怪的消息,当作为一种服务运行时,mysqld-nt没有控制台的存取权限,所以没有消息可以看见。
在NT上你可以得到下列服务错误消息:
Permission Denied (权限拒绝) 意味着它不能找到mysqld-nt.exe Cannot Register (不能登记) 意味着路径是不正确的
如果你作为一种服务安装mysqld-nt有问题,尝试用完整的路径启动它: C:\\mysql\\bin\\mysqld --install
如果你不想作为一种服务启动mysqld-nt,你可以如下启动它: C:\\mysql\\bin\\mysqld-nt --standalone
或C:\\mysql\\bin\\mysqld-nt --standalone --debug 最新的版本在“C:\\mysqld.trace”给你一个调试踪迹。
2.2.3 在Linux下安装一个RPM分发 在写这个部分的时候,我假设你已经对以下提及的有基本认识并拥有相应的环境: ? 懂基本的Unix命令、基本的HTML语言和SQL
? ? ?
一个工作正常TCP/IP网络
一个工作正常的Linux系统(将作为你安装软件的环境)
在Linux环境下编译程序所必须的一些软件包,名字应该类似于:
MySQL-3.22.21-1.i386.rpm中包含了用于i386机器的服务器程序。
MySQL-client-3.22.21-1.i386.rpm包含了用于i386机器的客户端程序。 MySQL-devel-3.22.21-1.i386.rpm包含了用于在i386机器上进行开发用的包含文件和库文件(一般也可以不安装)。
系统没有安装MySQL
在Linux下安装一个MySQL分发也不象想象的那么困难,因为现在大多数的发行版都将MySQL打包成rpm并且集成到系统中。如果在安装系统时没有安装MySQL,你必
?
须成为root用户才能使用rpm安装程序,以下是安装过程:
$mount /dev/cdrom /mnt/cdrom $cd /mnt/cdrom/Redhat/RPMS
$rpm –ihv MySQL*.rpm
rpm包的安装比较简单,因为所有的事情,Red Hat Linux都为你做好了,甚至包括如何启动,以及运行服务器的用户(该方法只在Red Hat Linux系统及其兼容的系统上测
MYSQL培训经典教程第二章
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)