Linux下MySQL数据库服务器架设笔录演示教学_第1页
Linux下MySQL数据库服务器架设笔录演示教学_第2页
Linux下MySQL数据库服务器架设笔录演示教学_第3页
Linux下MySQL数据库服务器架设笔录演示教学_第4页
Linux下MySQL数据库服务器架设笔录演示教学_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Good is good, but better carries it.精益求精,善益求善。Linux下MySQL数据库服务器架设笔录-Linux下MySQL数据库服务器架设笔录本文环境:CentOS+MySQLMySQL是目前最流行的开放源代码的关系数据库管理系统,是目前少有的开放源代码的数据库软件之一。开放源代码也就意味着任何人都能够使用和改变MySQL软件,任何人都能下载和使用此软件而无需支付任何费用。基于其快速、可靠、易用和免费等特点,MySQL数据库系统在Web应用以及其他各行各业中得到了非常广泛的应用。MySQL数据库软件的安装和运行CentOS5操作系统安装完成之后一般情况下没有

2、默认安装MySQL数据库,可进入安装光盘的软件目录,找到如下几个文件:perl-DBI-1.52-2.el5.i386#Perl语言的数据APImysql-5.0.77-3.el5.i386#MySQL数据库客户端程序perl-DBD-MySQL-3.0007-2.el5.i386#MySQL与Perl语言的接口程序包unixODBC-2.2.11-7.1.i386.rpm#Linux/Unix平台的ODBC程序mysql-connector-odbc-3.51.26r1127-1.el5.i386#MySQL数据库与ODBC的连接器mysql-server-5.0.77-3.el5.i386

3、#MySQL数据库服务器程序将上述文件拷贝到服务器合适位置,依次执行安装:rootwww1MySQL_Install#rpm-ivhperl-DBI-1.52-2.el5.i386.rpmPreparing.#100%1:perl-DBI#100%rootwww1MySQL_Install#rpm-ivhmysql-5.0.77-3.el5.i386.rpmPreparing.#100%1:mysql#100%rootwww1MySQL_Install#rpm-ivhperl-DBD-MySQL-3.0007-2.el5.i386.rpmPreparing.#100%1:perl-DBD-My

4、SQL#100%rootwww1MySQL_Install#rpm-ivhunixODBC-2.2.11-7.1.i386.rpmPreparing.#100%1:unixODBC#100%rootwww1MySQL_Install#rpm-ivhmysql-connector-odbc-3.51.26r1127-1.el5.i386.rpmPreparing.#100%1:mysql-connector-odbc#100%rootwww1MySQL_Install#rpm-ivhmysql-server-5.0.77-3.el5.i386.rpmPreparing.#100%1:mysql-

5、server#100%也可以在联网状态下使用在线包管理工具yum进行安装:rootwww1MySQL_Install#yum-yinstallmysql安装完MySQL之后可以输入以下命令启动数据库:rootwww1MySQL_Install#/etc/init.d/mysqldstart查看启动状态:rootwww1MySQL_Install#ps-eaf|grepmysqldroot28421009:43pts/100:00:00/bin/sh/usr/bin/mysqld_safe-datadir=/var/lib/mysql-socket=/var/lib/mysql/mysql.so

6、ck-log-error=/var/log/mysqld.log-pid-file=/var/run/mysqld/mysqld.pid-user=mysqlmysql28922842009:43pts/100:00:00/usr/libexec/mysqld-basedir=/usr-datadir=/var/lib/mysql-user=mysql-pid-file=/var/run/mysqld/mysqld.pid-skip-external-locking-socket=/var/lib/mysql/mysql.sockroot29112576009:44pts/100:00:00g

7、repmysqld可以看到服务器启动了2个进程,其中/usr/bin/mysqld_safe是一个脚本程序,由root用户运行,它的作用是启动数据库服务进程mysqld,并一直监控其运行状态,如果发现mysqld进程死了,就会重新启动它。而数据库服务进程mysqld则有mysql用户运行,用以提供数据库服务。默认情况下mysql的监听端口是3306,可以查看一下端口状态:rootwww1MySQL_Install#netstat-anlp|grep:3306tcp00:330:*LISTEN2892/mysqld还可使用以下命令查看MySQL的运行状态:rootwww1MySQL_Instal

8、l#mysqladminversionmysqladminVer8.41Distrib5.0.77,forredhat-linux-gnuoni686Copyright(C)2000-2006MySQLABThissoftwarecomeswithABSOLUTELYNOWARRANTY.Thisisfreesoftware,andyouarewelcometomodifyandredistributeitundertheGPLlicenseServerversion5.0.77Protocolversion10ConnectionLocalhostviaUNIXsocketUNIXsocke

9、t/var/lib/mysql/mysql.sockUptime:7min1secThreads:1Questions:2Slowqueries:0Opens:12Flushtables:1Opentables:6Queriespersecondavg:0.005使用命令行客户端登录MySQL数据库最常用的MySQL客户端是mysql命令,其格式如下:Mysql-h-u-p数据库名其中:-h表示要登录的MySQL数据库所在的主机,默认为-u表示使用指定的用户名登录,默认为root用户(注:此root用户不等同于操作系统的root用户)-p表示登录时需要输入密码数据库名表示登录后要使用哪一个数据

10、库。下面为客户端登录的演示:rootwww1MySQL_Install#mysql#连接本地MySQL数据库WelcometotheMySQLmonitor.Commandsendwith;org.YourMySQLconnectionidis3Serverversion:5.0.77SourcedistributionTypehelp;orhforhelp.Typectoclearthebuffer.mysqlusemysql#使用mysql数据库ReadingtableinformationforcompletionoftableandcolumnnamesYoucanturnoffthi

11、sfeaturetogetaquickerstartupwith-ADatabasechanged#修改root用户的密码mysqlupdateusersetpassword=password(123456)whereuser=root;QueryOK,3rowsaffected(0.00sec)Rowsmatched:3Changed:3Warnings:0#在用户表新增一条user记录,即增加一个用户usermysqlinsertintouser(host,user,password)values(%,user,password(123456);QueryOK,1rowaffected,3

12、warnings(0.00sec)mysqlflushprivileges;#刷新MySQL的系统权限相关表QueryOK,0rowsaffected(0.01sec)MySQL服务器安装完成后,会首先创建一个名为mysql的数据库,里面包含了MySQL数据库系统的所有系统信息。以上操作中,user表即为用户存放表,增加一条新记录即增加一个新用户,改变password字段的值即为修改密码。每一个用户记录都有一个host字段,表示允许该用户从哪一台主机登录,“%”表示可以从所有客户机进行远程登录,但不能从本机登录。localhost/表示只能从本机登录。或者可以指定主机名实现从特定主机登录。如需

13、指定可从多台主机登录,则可增加多条记录到user表,例如root用户的记录:mysqlselectt.host,t.user,t.passwordfromusertwheret.user=root;+-+-+-+|host|user|password|+-+-+-+|localhost|root|565491d704013245|root|565491d704013245|root|565491d704013245|+-+-+-+3rowsinset(0.00sec)如上结果显示root用户可从localhost、和登录,其实指的都是本机。图形界面的MySQL客户端MySQL的客户端有许多种,

14、其中有许多优秀的图形界面客户端,可以大大的方便对数据库的操作和管理,这里使用官方版本的图形管理工具MySQLQueryBrowser。MySQLQueryBrowser是MySQL官方推荐的图形管理工具,支持各种平台,可从网站HYPERLINK/downloads/gui-tools/downloads/gui-tools/下载对应平台的软件,安装好初次运行时需要建立一个命名的数据库连接,如下图所示:由于刚才的配置,root用户是不能从客户端远程登录的,为了管理方面,在本机的客户端中修改root用户可从客户端远程登录:mysqlupdateusertsett.host=%wheret.host

15、=andt.user=root;QueryOK,3rowsaffected(0.00sec)Rowsmatched:3Changed:3Warnings:0修改后重启数据库:rootwww1dx#/etc/init.d/mysqldrestart停止MySQL:确定启动MySQL:确定此时点击上图中的OK按钮即可连接进入数据库,其余操作略。除此之外,通过选择Tools|MySQLAdministrator或从开始菜单可以打开MySQL的管理工具MySQLAdministrator,该工具主要是对MySQL进行用户管理,性能监控,日志管理,数据库备份与回复以及数据库同步等操作,是一个非常实用的工

16、具。MySQL服务器的配置与连接MySQL服务器安装完之后,其默认的配置已经可以使其正常运行,但初始的配置不一定能让服务器运行在最佳的或最合适的状态,此时我们就要对服务器进行配置,以使其达到最佳配置状态。MySQL服务器默认的配置文件是/etc目录下的my.conf文件,这个文件在服务器安装时就会创建,但里面的配置指令很少,只用于初步学习时使用。与这个文件同时被创建的还有另外5个例子配置文件,存放于/usr/share/doc/mysql-server-5.0.77目录下。这5个配置文件的名称和配置目标如下:f:为运行在小内存主机(=64M)上的数据库而设计的,常见情况是MySQL进程占用资源

17、少,数据库只是偶尔被使用。f:是为在运行中占用小内存的情况(占用32M-64M)而设计的,其常见情况通常是MySQL服务器与其他应用服务器一起存在于一台主机上,并且此时的MySQL起到较大的作用,使用的较为频繁。通常要求主机拥有128M内存以上。f:为一般数据库而设计,内存使用一般会达到512M或以上,通常要求主机拥有超过1GB的内存,适用于大多数的情况。f:为企业应用的MySQL数据库而设计,占用超过1GB的系统内存,同时对主机性能有更高要求。my-innodb-heavy-4G.cnf:为使用InnoDB引擎的MySQL数据库而设计的,应当运行在拥有超过4GB内存的专用主机上,通常的使用情

18、况是数据库连接比较多,且查询非常复杂。以上配置文件中的指令种类相差不大,主要区别在于参数的设置不同。依现在的硬件水平,通常配置的内存都达到数个GB以上,通常情况下适用于f文件的配置,因此我们看下这个文件的内容:dxwww1mysql-server-5.0.77$f#ExampleMySQLconfigfileforlargesystems.#Thisisforalargesystemwithmemory=512Mwherethesystemrunsmainly#MySQL.#Youcancopythisfileto#/etc/ftosetglobaloptions,#mysql-data-di

19、r/ftosetserver-specificoptions(inthis#installationthisdirectoryis/var/lib/mysql)or#/.ftosetuser-specificoptions.#Inthisfile,youcanusealllongoptionsthataprogramsupports.#Ifyouwanttoknowwhichoptionsaprogramsupports,runtheprogram#withthe-helpoption.#ThefollowingoptionswillbepassedtoallMySQLclientsclien

20、t#客户端相关配置#password=your_password#提供默认的用户密码port=3306#客户端连接服务器时,使用默认的3306端口#为MySQL客户端指定一个与服务器通信的本地套接字文件socket=/var/lib/mysql/mysql.sock#Herefollowsentriesforsomespecificprograms#TheMySQLservermysqld#服务器相关配置port=3306#服务器监听端口号socket=/var/lib/mysql/mysql.sock#为MySQL服务器指定一个与客户端通信的本地套接字文件skip-locking#避免外部数

21、据锁key_buffer=256M#设置存放索引区块的内存值max_allowed_packet=1M#设定系统最大缓冲区大小table_cache=256#设定表数据高速缓存的大小sort_buffer_size=1M#设定排序高速缓存的大小read_buffer_size=1M#设定读操作(顺序读取)缓存的大小read_rnd_buffer_size=4M#设定读操作(特定次序读取)缓存的大小myisam_sort_buffer_size=64M#创建或修复表时,分配给ISAM索引排序的缓冲区大小。thread_cache_size=8#分配给线程的缓冲区大小query_cache_siz

22、e=16M#提交查询操作时缓冲区大小#TrynumberofCPUs*2forthread_concurrencythread_concurrency=8#多个CPU的线程数#DontlistenonaTCP/IPportatall.Thiscanbeasecurityenhancement,#ifallprocessesthatneedtoconnecttomysqldrunonthesamehost.#AllinteractionwithmysqldmustbemadeviaUnixsocketsornamedpipes.#Notethatusingthisoptionwithoutena

23、blingnamedpipesonWindows#(viatheenable-named-pipeoption)willrendermysqlduseless!#skip-networking#DisableFederatedbydefaultskip-federated#ReplicationMasterServer(default)#binaryloggingisrequiredforreplicationlog-bin=mysql-bin#requireduniqueidbetween1and232-1#defaultsto1ifmaster-hostisnotset#butwillno

24、tfunctionasamasterifomittedserver-id=1#设置服务器的ID号,在设置主/从数据库时需要#ReplicationSlave(commentoutmastersectiontousethis)#Toconfigurethishostasareplicationslave,youcanchoosebetween#twomethods:#1)UsetheCHANGEMASTERTOcommand(fullydescribedinourmanual)-#thesyntaxis:#CHANGEMASTERTOMASTER_HOST=,MASTER_PORT=,#MAST

25、ER_USER=,MASTER_PASSWORD=;#whereyoureplace,byquotedstringsand#bythemastersportnumber(3306bydefault).#Example:#CHANGEMASTERTOMASTER_HOST=125.564.12.1,MASTER_PORT=3306,#MASTER_USER=joe,MASTER_PASSWORD=secret;#OR#2)Setthevariablesbelow.However,incaseyouchoosethismethod,then#startreplicationforthefirstt

26、ime(evenunsuccessfully,forexample#ifyoumistypedthepasswordinmaster-passwordandtheslavefailsto#connect),file,andanylater#changeinthisfiletothevariablesvaluesbelowwillbeignoredand#file,unlessyoushutdown#theslaveserver,andrestarttheslaverserver.#Forthatreason,youmaywanttoleavethelinesbelowuntouched#(co

27、mmented)andinsteaduseCHANGEMASTERTO(seeabove)#requireduniqueidbetween2and232-1#(anddifferentfromthemaster)#defaultsto2ifmaster-hostisset#butwillnotfunctionasaslaveifomitted#server-id=2#Thereplicationmasterforthisslave-required#master-host=#Theusernametheslavewilluseforauthenticationwhenconnecting#to

28、themaster-required#master-user=#Thepasswordtheslavewillauthenticatewithwhenconnectingto#themaster-required#master-password=#Theportthemasterislisteningon.#optional-defaultsto3306#master-port=#binarylogging-notrequiredforslaves,butrecommended#log-bin=mysql-bin#Pointthefollowingpathstodifferentdedicat

29、eddisks#tmpdir=/tmp/#log-update=/path-to-dedicated-directory/hostname#UncommentthefollowingifyouareusingBDBtables#bdb_cache_size=64M#bdb_max_lock=100000#UncommentthefollowingifyouareusingInnoDBtables#innodb_data_home_dir=/var/lib/mysql/#innodb_data_file_path=ibdata1:10M:autoextend#innodb_log_group_h

30、ome_dir=/var/lib/mysql/#innodb_log_arch_dir=/var/lib/mysql/#Youcanset._buffer_pool_sizeupto50-80%#ofRAMbutbewareofsettingmemoryusagetoohigh#innodb_buffer_pool_size=256M#innodb_additional_mem_pool_size=20M#Set._log_file_sizeto25%ofbufferpoolsize#innodb_log_file_size=64M#innodb_log_buffer_size=8M#inno

31、db_flush_log_at_trx_commit=1#innodb_lock_wait_timeout=50mysqldump#用户使用mysqldump工具在不同SQL数据库之间传输数据时的配置quick#表示支持较大数据库的转储max_allowed_packet=16M#置用来传输数据库表到其他数据库的最大允许包的大小mysql#指定启动MySQL服务器的配置no-auto-rehash#快速启动数据库#RemovethenextcommentcharacterifyouarenotfamiliarwithSQL#safe-updates#如果用户对SQL不熟悉,可以启用安全更新功能

32、isamchk#使用isamchk工具修复isam类型表时采用的配置key_buffer=128Msort_buffer_size=128Mread_buffer=2Mwrite_buffer=2Mmyisamchk#使用isamchk工具修复myisam类型表时采用的配置key_buffer=128Msort_buffer_size=128Mread_buffer=2Mwrite_buffer=2Mmysqlhotcopy#使用mysqlhotcopy热备工具时采用的配置interactive-timeout#数据库热备份期间将挂起数据库连接,该指令设置最大的超时时间,默认为28800秒一般

33、而言,这5个配置文件都是比较成熟的有针对性的设计,用户在配置MySQL服务器时可根据实际的服务器需求情况挑选其中一个配置文件,将其复制到/etc目录覆盖原f文件即可,此时该文件是对全局数据库起作用的。也可以将其复制到MySQL服务器数据库文件的存储目录,如默认创建的mysql数据库的文件存储目录/var/lib/mysql,并改名为f,则此时将只对mysql这个数据库起作用。还可以将其复制到某一个用户的个人目录下并改名为“.f”,则此配置只对该用户起作用。mysqld进程配置MySQL服务器可以,启用多个mysqld进程。在/etc/f配置文件中,mysqld配置段指定了mysqld进程的配置

34、信息,如果有多个进程,则可以使用mysqld1、mysqld2为起始标志对其他进程进行配置,以调整不同进程的配置差异。下面给出一些mysqld进程的相关配置选项:选项名称功能说明Basedir=path指定MySQL的安装目录路径Bind-address=IP指定与主机的哪个网络接口绑定,默认绑定全部网络接口Console除了写入日之外,还将错误消息写入stderr及stdoutCharacter-sets-dir=path字符集安装的目录路径Chroot=path将某一目了设定为MySQL的根目录Character-sets-server=charset指定数据库服务器的默认字符集Core-

35、file如果mysqld进程异常终止,要求把内核文件写入磁盘Datadir=path设置数据库文件的路径Default-time-zone=type设置服务器默认的时区Init-file=fileMysqld启动时从该文件读取sql语句并执行Log=file设置常规日志的存放位置和文件名。Log-bin=file设置二进制日志文件的文件名Log-bin-index=file设置二进制日志文件的索引文件名Log-error=file设置错误日志的文件名Log-slow-queries将所有执行时间超过long-query-time秒的查询计入该文件Pid-file=path进程ID文件的路径Po

36、rt=port_num监听TCP/IP连接时使用的端口号Server_id指定mysqld进程的一个编号,值为以1开始的整数Skip-bdb禁用BDB引擎,可以节省内存Tmpdir=path指定临时文件的路径User=user_name|user_id指定运行mysqld进程的操作系统用户在mysqld进程运行的过程中还可以通过命令来设置系统中使用的变量,包括两种,一种是全局变量,它影响服务器的全局操作。另一个是会话变量,它只影响与其连接的具体客户端的相关操作。服务器启动之后,可以通过连接服务器并执行以下命令来修改变量:SETGLOBAL变量名=值#修改全局变量SETSESSION变量名=值#修改会话变量任何访问全局变量的客户端都可以即时看见全局变量的改变,但修改会话变量则只能改变客户端自己的会话变量,而不能更改其他客户端的会话变量,下面是两个设置系统变量的例子:mysqlSETGLOBALsort_buffer_size=10M;mysqlSETSESSIONsort_buffer_size=10M;MySQL实例管理器MySQL实例管理器用来监视和管理MySQL数据库服务器进程,包括启动和停止M

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论