MySQL金典培训教程:06第三章.docx
《MySQL金典培训教程:06第三章.docx》由会员分享,可在线阅读,更多相关《MySQL金典培训教程:06第三章.docx(30页珍藏版)》请在三一办公上搜索。
1、第3章数据库的基本操作本章要点:v 服务器的启动v 客户机与服务器的连接v 一些SQL语句的功能v 一些专用客户机的使用在我们阅读了前两章,了解了MySQL并且安装成功MySQL服务器之后,可以开始学习这个强大而复杂的系统。客户机/服务器的体系结构是MySQL的特点之一,我们首先需要熟悉MySQL客户机和服务器的使用,了解客户机如何与服务器连接。客户机使用SQL语言与MySQL服务器通信。为了与MySQL 服务器进行通信,必须熟练掌握 SQL。例如,在使用诸如 mysql 客户机这样的程序时,其功能首先是作为一种发送 SQL 语句给服务器执行的工具。而且,如果编写使用编程语言所提供的 MySQ
2、L 接口的程序时,也必须熟悉 SQL 语言,因为需要发送 SQL 语句与服务器沟通。本章也将对大部分SQL语句作一个详细的描述。本章涉及的SQL语句多数都是和数据的存储、检索有关,其它少量的SQL语句将在其它各章陆续介绍。3.1 MySQL的启动与终止由于MySQL服务器具有多种安装分发,而且能够运行在多种操作平台之上,因此它的启动与停止的方法也多种多样。你可以根据实际情况使用其中的一种。在你安装、升级或者维护系统时,你可能需要多次启动和终止服务器,你需要了解启动和终止服务器的方方面面。3.1.1 直接运行守护程序1、你可以采用的方法一般的,你可以有以下几种选择启动MySQL服务器,它们的功能
3、和用法几乎是相同的,所以一起在这里介绍:l 直接使用MySQL守护程序mysqld启动数据库系统,尤其是Win32平台上的分发,这是因为,在Win32平台上没有mysql.server等服务器脚本可用。l 通过调用safe_mysqld脚本,它接受与mysqld相同的参数,并试图为mysqld决定正确的选项,然后选择用那些运行它。 2、脚本或者守护程序的存放位置对于二进制分发的安装,mysqld守护程序安装在MySQL安装目录的bin目录下,或者可在MySQL源代码分发的libexec目录下找到,缺省为/usr/local/libexec/。对于rpm分发,mysqld应该位于PATH变量决定
4、的程序搜索路径中,因此可以直接引用。safe_mysqld仍旧是一个脚本,并且只存在于Unix平台的分发中。safe_mysqld脚本安装在MySQL安装目录的bin目录下,或可在MySQL源代码分发的scripts目录下找到。对于rpm分发,该脚本应该位于PATH变量决定的程序搜索路径中,因此可以直接引用。3、为什么要使用safe_mysqld脚本safe_mysqld接受和mysqld同样的参数,并试图确定服务器程序和数据库目录的位置,然后利用这些位置调用服务器。safe_mysqld将服务器的标准错误输出重定向到数据库目录中的错误文件中,并以记录的形式存在。启动服务器后,safe_mys
5、qld还监控服务器,并在其死机时重新启动。safe_mysqld通常用于Unix的BSD风格的版本。如果,你曾经为root或在系统启动程序中启动safe_mysqld,其错误日志将有root拥有。如果再用非特权的用户身份调用safe_mysqld,则可能引起“Access Denied”(即,“所有权被拒绝”)的错误。此时可以删除错误文件在试一次。由于safe_mysqld脚本的功能,使用safe_mysqld脚本明显比直接启动mysqld守护程序来得有效。4、启动服务器的完整过程对于Unix平台上的分发,如果你以root或在系统引导期间启动sqfe_mysqld,出错日志由root拥有,这可
6、能在你以后试图用一个非特权用户调用safe_mysqld时将导致“permission denied”(权限拒绝)错误,删除出错日志再试一下。因此建议你在启动服务器前,首先切换到一个专门的用户mysql。具体方法如下:l Unix平台$ su mysql$ safe_mysql & (或者 mysqld & ,不推荐)l Win32平台 C: mysqlbinmysqld -standalone 或者C: mysqlbinmysqld-nt standalone如果你使用mysqld并且没有把mysql安装在标准的位置,通常需要提供basedir选项你的数据库的安装位置。$safe_mysql
7、d -basedir=”/path/to/mysql” &(Unix平台)c:mysqlbinmysqld -basedir=”x:/path/to/mysql” (Win32平台)5、使用safe_mysqld脚本实现服务器的自动启动同样你可以利用safe_mysqld和mysqld实现服务器随操作系统自动启动。对于Linux系统以及BSD风格的系统(FreeBSD,OpenBSD等),通常在/etc目录下有几个文件在引导时初始化服务,这些文件通常有以“rc”开头的名字,且它有可能由一个名为“rc.local”的文件(或类似的东西),特意用于启动本地安装的服务。在这样的系统上,你可能将类似于
8、下列的行加入rc.local文件中以启动服务器(如果safe_mysqld的目录在你的系统上不同,修改它即可): if -x /usr/local/bin/safe_mysqld ; then /usr/local/bin/safe_mysqld & fi由于这样在引导时启动,将使用root身份启动数据库,在某些时候可能会产生问题和麻烦。这是你可以指定-user选项,因此可以将上面的代码修改为:if -x /usr/local/bin/safe_mysqld ; then /usr/local/bin/safe_mysqld -user=mysql -datadir=/path/to/data
9、 & fi3.1.2 使用脚本mysql.server启动关闭数据库对于Unix平台上的分发,比较好的办法是使用数据库脚本mysql.server,启动和关闭数据库。1、mysql.server脚本的存放位置mysql.server脚本安装在MySQL安装目录下的share/mysqld目录下或可以在MySQL源代码分发的support_files目录下找到。对于rpm分发,该脚本已经改名mysql位于/etc/rc.d/init.d目录中,另外在.中存在一个副本mysql.server。下文的讨论对RPM分发来说,都在安装中完成了。如果你想使用它们,你需要将它们拷贝到适当的目录下。2、如何使
10、用mysql.server脚本启动停止服务器mysql.server脚本可以被用来启动或停止服务器,通过用start或stop参数调用它: $ mysql.server start$ mysql.server stop3、mysql.server的功能简述在mysql.server启动服务器之前,它把目录改变到MySQL安装目录,然后调用safe_mysqld。如果你有在一个非标准的地点安装的二进制分发,你可能需要编辑mysql.server。修改它,运行safe_mysqld前,cd到正确的目录。4、让mysql.server以特定的用户启动服务器如果你想要作为一些特定的用户运行服务器,你可
11、以改变mysql_daemon_user=root行使用其他用户,你也能修改mysql.server把其他选项传给safe_mysqld。 当然你也可以利用选项文件给mysql.server脚本提供参数。你也可以在一个全局“/etc/f”文件中增加mysql.server的选项。一个典型的“/etc/f”文件可能看起来像这样: mysqlddatadir=/usr/local/mysql/varsocket=/tmp/mysqld.sockport=3306mysql.serveruser=mysqlbasedir=/usr/local/mysqlmysql.server脚本使用下列变量:us
12、er、datadir、basedir、bindir和pid-file。 5、利用mysql.server脚本让服务器自动启动mysql.server脚本的重要性在于你可以使用它配置一个随操作系统自动启动的数据库安装,这是一个实际的系统中常用的方法。l 把mysql.server复制到/etc/rc.d/init.d目录里面:# cd /etc/rc.d/init.d# cp /usr/local/mysql/support-files/mysql.server mysqll 接着把它的属性改为“x”(executable,可执行)# chmod +x mysqll 最后,运行chkconfig
13、把MySQL添加到你系统的启动服务组里面去。# /sbin/chkconfig -del mysql# /sbin/chkconfig -add mysql你也可以这样做,手工建立链接:#cd /etc/rc.d/rc3.d (根据你的运行级不同而不同,可以是rc5.d)#ln s ./init.d/mysql S99mysql在系统启动期间,S99mysql脚本利用start参数自动启动。3.1.3 使用mysqladmin实用程序关闭、重启数据库日常维护数据库,经常需要关闭或者重新启动数据库服务器。mysql.server stop只能用于关闭数据库系统,并不方便,而且mysql.serv
14、er脚本用特定用户身份启动服务器,因此使用该教本需要超级用户的权限。相比之下mysqladmin就方便的多,并且适用于MySQL所有类型、平台的安装。l 关闭数据库服务器mysqladmin shutdownl 重启数据库服务器mysqladmin reloadl 获得帮助mysqladmin helpmysqladmin实用程序非常有使用价值,仔细阅读帮助输出,你会得到更多的用法。如果出现下面的错误:mysqladmin: connect to server at localhost failederror: Access denied for user: rootlocalhost (Us
15、ing password: YES)表示你需要一个可以正常连接的用户,请指定-u -p选项,具体方法与3.2节介绍相同,在第七章中你将会学到用户授权的知识。例如,你现在可以:shellmysqladmin -u root -p shutdownEnter Password:*输入你在阅读第二章时修改过的密码即可。3.1.4 启动或停止NT平台上的系统服务上面几节介绍了Unix平台上使数据库服务器自动启动的方法,而在windows(NT)平台上为了让MySQL数据库自动启动,你需要将MySQL服务器安装成NT系统的一种服务。1、将MySQL安装成系统服务对于NT,服务器名字是mysqld-nt。
16、 C:mysqlbin mysqld-nt -install(你可以在 NT 上使用mysqld或mysqld-opt服务器,但是那些不能作为一种服务启动或使用命名管道。)2、修改选项文件如果你的mysql没有安装缺省的位置c:mysql,那么因为数据库将无法确定数据库目录的位置,而无法启动。这种情况下,你需要提供一个全局的选项文件c:f。将安装目录中的my-f文件拷贝到c盘根目录下。修改或加入:mysqldbasedir = x:/path/to/mysql/3、启动、停止服务器的方法你可以用下列命令启动和停止MySQL服务: NET START mysqlNET STOP mysql注意在
17、这种情况下,你不能对mysqld-nt使用任何其他选项!你需要使用选项文件提供参数。可以在选项文件中提供合适的参数。3.1.5 使用选项文件提供服务器的参数本节介绍守护程序需要的比较重要的选项。对于全局选项文件(windows:c:/f 或者 unix:/etc/f),比较重要的选项有:user 运行守护程序的用户,如果你使用mysql.server,并且在mysql.server中指定了user,那么这个选项没有必要。log-update=file 更新日志名,对于恢复数据库有重要意义,数据库服务器将生成file.n为名的更新日志文件。-l, -log=file 指定常规日志名-log-bi
18、n=file 指定使用的二进制日志文件,应用于服务器复制。-Sg, -skip-grant-tables 启动时不加载授权表,维护时使用。-u, -user=user_name 启动服务器使用的Unix帐户-socket=. 指定是用的Unix套接字文件名,在同时运行多个服务器时使用。-P, -port=. 指定服务器使用的端口,在同时运行多个服务器时使用。3.1.6 总结作为MySQL的管理员,你平时的指责就是确保服务器尽可能的正常运行,使得客户机能够正常访问。本章讨论了如何启动和重启、关闭服务器,如果你具备了这个能力,就可以更好的维护服务器安装。本章介绍的方法,多数适合于Unix系统,读者
19、请仔细分辨。3.2 MySQL与客户机的连接本章通过演示如何使用mysql客户程序与数据库服务器连接。mysql(有时称为“终端监视器”或只是“监视”)是一个交互式程序,允许你连接一个MySQL服务器,运行查询并察看结果。mysql可以用于批模式:你预先把查询放在一个文件中,然后告诉mysql执行文件的内容。使用mysql的两个方法都在这里涉及。 为了看清由mysql提供的一个选择项目表了,用-help选项调用它: shell mysql -help本章假定mysql已经被安装在你的机器上,并且有一个MySQL服务器你可以连接。如果这不是真的,联络你的MySQL管理员。(如果你是管理员,你将需
20、要请教这本手册的其他章节。)3.2.1建立和中止与服务器的连接1、如何使用客户机建立连接为了连接到服务器,从外壳程序(即从 UNIX 提示符,或从 Windows 下的 DOS 控制台)激活 mysql 程序。命令如下:shellmysql 又如,直接连接一个数据库:shell mysql db_name其中的“$”在本书中代表外壳程序提示符。这是 UNIX 标准提示符之一;另一个为“#”。在 Windows 下,提示符类似 “c:”。2、客户机最常使用的选项:主机、用户和密码为了连接服务器,当你调用mysql时,你通常将需要提供一个MySQL用户名和很可能,一个口令。如果服务器运行在不是你登
21、录的一台机器上,你也将需要指定主机名。联系你的管理员以找出你应该使用什么连接参数进行连接(即,那个主机,用户名字和使用的口令)。一旦你知道正确的参数,你应该能象这样连接: shell mysql -h host -u user -pEnter password: *代表你的口令;当mysql显示Enter password:提示时输入它。在刚开始学习 MySQL 时,大概会为其安全系统而烦恼,因为它使您难于做自己想做的事。(您必须取得创建和访问数据库的权限,任何时候连接到数据库都必须给出自己的名字和口令。)但是,在您通过数据库录入和使用自己的记录后,看法就会马上改变了。这时您会很欣赏 MySQ
22、L 阻止了其他人窥视(或者更恶劣一些,破坏!)您的资料。下面介绍选项的含义: -h host_name(可选择形式:-host=host_name)希望连接的服务器主机。如果此服务器运行在与 mysql 相同的机器上,这个选项一般可省略。l -u user_name(可选择的形式:-user=user_name)您的 MySQL 用户名。如果使用 UNIX 且您的 MySQL 用户名与注册名相同,则可以省去这个选项;mysql 将使用您的注册名作为您的 MySQL 名。在 Windows 下,缺省的用户名为 ODBC。这可能不一定非常有用。可在命令行上指定一个名字,也可以通过设置 USER 变
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MySQL 培训 教程 06 第三
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-1877290.html