程序员人生 网站导航

Mysql 客户端程序与数据库服务器连接

栏目:MySql时间:2014-01-28 15:30:26
本文通过演示如何使用mysql客户程序与数据库服务器连接。mysql(有时称为“终端监视器”或只是“监视”)是一个交互式程序,允许你连接一个MySQL服务器,运行查询并察看结果。mysql可以用于批模式:你预先把查询放在一个文件中,然后告诉mysql执行文件的内容。使用mysql的两个方法都在这里涉及。

  为了看清由mysql提供的一个选择项目表了,用--help选项调用它:

  shell> mysql --help

  本章假定mysql已经被安装在你的机器上,并且有一个MySQL服务器你可以连接。如果这不是真的,联络你的MySQL管理员。(如果你是管理员,你将需要请教这本手册的其他章节。)

  建立和中止与服务器的连接

  1、如何使用客户机建立连接

  为了连接到服务器,从外壳程序(即从 UNIX 提示符,或从 Windows 下的 DOS 控制台)激活 mysql 程序。命令如下:

  shell>mysql

  又如,直接连接一个数据库:

  shell> mysql db_name

  其中的“$”在本书中代表外壳程序提示符。这是 UNIX 标准提示符之一;另一个为“#”。在 Windows 下,提示符类似 “c:>”。

  2、客户机最常使用的选项:主机、用户和密码

  为了连接服务器,当你调用mysql时,你通常将需要提供一个MySQL用户名和很可能,一个口令。如果服务器运行在不是你登录的一台机器上,你也将需要指定主机名。联系你的管理员以找出你应该使用什么连接参数进行连接(即,那个主机,用户名字和使用的口令)。一旦你知道正确的参数,你应该能象这样连接:

shell> mysql -h host -u user -p
Enter password: ********

  ********代表你的口令;当mysql显示Enter password:提示时输入它。

  在刚开始学习 MySQL 时,大概会为其安全系统而烦恼,因为它使您难于做自己想做的事。(您必须取得创建和访问数据库的权限,任何时候连接到数据库都必须给出自己的名字和口令。)但是,在您通过数据库录入和使用自己的记录后,看法就会马上改变了。这时您会很欣赏 MySQL 阻止了其他人窥视(或者更恶劣一些,破坏!)您的资料。

  下面介绍选项的含义:

  -h host_name(可选择形式:--host=host_name)

  希望连接的服务器主机。如果此服务器运行在与 mysql 相同的机器上,这个选项一般可省略。

  -u user_name(可选择的形式:--user=user_name)

  您的 MySQL 用户名。如果使用 UNIX 且您的 MySQL 用户名与注册名相同,则可以省去这个选项;mysql 将使用您的注册名作为您的 MySQL 名。

  在 Windows 下,缺省的用户名为 ODBC。这可能不一定非常有用。可在命令行上指定一个名字,也可以通过设置 USER 变量在环境变量中设置一个缺省名。如用下列 set 命令指定 paul 的一个用户名:

  -p(可选择的形式:--password)

  这个选项告诉 mysql 提示键入您的 MySQL 口令。注意:可用 -pyour_password 的形式(可选择的形式:--password=your_password)在命令行上键入您的口令。但是,出于安全的考虑,最好不要这样做。选择 -p 不跟口令告诉 mysql 在启动时提示您键入口令。例如:

  在看到 Enter password: 时,键入口令即可。(口令不会显到屏幕,以免给别人看到。)请注意,MySQL 口令不一定必须与 UNIX 或 Windows 口令相同。

  如果完全省略了 -p 选项,mysql 就认为您不需要口令,不作提示。

  请注意:-h 和 -u 选项与跟在它们后面的词有关,无论选项和后跟的词之间是否有空格。而 -p 却不是这样,如果在命令行上给出口令,-p 和口令之间一定不加空格。

  例如,假定我的 MySQL 用户名和口令分别为 tom 和 secret,希望连接到在我注册的同一机器上运行的服务器上。下面的 mysql 命令能完成这项工作:

  shell>mysql –u tom -p

  在我键入命令后,mysql 显示 Enter password: 提示键入口令。然后我键入口令(****** 表明我键入了 secret)。

  如果一切顺利的话,mysql 显示一串消息和一个“mysql>”提示,表示它正等待我发布查询。完整的启动序列如下所示:

  为了连接到在其他某个机器上运行的服务器,需要用 -h 指定主机名。如果该主机为 mysql.domain.net,则相应的命令如下所示:

shell>mysql –h mysql.domain.net –u tom -p

  在后面的说明 mysql 命令行的多数例子中,为简单起见,我们打算省去 -h、-u 和 -p 选项。并且假定您将会提供任何所需的选项。

  有很多设置账号的方法,从而不必在每次运行 mysql 时都在连接参数中进行键入。这个问题在前面已经介绍过,你只需在选项文件中提供参数,具体请看3.2.2。您可能会希望现在就跳到该节,以便找到一些更易于连接到服务器的办法。

  3、结束会话

  在建立了服务器的一个连接后,可在任何时候键入下列命令来结束会话:

  quit exit

  还可以键入 Control-D 来退出,至少在 UNIX 上可以这样。

  利用选项文件简化连接

  在激活 mysql 时,有可能需要指定诸如主机名、用户名或口令这样的连接参数。运行一个程序需要做很多输入工作,这很快就会让人厌烦。利用选项文件可以存储连接参数,减少输入工作。

  例如,对于使用mysqladmin客户机来管理数据库,那么你很快会厌烦每次使用这么长的命令行:

shell>mysql –u root –p varialbles
Enter password: *********

  你也许会选择使用全局选项文件来存贮你的参数:

  [mysqladmin]

  #也可以用[client],为所有的客户机存储参数

user=root
password=yourpassword

  这样执行mysqladmin variables就不会显示任何存储拒绝的错误,并且你可以用root用户身份维护数据库了。

  且慢,你立刻会发现,这样做是一个很大的安全漏洞,因为任何可以读取选项文件的用户都可以获得你的密码!解决方法是,只提供password选项不提供密码:

[mysqladmin]
user=root
password

  这样你在命令行执行时,会提示你数据密码:

shell>mysql varialbles
Enter password: *********

  但是,你不能不提供password选项,否则你还是要在命令行中提供-p选项。

  利用 mysql 的输入行编辑器

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐