- MySQL数据库管理与开发实践教程 (清华电脑学堂)
- 程朝斌
- 3250字
- 2025-03-09 06:50:41
1.5 MySQL基本操作
在1.4节中详细介绍了MySQL的安装过程。安装过程结束之后的第一件事就是对安装MySQL是否成功进行验证。通常情况下,如果安装过程中没有出现错误提示,即可以认为这次是安装成功的。本节将介绍最简单的验证安装的方法,以及如何启动和配置服务器。
1.5.1 启动和登录MySQL
MySQL数据库分为客户端和服务器端,只有服务器端服务开启以后,才可以通过客户端登录MySQL数据库。下面首先介绍启动MySQL服务器的方法。
【范例1】
默认情况下MySQL安装完成之后会自动启动MySQL服务。也可以通过命令启动,命令语法如下:
net start|stop mysql服务名称
上述命令中的start和stop分别表示启动和停止,只能使用其中之一;mysql服务名称是指安装MySQL时指定的名称,默认值是MySQL56。
启动MySQL服务命令如下:
net start MySQL56
停止MySQL服务命令如下:
net stop MySQL56
除了命令方式之外,还可以打开系统的【服务】管理界面对MySQL服务进行管理。如图1-16所示为右击MySQL56服务名称弹出快捷菜单的效果,在这里可以启动、停止、暂停、重新启动和查看服务的属性。

图1-16 管理MySQL56服务
从图1-16中可以看到,当前MySQL服务处于启动状态,启动类型是随Windows系统自动启动,登录方式为网络服务。
【范例2】
MySQL服务启动以后,开发者可以通过客户端来登录MySQL数据库。登录MySQL数据库有两种方式:一种是使用命令,另一种是使用MySQL Workbench工具。
使用命令登录到MySQL服务器的方法是从系统的【开始】菜单中找到MySQL的程序组,然后展开MySQL Server 5.6列表选择MySQL 5.6 Command Line Client – Unicode工具,如图1-17所示。此时会进入Windows的命令提示符窗口,窗口标题为“MySQL 5.6 Command Line Client – Unicode”。在窗口中输入安装MySQL时指定的密码,按下回车键即可进行连接,如果连接成功将显示欢迎信息,并显示当前MySQL的版本号,同时显示有mysql>提示符表示进入命令行状态,如图1-18所示。

图1-17 MySQL程序组

图1-18 登录到MySQL数据库
下面对图1-18中所显示的重要信息进行说明。
(1)Commands end with ; or \g:说明MySQL控制台下的命令是以分号(;)或“\g”来结束的,遇到这个结束符就开始执行命令。
(2)Your MySQL connection id is 2:id表示MySQL数据库的连接次数,如果数据库是新安装,这是第一次登录。如果安装成功后已经登录过,将会显示其他的数字。
(3)Server version:Server version之后的内容表示当前数据库版本,这里安装的版本是5.6.19 MySQL Community Server (GPL)。
(4)Type 'help;' or '\h' for help:表示输入“help;”或者“\h”可以看到帮助信息。
(5)Type '\c' to clear the current input statement:表示遇到“\c”就清除当前输入语句。
提示
图1-18这种方式实际上是调用的mysql命令。因此,读者也可在命令行下输入mysql命令来登录到MySQL服务器。
如果在如图1-17所示MySQL程序组中选择MySQL Workbench 6.1 CE选项,在弹出的窗口中同样可以登录到MySQL。方法是:在MySQL Workbench窗口中选择Database|Connect to Database命令,打开Setup New Connection对话框来设置连接信息。
在Connection Name文本框中为连接设置一个别名,这里为“MySQL Default Connection”。然后在Connection Method列表中选择连接MySQL采用的方式,默认值为TCP/IP。Hostname文本框中是MySQL数据库的IP或者机器名,默认的127.0.0.1表示本机,同时在Port文本框中需要指定对应的端口号,默认为3306。Username文本框用于设置登录MySQL使用的用户名,默认为root;单击Store in Vault按钮在弹出的对话框中输入登录密码,如图1-19所示。

图1-19 设置连接信息
设置完成之后单击Test Connection按钮对连接进行测试,如果成功将会弹出成功对话框,最后单击OK按钮保存并返回主窗口。此时主窗口会出现名为MySQL Default Connection的连接区域,双击该区域即可建立连接并打开同名的选项卡。在该选项卡下可以对MySQL的所有方面进行管理,这里也是图形界面的主要工作区域,例如,从左侧的Navigator窗格中单击Server Status链接可以查看当前MySQL服务器的状态信息,如图1-20所示。

图1-20 MySQL Workbench工具查看MySQL信息
1.5.2 常用命令
登录MySQL数据库后就可以执行一些语句查看操作结果了。在MySQL Workbench工具中通过鼠标操作可以很直观地查看所需信息,非常简单。因此,本节以客户端为例讲解常用的命令。
【范例3】
在“mysql>”提示符下直接输入SELECT语句即可完成简单的查询操作。例如,下面的命令显示了MySQL服务器的版本号和当前日期。这里要注意的是,MySQL命令不区分大小写。
mysql> SELECT VERSION(),CURRENT_DATE(); +-----------------+--------------------------+ | VERSION() | CURRENT_DATE() | +-----------------+--------------------------+ | 5.6.19 | 2014-07-07 | +-----------------+--------------------------+
【范例4】
如果一条SQL语句比较长,可将其分成多行来输入,并在最后输入分号“;”来作为结束。这种方法需要注意SQL语句中的逗号与结束符分号之间的用法。例如,如下代码所示:
mysql> SELECT -> USER() -> , -> NOW() -> ; +--------------------+-----------------------------+ | USER() | NOW() | +--------------------+-----------------------------+ | root@localhost | 2014-07-07 15:18:30 | +--------------------+-----------------------------+
【范例5】
如果用户需要一次执行多条语句,可以直接以分号分隔每个语句,如下所示:
mysql> SELECT USER();SELECT NOW(); +---------------------------+ | USER() | +---------------------------+ | root@localhost | +---------------------------+ +---------------------------+ | NOW() | +---------------------------+ | 2014-07-07 15:25:10 | +---------------------------+
【范例6】
使用SHOW DATABASES语句可以显示当前MySQL服务器上已经存在的数据库列表。
mysql> SHOW DATABASES; +------------------------------+ | Database | +------------------------------+ | information_schema | | mysql | | performance_schema | | sakila | | test | | world | +------------------------------+
【范例7】
使用“USE 数据库名”语句可以打开指定的数据库。使用“SELECT DATABASE()”语句可显示当前所在的数据库。
mysql> USE world; Database changed mysql> SELECT DATABASE(); +------------------+ | DATABASE() | +------------------+ | world | +------------------+
【范例8】
如果要查看当前数据库中所有数据表的名称,可以使用“SHOW TABLES”语句。例如,要查看world数据库下所有数据表名称,命令如下:
mysql> SHOW TABLES; +-----------------------+ | Tables_in_world | +-----------------------+ | city | | country | | countrylanguage | +-----------------------+
【范例9】
当命令输入错误而又无法改变(多行语句情况下)时,只需在输入分号前输入“\c”即可取消这条命令。示例如下:
mysql> select -> now() -> c -> \c
1.5.3 MySQL配置文件
MySQL数据库安装完成以后,可能会根据实际情况更改MySQL的某些配置。一般可以通过两种方式进行更改:一种是通过配置向导进行更改;另一种是通过手动方式更改。
MySQL的配置文件为my.ini,默认保存在安装MySQL时指定的Data Path目录下。在MySQL的安装目录有一个my-default.ini文件里面存放的是一些默认参考配置信息,而数据库真正使用的是my.ini文件。因此,只要修改my.ini中的内容就可以达到更改配置的目的。my.ini文件中包含大量的内容,下面介绍该文件时会去掉大量的注释内容,然后从客户端配置和服务器端配置进行介绍。
提示
如果读者安装时选择的配置不一样,那么配置文件就会稍有不同。通常情况下,读者经常修改的是默认字符集、默认存储引擎和端口等信息,其他参数比较复杂,一般不进行修改。另外,每次修改参数后,必须重新启动MySQL服务才会有效。
1.客户端配置
客户端的配置内容比较简单,port参数表示MySQL数据库的端口,默认端口是3306。default-character-set参数是客户端的默认字符集,默认设置是utf8。如果想要更改客户端的设置内容,可以直接在my.ini文件中进行更改。部分内容如下。
# Other default tuning values # MySQL Server Instance Configuration File # ------------------------------------------------------------------ # Generated by the MySQL Server Instance Configuration Wizard # 该文件是使用MySQL配置向导生成的 # CLIENT SECTION # ------------------------------------------------------------------ # 下面将会是客户端的各个参数的介绍。[client]和[mysql]都是客户端的。 # [client] no-beep # pipe # socket=mysql port=3306 [mysql] default-character-set=utf8
2.服务器端配置
与客户端内容相比,服务器端的配置要复杂得多,自动生成的文件内容是通过英文解释说明的,如下通过中文对相关的内容进行了解释说明。
# SERVER SECTION # ------------------------------------------------------------------ # 下面是服务器端各个参数的介绍。[mysqlId]表示下面的内容属于服务器端。 # server_type=3 [mysqld] # port参数表示MySQL数据库的端口,默认端口是3306。 port=3306 # basedir参数表示MySQL安装路径,此处显示的安装路径为F磁盘。 # basedir="F:/Program Files/MySQL/MySQL Server 5.6/" # datadir参数表示MySQL数据文件的存储位置。 datadir="F:/Documents and Settings/All Users/Application Data/MySQL/ MySQL Server 5.6/data\" # character-set-server参数表示默认的字符集,这个字符集是服务器端的。 character-set-server=utf8 # default-storage-engine参数表示默认的存储引擎,存储引擎表示数据的存储方式。 default-storage-engine=INNODB # sql-mode参数表示SQL模式的参数,通过这个参数,可以设置检验SQL语句的严格程度。 sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" # plugin-load参数表示Windows身份验证 # plugin-load=authentication_windows.dll # 通用查询日志和慢查询日志 log-output=NONE general-log=0 general_log_file="WS.log" slow-query-log=0 slow_query_log_file="WS-slow.log" long_query_time=10 # 二进制日志 # log-bin # 错误日志 log-error="WS.err" # max_connections参数表示允许同时访问MySQL服务器的最大连接数。其中一个连接将保 # 留作为管理员登录。 max_connections=100 # query_cache_size参数表示查询时的缓存大小。缓存中可以存储以前的SELECT语句查询 # 过的信息,遇到相同的查询时,可以直接从缓存中取出结果。 query_cache_size=1M # table_open_cache参数表示所有进程打开表的总数。 table_open_cache=2000 # tmp_table_size参数表示内存中临时表的最大值。 tmp_table_size=5M # thread_cache_size参数表示保留客户端线程的缓存。 thread_cache_size=9
3.InnoDB存储引擎使用的参数
InnoDB是MySQL 5.6.19数据库的默认存储引擎,在my.ini文件中还包含InnoDB和MyISAM存储引擎使用的参数。如下文件内容所示为InnoDB存储引擎的一些常用参数。
#*** INNODB Specific options *** # InnoDB_data_home_dir=0.0 # InnoDB_additional_mem_pool_size参数表示附加的内存池,用来存储InnoDB表的内容。 InnoDB_additional_mem_pool_size=2M # InnoDB_flush_log_at_trx_commit参数设置提交日志的时机。 InnoDB_flush_log_at_trx_commit=1 # InnoDB_log_buffer_size参数表示用来存储日志数据的缓冲区的大小。 InnoDB_log_buffer_size=1M # InnoDB_buffer_pool_size表示缓存的大小。InnoDB使用一个缓冲池来保存索引和原始数据。 InnoDB_buffer_pool_size=8M # InnoDB_log_file_size参数表示日志文件的大小。 InnoDB_log_file_size=48M # InnoDB_thread_concurrency参数表示在InnoDB存储引擎允许的线程最大数。 InnoDB_thread_concurrency=8
提示
本节仅列出了my.ini文件中三个方面的常用配置内容,该文件中的实际内容非常复杂,读者可以打开熟悉一下,这里不再详述。