Mysql培训经典教程第二章.docx
- 文档编号:12031182
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:27
- 大小:92.27KB
Mysql培训经典教程第二章.docx
《Mysql培训经典教程第二章.docx》由会员分享,可在线阅读,更多相关《Mysql培训经典教程第二章.docx(27页珍藏版)》请在冰豆网上搜索。
Mysql培训经典教程第二章
本章要点:
vMySQL的安装布局
v如何安装MySQL
v如何为MySQL服务器设定参数
v如何为一个MySQL安装升级
本章介绍MySQL安装和升级的知识。
由于MySQL可以在多种平台上使用,并且即使在同一平台上,也存在多种不同的安装分发,因此,MySQL的安装存在多种方法供你选择。
相对于其它的多数关系数据库系统,MySQL的安装并不复杂。
本章将各种安装的说明详细记载一起,会为你安装系统提供方便。
当然,还是建议你仔细阅读安装包中的说明,因为对于不同版本安装可能有的特殊性,本章无法兼顾和预期。
另外,安装包中的文档相对也详尽。
MySQL在Linux上最为常用。
Linux上提供各种RPM文件,可以非常方便的安装MySQL数据库系统。
如果你喜欢编译源代码或者RPM分发无法在你的平台使用,你可以使用源代码安装,或者还有二进制分发可以采用。
2.1MySQL系统的安装布局
在说明如何安装MySQL数据库系统之前,读者有必要首先了解一下MySQL的安装布局,这样才能有的放矢,更容易理解后面的叙述。
这节描述安装二进制代码和源代码分发时创建的缺省目录布局。
2.1.1二进制安装
二进制分发通过在你选择的安装地点(典型的“/usr/local/mysql”)解压缩来安装,并且在该处创建下列目录:
表2-1二进制分发的安装布局
目录
目录的内容
Bin
客户程序和mysqld服务器
Data
日志文件,数据库
include
包含(头)文件
Lib
库文件
scripts
mysql_install_db
share/mysql
错误消息文件
sql-bench
基准程序
2.1.2RPM安装
rpm安装本质上也属于二进制分发,因此安装布局同上。
不同之处在于它将自动安装启动脚本到/etc/rc.local目录中,并且缺省时,MySQL随系统的启动而自动启动,安装十分方便。
对于RPM分发程序、库文件、头文件和配置文件,分别安装RedHatLinu标准的目录/usr/bin、/usr/lib/mysql、/usr/include/mysql和/etc/mysql等处。
需要特别注意的是数据库目录的位置,缺省时,/var/lib/mysql
2.1.3源代码安装
源代码分发在你配置并编译后进行安装。
缺省地,安装步骤将文件安装在“/usr/local”下的下列子目录:
表2-2二源代码分发的安装布局
目录
目录的内容
bin
客户程序和脚本
include/mysql
包含(头)文件
Info
Info格式的文档
lib/mysql
库文件
libexec
mysqld服务器
share/mysql
错误消息文件
sql-bench
基准程序和crash-me测试
var
数据库和日志文件
在一个安装目录内,源代码安装的布局在下列方面不同于二进制安装:
●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系统的分发
MySQL是一个复杂的系统,因此相对于其它普通软件的安装,其过程要复杂、困难一些,本节将指导您完成这一过程。
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--basedirD:
\programs\mysql来启动mysqld。
当然有时你不必这么做,服务器也可以正常运作,不过这是一个保险的方法。
用登记的MySQL版本,你也可以创建一个“C:
\f”文件来保存用于MySQL服务器的任何缺省选项。
拷贝文件“\mysql\my-f”到“C:
\f”并且编辑它来适用于你的安装。
注意你应该用"/"而不是"\"指定所有的路径。
如果你使用“\”,你需要指定两次(“\\”),因为在MySQL中“\”是转义字符。
2.2.2在WindowsNT/2000下安装成系统服务
1、安装成系统服务的方法
对于NT,比较方便的方法是把MySQL安装成NT系统服务。
如上小节的方法安装完毕后,为了以系统服务的方式服务器的名字是mysqld-nt:
C:
\mysql\bin\mysqld-nt--install
你可以在NT上使用mysqld或mysqld-opt服务器,但是那些不能作为一种系统服务启动或使用命名管道。
你可以用下列命令启动和停止MySQL服务:
c:
\>netstartmysql
c:
\>netstopmysql
2、安装选项文件
注意,如果你按照前述方法把MySQL安装成系统服务,在这种情况下,你不能对mysqld-nt使用任何其他选项!
所以如果MySQL没有安装在缺省的位置,那么MySQL不能正确定位数据库目录,将无法启动。
作为一个变通的办法,创建一个“C:
\f”文件来保存用于MySQL服务器的任何缺省选项。
拷贝文件“\mysql\my-f”到“C:
\f”并且编辑它来适用于你的安装。
无论什么情况都建议你安装这个选项文件。
你需要注意的内容是basedir,作为一个非标准安装,这是必须提供的参数:
[mysqld]
basedir=x:
/path/to/mysql/
注意你应该用"/"而不是"\"指定所有的路径。
如果你使用“\”,你需要指定两次(“\\”),因为在MySQL中“\”是转义字符。
3、为服务器制定参数
当你独立使用mysqld守护程序时,你可以提供参数,例如,指定一个独立的数据库目录:
c:
\mysql\bin>mysqld–datadir=”d:
\data\”
如果你把MySQL安装成系统服务,那么你只能在全局选项文件c:
\f中为服务器提供参数。
例如这样
[mysqld]
option1
option2=value
这样相当于用如下参数启动服务器:
c:
\mysql\bin>mysqld–option1–option2=value
4、可能出现的问题
服务用MySql名字被安装,一旦安装,它必须使用服务控制管理器(SCM)实用程序启动服务(在控制面板中的管理工具中找到)或使用NETSTARTMySQL命令。
如果需要任何选项,在你启动MySQL服务前必须作为SCM实用程序的“启动参数”指定它们。
一旦运行,可使用mysqladmin或从SCM实用程序或使用命令NETSTOPMySQL停止mysqld-nt。
如果你使用SCM停止mysqld-nt,SCM有一条关于mysqldshutdownnormally奇怪的消息,当作为一种服务运行时,mysqld-nt没有控制台的存取权限,所以没有消息可以看见。
在NT上你可以得到下列服务错误消息:
PermissionDenied(权限拒绝)意味着它不能找到mysqld-nt.exe
CannotRegister(不能登记)意味着路径是不正确的
如果你作为一种服务安装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–ihvMySQL*.rpm
rpm包的安装比较简单,因为所有的事情,RedHatLinux都为你做好了,甚至包括如何启动,以及运行服务器的用户(该方法只在RedHatLinux系统及其兼容的系统上测试成功,应该试用大多数支持rpm系统的Linux发行版)。
2.2.4在Linux下安装二进制分发
相对于用RPM安装来讲,用二进制安装是稍微繁琐了点。
但是我们可以在安装脚本中可以自定义安装的相关参数,而不用象rpm方式只能安装默认的来安装,具有更大的自由性。
1、安装二进制分发包
如果你下载的是二进制代码,它的名字类似于:
mysql-3.22.21-pc-linux-gnu-i686.tar.gz。
你必须成为root用户,然后解压到/usr/local目录,操作步骤如下:
$cd/usr/local
$su
#tar-zxvf/tmp/mysql-3.22.21-pc-linux-gnu-i686.tar.gz
2、建立符号链接
在所有文件解压完后,一个名字叫mysql-3.22.21-pc-linux-gnu-i686的目录将被创建出来。
我们为这个目录做个符号链接,并给它一个更友好的名字mysql(免得叫mysql-3.22.21-pc-linux-gnu-i686这么长):
#ln-smysql-3.22.21-pc-linux-gnu-i686mysql
如果以后有新版本的MySQL的话,你可以仅仅将源码解压到新的路径,然后只需要做个符号链接就可以了。
这样非常方便,数据也更加安全。
2.2.5在Linux下安装源代码分发
挑选一个你要在其下面解包分发的目录,并且进入该目录,这里假设为/tmp。
获得MySQL一个分发文件。
MySQL源代码分发以压缩的tar档案提供,并且有类似于“mysql-VERSION.tar.gz”的名字,这里的VERSION是一个类似3.23.7-alpha的数字。
1、在当前目录下解包分发:
#gunzip or#tarzxvf 这个命令创建名为“mysql-VERSION”的一个目录。 2、进入解包分发的顶级目录: #cdmysql-VERSION 3、设置发行版本并且编译: #./configure--prefix=/usr/local/mysql #make 当你运行configure时,你可能想要指定一些选项,运行./configure--help得到一张选项表。 如果configure失败,你将发送包含你认为能帮你解决该问题的“config.log”的邮件,如果configure异常退出,也要包括configure的最后几行输出。 用mysqlbug脚本邮寄错误报告。 4、安装所有东西: #makeinstall 你可能需要root用户来运行这个命令。 2.2.6总结 本节讲述MySQL安装过程的最初部分,只有你看完下面的各节,MySQL你才能了解MySQL的完整安装过程。 对于Windows平台上的安装以及Linux上的RPM安装则比较特殊,本节之后就可以使用了。 源代码安装虽然麻烦,带可以提供更大的自由性和定制性,从而使你的数据库系统更具安全性。 对于不被二进制分发或者RPM分发支持的平台,使用源代码安装是唯一的途径。 2.3安装后期的的设置与测试 本节内容主要适用与在Unix系统上,所有内容都在RedHatLinux系统上验证通过,应该也是用于其他Linux发行版。 但是对于MySQL用户权限和密码等的安全问题,Windows平台上的分发,本节的有关说明也是适用的。 对于RedHatLinux平台上的RPM分发,这些过程已经由系统完成,你也只需注意MySQL的用户安全问题。 2.3.1建立启动MySQL的帐户 为了安全性,你应该避免使用root帐户启动MySQL守护程序,创建一个专门用于启动守护程序的帐户mysql,并且让数据库属于这个帐户。 1、建立帐户mysql #addusermysql 2、改变数据库目录的所有者 让我们将MySQL目录和文件的拥有权改成mysql用户和root组: ●对于二进制分发的安装,根据前文所述的安装方法(以缺省位置为例): #cd/usr/local #chown-Rmysql: rootmysqlmysql-3.22.21-pc-linux-gnu-i686 ●对于源码安装(以缺省位置为例): #cd/usr/local #chown-Rmysql: rootvar ●对于rpm包的安装,由于实现已经全部做好,就不必处理了。 3、修改mysql.server脚本或者全局选项文件,使守护程序以规定的用户运行 改变mysql.server脚本: (mysql.server可在MySQL安装目录下的“share/mysql”目录里找到,或在MySQL源代码树的“support-files”目录下找到。 ) 找到行mysql_daemon_user=root,把root改为你设定的用户mysql 或者修改选项文件/etc/f: 增加选项下述选项 [mysql.server] user=mysql#addthisline basedir=/usr/local/mysql 2.3.2初始化授权表 一旦你已经安装了MySQL(从一个二进制代码或源代码分发),你需要初始化授权表,因为此时MySQL权限系统需要的数据库和表并不存在。 然后再,启动服务器并且保证服务器正确运行。 你也可以希望安排服务器在你的系统开机和关机时自动地被启动和停止。 安装授权表之前,首先请切换到mysql帐户,这也是我们很少使用这一前面建立的帐户的机会。 ●通常,对从源代码分发的安装,你象这样安装授权表并启动服务器: #sumysql $cdBASEDIR(缺省为/usr/local/mysql) $./scripts/mysql_install_db ●对二进制分发,这样做: #sumysql $cdBASEDIR(缺省为/usr/local/mysql) $./bin/mysql_install_db ●对于rpm分发,这样做: #sumysql $mysql_install_db 对于Win32平台上的分发,由于安装后,授权表已经存在,故没有必要使用mysql_install_db,而且也不存在这个脚本。 如果你需要初始化授权表,你可以删除数据库目录中的mysql目录,即删除mysql数据库,然后再运行setup.exe文件,即可初始化授权表。 典型地,mysql_install_db仅在你第一次安装MySQL时需要运行,因此,如果你正在升级现有的安装,你可以跳过这一步。 (然而,mysql_install_db的使用相当安全,并且将不更新已经存在的任何表,因此如果你是不能肯定做什么,你总是可以运行mysql_install_db。 )mysql_install_db在mysql数据库里创建6个表(user、db、host、tables_priv、columns_priv和func),初始权限的描述在第七章数据库安全中给出。 简单地说,这些权限允许MySQLroot用户做任何事情,并且允许任何人创建立或使用一个名字以'test'或'test_'开始的数据库。 如果你不设置权限表,当你启动服务器时,下列错误将在日志文件出现: mysqld: Can'tfindfile: 'host.frm' 2.3.3测试服务器是否工作 1、象这样启动MySQL服务器 对于Unix下的分发,首先切换到mysql用户,否则如果第一次启动服务器是使用的是其他用户,那么收据库文件就为这个用户所有,之后再由用户mysql启动守护程序,就会因为数据库文件权限的问题得到一个错误。 当数据库安装完毕时,我们利用mysql.server脚本,将不必每次启动前切换到mysql用户。 如果你再选项文件中指定的合适的选项,也可以不比切换到mysql用户。 这一点,将在不久之后提到。 ●在Unix平台 $sumysql $cdMYSQLD_DIR $bin/safe_mysqld& ●对于Win32平台的分发 c: \>cdMYSQLD_DIR c: \>bin\mysqld–standalone 如果你安装成系统服务,也可以这样: c: \>netstartmysql MYSQLD_DIR的值,在二进制分发中缺省为/usr/local/mysql,在源代码分发中缺省为/usr/local/libexec 2、使用mysqladmin证实服务器正在运行。 下列命令提供简单的测试来检查服务器启动和连接的应答: $mysqladminversion $mysqladminvariables 从mysqladminversion的输出根据你的平台和MySQL版本略有不同,但是应该类似如下显示: $mysqladminversion mysqladminVer6.3Distrib3.22.9-beta,forpc-linux-gnuoni686 TCXDatakonsultAB,byMonty Serverversion3.22.9-beta Protocolversion10 ConnectionLocalhostviaUNIXsocket TCPport3306 UNIXsocket/tmp/mysql.sock Uptime: 16sec Runningthreads: 1Questions: 20Reloads: 2Opentables: 3 为了能感受到,你能用mysqladmin做其他事情,用--help选项调用它,查看输出的帮助。 3、测试客户端连接 运行客户端程序: #mysql 然后你可以看到屏幕显示出以下信息: WelcometotheMySQLmonitor.Commandsendwith;or\g. YourMySQLconnectionidis2toserverversion: 3.22.21 Type'help'forhelp. mysql> 接着,用showdatabases命令可以将安装的数据库列出来: mysql>showdatabases; 你就可以看到: +----------+ |Database| +----------+ |mysql| |test| +----------+ 2rowsinset(0.00sec) 如果一切正常的话,那说明MySQL可以完全工作了! 恭喜你! 如果要退出程序,输入exit,显示结果应该类似于: mysql>exit; Bye 2.3.4自动运行和停止MySQL 如果安装一个实用的数据库系统,那么让每次系统重新启动时数据库服务器自动运行是一个好主意。 一、我们现在可以由两种方法启动数据库: 1、可以用safe_mysqld脚本来启动数据库: $safe_mysqld& safe_mysqld脚本安装在MySQL安装目录的bin目录下,或可在MySQL源代码分发的scripts目录下找到。 2、mysql.server脚本可以被用来启动或停止服务器,通过用start或stop参数调用它: $mysql.serverstart $mysql.serverstop mysql.serverstop通过向服务器发出一个信号停止它。 你可手工执行mysqladminshutdown关闭服务器。 mysql.server可在MySQL二进制分发安装目录下的“share/mysql”目录里找到,或在MySQL源代码树的“support-files”目录下找到。 二、让服务器以指定的Unix用户执行 方法一: 修改mysql.server脚本 当然,这样只对使用mysql.server脚本启动系统的方法其作用。 在mysql.server启动服务器之前,它把目录改变到MySQL安装目录,然后调用safe_mysqld。 如果你有在一个非标准的地点安装的二进制分发,你可能需要编辑mysql.server。 修改它,运行safe_mysqld前,cd到正确的目录。 如果你想要作为一些特定的用户运行服务器,你可以改变mysql_daemon_user=root行使用其他用户,你也能修改mysql.server把其他选项
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Mysql 培训 经典 教程 第二
![提示](https://static.bdocx.com/images/bang_tan.gif)