MySQL安装与应用.docx
《MySQL安装与应用.docx》由会员分享,可在线阅读,更多相关《MySQL安装与应用.docx(25页珍藏版)》请在冰豆网上搜索。
MySQL安装与应用
MySQL安装与应用
MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司,在2008年1月16号被Sun公司收购。
目前MySQL与Sun一起被Oracle收购(当然由于欧盟的介入,Oracle可能正在考虑如何处理MySQL)。
MySQL的特性
1.使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性
2.支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统
3.为多种编程语言提供了API。
这些编程语言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等
4.支持多线程,充分利用CPU资源
5.提供了事务性和非事务性存储引擎
6.优化的SQL查询算法,有效地提高查询速度
7.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名
8.提供TCP/IP、ODBC和JDBC等多种数据库连接途径
9.提供用于管理、检查、优化数据库操作的管理工具
10.可以处理拥有上千万条记录的大型数据库
由于MySQL具有数据库的基本功能同时拥有以上优点,因此虽然MySQL有规模小、功能有限等约束的限制,但是由于其开源的特点导致MySQL得到了广泛的应用,尤其是对于一些网站(尤其是完全免费的LAMP的组合)以及中小企业的应用。
目前(2009年12月12日)已经发布的MySQL的正式版为5.1.41,可以在MySQL官方网站或者MySQL中文网下载最新的MySQL服务器,下载前确定服务器的操作系统类型以选择合适的MySQL安装文件,本文只介绍常用的Windows平台及linux平台下的MySQL安装及相关连接、配置操作。
Windows下的安装与配置
本文介绍WindowsXP下的安装与配置。
要想在Windows中运行MySQL,需要:
Ø32位Windows操作系统,例如9x、Me、NT、2000、XP或WindowsServer2003。
基于WindowsNT的操作系统(NT,2000,XP,2003),将MySQL服务器做为服务来运行。
强烈建议使用基于WindowsNT的操作系统。
ØTCP/IP协议支持(也许是所有数据库系统的基本要求了)。
ØWindows版本MySQL二进制分发版,可以从http:
//
Ø可以读取.zip文件的工具,以解压分发文件。
Ø硬盘上有足够的空间保证根据你的需求来解包、安装和创建数据库(一般建议至少有200兆字节)。
Ø如果你计划通过ODBC连接MySQL服务器,你还需要一个连接器/ODBC驱动程序。
Ø如果表需要占用的空间大于4GB,则在NTFS或更新的文件系统上安装MySQL。
当创建表时不要忘记使用MAX_ROWS和AVG_ROW_LENGTH。
在Windows平台下,建议(尤其初学者)使用msi安装文件,安装文件可以自动完成图形界面下的配置,并注册成Windows的服务。
在MySQL官方网站找到Windows平台下的msi安装文件下载地址,下载至本地。
如感觉有必要可以验证文件的MD5值,以减少由于文件损坏或者被篡改造成的不必要的麻烦。
在所有的准备工作完成之后,开始安装MySQL的操作。
1.双击打开已经下载的MySQL安装文件,系统弹出如图1所示的准备安装界面,片刻之后无疑就是欢迎界面(如图2所示)。
图1
据说,MySQL的标志——企鹅,名字叫“sakila”。
图2
2.单击图2中的“Next”按钮,继续安装MySQL,此时需要选择安装的类型(如图3所示)。
此时的安装类型主要是针对不同(应用)程度的用户而言,系统默认“Typical”(典型),用户可以选择“Complete”(全部)或“Custom”(用户自定),此处我们选择“Custom”以方便配置(其实主要是MySQL的安装路径)。
图3
3.单击图3中的“Next”按钮,进入如图4所示的自定义安装界面。
自此,用户可以选择需要安装的所有的MySQL组件,系统会默认选择上所有必须及常用的组件,只有“DeveloperComponents”(开发组件),默认是可以由用户选择安装的,对于大多数用户而言,此组件无需安装。
图4
4.单击图4中的“Change…”按钮,弹出路径选择窗口(图5),更改MySQL的安装路径。
用户既可以从上方的“Lookin”下拉列表中选择安装路径,也可以直接在“Foldername”文本框中录入安装路径。
笔者使用“d:
\MySQL\MySQLServer5.1\”作为安装路径。
图5
说明:
系统默认将MySQLServer服务与数据文件安装在两个不同的目录下,因此用户需要分别设定“MySQLServer”与“MySQLServerDatafiles”的路径,设置方法相同。
5.选择完毕路径之后,点击“OK”回到图4,单击“Next”按钮,进入如图6所示的准备安装界面。
图6显示了安装类型、目标文件夹、数据文件夹等信息。
如果用户感觉有问题,可以单击“Back”按钮退回至图4所示的安装设定界面重新选择各种信息。
图6
6.如果用户感觉没有任何问题,可以单击“Install”按钮,进行MySQL的安装操作。
系统会显示如图7所示的安装向导界面,用户只需等待系统自动安装完毕。
图7
说明:
在5.1.41版本安装过程中,系统会弹出MySQLEnterprise的介绍信息,用户只需单击“Next”按钮,即可完成按钮过程。
7.安装向导完成之后,系统弹出如图8所示的设置向导窗口。
图8
此窗口中有两个复选按钮,第一个“ConfiguretheMySQLServernow”是设置MySQL服务的选项,此按钮建议选上,以便于马上配置MySQL服务;第二个“RegistertheMySQLServernow”是注册MySQL.com的账号,此按钮可以根据个人需要选择,如果安装的目标机器不能上外网,则此按钮即使选择也无法注册。
系统默认两个复选按钮全部选中,笔者建议只选择第一个。
8.点击“Finish”按钮,设置MySQLServer实例。
同样是MySQLServer实例设置向导的欢迎界面(图9,看来MySQL将实例设置作为一个单独的产品了)。
图9
9.单击“Next”按钮,选择设置的类型(图10)。
建议使用默认的“DetailiedConfiguration”。
图10
10.单击“Next”按钮,选择MySQL服务类型(图11),根据不同的选择,会在对CPU及硬盘产生不同的影响。
图11
如果程序开发人员需要使用MySQL数据库,笔者建议选择“DeveloperMachine”模式以减少资源的占用率;如果服务器上存在多个不同的服务则选择“ServerMachine”;如果服务器只是作为数据库服务器,则可以选择“DedicatedMySQLServerMachine”。
11.单击“Next”进入数据库用途选择界面(图12),建议使用默认的“MultifunctionDatabase”(多用途数据库)。
图12
12.单击“Next”按钮,选择InnoDB的数据文件存放位置。
用户可以根据自己需要存放。
图13
13.单击“Next”选择同时连接数。
图14
如果为程序员使用的开发机器,选择“ManualSetting”,并使用默认的15或手工输入连接数(连接数可以根据自己实际需要设置);如果选择“DecisionSupport(DSS)/OLAP”,则系统会自动设置最多20个活动连接;如果选择“OnlineTransactionProcessing”(OLTP),系统自动设置最多500个活动连接。
14.单击“Next”,设置网络配置信息(图15),主要是TCP/IP网络端口。
图15
端口建议使用默认的3306。
另外的“EnableStrictMode”复选按钮,建议使用默认的选择。
复选按钮“Addfirewallexceptionforthisport”,用于通知防火墙允许指定的端口访问网络,如果不选择此按钮,可能会导致服务配置及启动异常。
15.单击“Next”按钮,设置数据库使用的编码格式,为保证系统能够适应各种环境的应用及通用性,建议使用“utf8”的编码格式。
图16
由于配置向导可能会根据不同的系统使用不同的默认编码格式,因此建议选择“ManualSelectedDefaultCharacterSet/Collection”,单选钮,并手工设置编码格式为“utf8”。
16.单击“Next”按钮,设置是否将MySQL注册为系统服务,以及是否将MySQL路径放入系统环境变量。
图17
建议将MySQL安装为Windows的系统服务,如果开发人员,建议将MySQL的bin路径放入环境变量,至于MySQL是否自动启动(LaunchtheMySQLServerautomatically复选按钮),可以根据实际需要设置。
如果系统中只有当前一个MySQL服务,则服务名直接使用默认的“MySQL”即可,如果系统中已经存在其他的MySQL服务,则可以根据各服务的实际情况,更改MySQL服务的名称。
17.单击“Next”按钮,设置安全选项(图18)。
图18
设置root用户的密码,如果需要root用户在其他机器上远程连接MySQL服务,需要选中“Enablerootaccessfromremotemachines”复选按钮。
为安全起见,不建议选择“CreateAnAnonymousAccount”复选按钮,以往内这样会导致XX的用户非法访问你的数据库。
18.单击“Next”按钮,进入准备执行界面(图19)
图19
19.单击“Execute”按钮,执行MySQL服务配置,如果执行顺利完成,系统显示如图20所示的信息。
图20
20.单击“Finish”按钮,完成MySQL的安装及配置。
注意:
配置时出现连接错误警告,见图21。
图21
出现这种情况有两个原因。
一是防火墙阻止了MySQL的端口,二是安装路径在以前安装了的MySQL路径上。
解决方法:
第一种情况,制定防火墙规则,让防火墙允许通行MySQL的连接端口,默认是TCP3306端口(通常情况下,防火墙都会在没有的规则访问网络时进行提示并询问,笔者在第一次失败之后,在防火墙提示中选择允许,第二次重试时成功)。
第二种情况,删除或者转移安装目录下的文件和data子文件夹。
或者指定一个不同于以前安装MySQL的安装目录。
在Windows中,MySQL5.1的默认安装目录是C:
\ProgramFiles\MySQL\MySQLServer5.1。
安装目录包括以下子目录:
目录
目录内容
bin
客户端程序和mysqld服务器
data
日志文件,数据库
Docs
文档
examples
示例程序和脚本
include
包含(头)文件
lib
库
scripts
实用工具脚本
share
错误消息文件
MySQL的配置文件在MySQL安装根路径下,文件名称为“my.ini”,在Windows下使用记事本打开,可以看到里面都是在配置MySQL服务的时候的配置信息,如果需要,可以手工修改此文件的内容,以满足实际需要。
注意:
从命令行安装或卸载服务器时关闭Services工具。
这样可以防止许多错误。
如果在安装MySQL时没有将MySQL注册为Windows的系统服务,可以参考MySQL官方提供的将MySQL注册为Windows服务的方法。
如果在Windows下安装还存在其他问题,请参考MySQL官方提供的在Windows环境下对MySQL安装的故障诊断与排除。
Linux下的安装与配置
如果所安装的Linux系统没有内置的MySQL,笔者建议在Linux中使用RPM包来安装MySQL,同样这也是MySQL官方提供的建议。
笔者接触最多的Linux系统是Radhat的“近亲”:
CentOS,由于CentOS较新的版本都内置了MySQL,因此在安装系统时就将MySQL安装并注册为系统服务,省去了不少工作量,此处也就不对Linux下的安装做太多陈述,仅提供部分资料供参考。
注意:
MySQL至少需要Linux2.0版本。
以下是网友提供的CentOS5下安装MySQL的步骤(出处:
CentOS5下MySQL的安装步骤
创建mysql用户组和用户
[root@centos]#groupaddmysql
[root@centos]#useradd-gmysqlmysql
[root@centos]#cdhomexule
[root@centos]#chmod755mysql-5.0.22.tar.gz
编译并安装MySQL
[root@centos]#tarzxvfmysql-5.0.22.tar.gz
[root@centos]#cdmysql-5.0.22
[root@centosmysql-5.0.22].configure--prefix=usrlocalmysql
[root@centosmysql-5.0.22]make
[root@centosmysql-5.0.22]makeinstall
配置并启动MySQL
[root@centosmysql-5.0.22]#cpsupport-filesmy-ff
[root@centosmysql-5.0.22]#cdusrlocalmysql
[root@centosmysql]#binmysql_install_db--user=mysql
Installingallpreparedtables
Fillhelptables
Tostartmysqldatboottimeyouhavetocopysupport-filesmysql.server
totherightplaceforyoursystem
PLEASEREMEMBERTOSETAPASSWORDFORTHEMySQLrootUSER!
Todoso,starttheserver,thenissuethefollowingcommands
usrlocalmysqlbinmysqladmin-urootpassword'new-password'
usrlocalmysqlbinmysqladmin-uroot-hpassword'new-password'
Seethemanualformoreinstructions.
YoucanstarttheMySQLdaemonwith
cdusrlocalmysql;usrlocalmysqlbinmysqld_safe&
YoucantesttheMySQLdaemonwiththebenchmarksinthe'sql-bench'directory
cdsql-bench;perlrun-all-tests
Pleasereportanyproblemswiththeusrlocalmysqlbinmysqlbugscript!
ThelatestinformationaboutMySQLisavailableonthewebat
SupportMySQLbybuyingsupportlicensesat
[root@centosmysql]#binmysqld_safe--user=mysql&
[1]20100
[root@centosmysql]#Startingmysqlddaemonwithdatabasesfromusrlocalmysqlvar
添加管理性用户要管理MySQL需要创建一个管理性账户
[root@centosmysql]#binmysqladmin-urootpasswordjob100
红色标注密码
让MySQL自动启动
进入安装目录
[root@centosmysql]#cdhomexulemysql-5.0.22
[root@centosmysql-5.0.22]#cpsupport-filesmysql.serveretcrc.dinit.dmysql
[root@centosmysql-5.0.22]#chmod+xetcrc.dinit.dmysql
[root@centosmysql-5.0.22]#chkconfig--level3--addmysql
查看MYSQL运行状态
[root@centosbin]#usrlocalmysqlbinmysqladmin-uroot-pversionproc
Enterpassword
usrlocalmysqlbinmysqladminVer8.41Distrib5.0.22,forpc-linux-gnuoni686
Copyright(C)2000MySQLAB&MySQLFinlandAB&TCXDataKonsultAB
ThissoftwarecomeswithABSOLUTELYNOWARRANTY.Thisisfreesoftware,
andyouarewelcometomodifyandredistributeitundertheGPLlicense
Serverversion5.0.22-log
Protocolversion10
ConnectionLocalhostviaUNIXsocket
UNIXsockettmpmysql.sock
Uptime33min3sec
Threads1Questions5Slowqueries0Opens0Flushtables1Opentables6Queriespersecondavg0.003
+----+------+-----------+----+---------+------+-------+------------------+
IdUserHostdbCommandTimeStateInfo
+----+------+-----------+----+---------+------+-------+------------------+
2rootlocalhostQuery0showprocesslist
+----+------+-----------+----+---------+------+-------+------------------+
关于Linux下安装MySQL的详细步骤,请参考MySQL官方的在Linux下安装MySQL,文中详细介绍了不同Linux版本下如何使用合适的RPM包安装MySQL的方法。
使用MySQLAB'sLinuxRPM分发进行安装后,将在以下系统目录产生文件:
目录
目录内容
/usr/bin
客户端程序和脚本
/usr/sbin
mysqld服务器
/var/lib/mysql
日志文件,数据库
/usr/share/doc/packages
文档
/usr/include/mysql
包含(头)文件
/usr/lib/mysql
库
/usr/share/mysql
错误消息和字符集文件
/usr/share/sql-bench
基准程序
下面以CentOS自带的MySQL为例说明如何启动并验证MySQL服务是否正常,以及常用的MySQL各种配置。
1.执行shell>mysql,若提示"can'tconnecttolocalmysqlserverthroughsocket'/var/lib/mysql/mysql.sock'",
说明mysql服务还没有启动,请运行/etc/init.d/mysqldstart,成功后会提示启动成功!
2.更改字符集编码为UTF-8
Ø找到f,利用文本编辑器打开,在[mysqld]下面加入以下2行
default-character-set=utf8
init_connect='SETNAMESutf8'
Ø再增加以下内容,在此文件的最后
[client]
default-character-set=utf8
保存后,重启mysql服务。
可通过服务管理进行。
Ø验证编码
运行mysql,
mysql>showvariableslike'character%';
显示结果为以下内容为正确
+--------------------------+----------------------------+
|Variable_name|Value|
+--------------------------+----------------------------+
|character_set_client|utf8|
|character_set_connection|utf8|
|character_set_database|utf8|
|character_set_filesystem|binary|
|character_set_results|utf8|
|character_set_server|utf8|
|character_set_system|utf8|
|character_sets_dir|/usr/share/mysql/charsets/|
+--------------------------+----------------------------+
3.给与远程登录数据库的权限
进入mysql,执行以下语句
mysql>grantallon*.*to'root'@'%';
连接数据库
1.在终端中录入:
“mysql”,完成连接数据库的操作
2.“showdatabases;”命令,显示当前所有的数据库
3.如果目标数据库不存在,运行“createdatabasedb_name;”命令,完成创建数据库操作(其中,“db_name”