MySQL服务器教程

1. MySQL服务器简介

MySQL是由瑞典公司于1995年开发的开源关系数据库管理系统。MySQL是一个开源系统,它已被Facebook,Google,Twitter,Flickr和Youtube等众多著名公司使用。 MySQL服务器还是开源Web应用程序框架LAMP的核心组件。 MySQL数据库服务器是用C和C ++编写的,并使用词法分析器处理SQL查询。

Sun Microsystems于2008年收购了MySQL服务器,后来又被Oracle收购了Sun Microsystem。 创始人在被Sun Microsystems收购时分叉MySQL并推出了Maria DB,但是MySQL保持了其在市场中的地位,并被许多组织所使用。

在本文中,我们将讨论有关MySQL服务器的安装。 接下来,我们将带您了解SQL查询的一些基础知识,并说明如何执行它们。 稍后,我们将继续讨论一些复杂的查询结构,例如MySQL中的联接和子查询。

2.安装MySQL服务器

MySQL服务器具有多种变体,具体取决于数据库体系结构和许可证首选项。 可用的变体是:

自由:

MySQL社区服务器

商业:

Oracle的MySQL Cloud服务

MySQL Cluster GCE服务器

MySQL企业版

在整个教程中,我们将使用MySQL Community Server及其功能。 为了安装MySQL社区服务器,请转到其下载页面

滚动到页面底部,您将找到下载列表和一个选择框,以选择操作系统。 根据需要选择操作系统。

MySQL支持的操作系统

选择操作系统后,建议下载以下设置:

MacOS: dmg存档

Linux变体:根据您的体系结构对应的DEB包。 在Ubuntu和Debian之类的Linux变体中,现在也可以使用apt仓库进行安装。

Windows: exe可执行文件

下载相关设置后,请按照以下步骤进行安装:

2.1在MacOS中安装

在MacOS中,双击下载的.dmg文件开始安装。 它将显示类似于以下所示的屏幕。 接受许可证并选择安装位置。 选择位置后,它将显示安装将占用的空间量,如下所示。

MySQL安装

单击安装后,将继续安装并安装MySQL服务器。 下一步是配置MySQL服务和root用户密码。 记住输入的密码很重要,因为它是创建更多用户所需的管理员密码。 配置服务名称和凭据,然后单击完成。

2.2在Windows中安装

Windows OS中的安装过程与MacOS非常相似。 执行您现在必须已经下载的.exe文件。 只要该exe与您的系统兼容,安装程序便会启动并顺利进行。

在Windows中安装MySQL Server

将会显示类似于上图所示的窗口。 提示时选择安装位置。 您可以选择仅继续安装服务器。 完全安装基本上也可以安装一堆SQL实用程序,这可能不是必需的。 安装完成后,下一步就是配置数据库服务器凭据。 配置凭据并完成安装过程。

2.3在Linux变体中安装

对于Linux变体,MySQL服务器安装程序以.deb文件形式提供。 .deb文件使您可以按照上述类似的方式完成该过程。 但是,对于喜欢命令行的人,也可以使用命令行安装mysql服务器。 MySQL服务器可通过apt,yum和zypper存储库使用 。 此外,我们将讨论使用apt信息库安装MySQL服务器。

为了设置apt信息库以安装MySQL服务器,请执行以下步骤并执行必要的命令。

  1. 从此链接中选择正确的apt软件包名称。 名称格式为mysql-apt-config_x.x.xx-x_all.deb。
  2. 下载相应的包
  3. 下载后,执行以下命令。
    $ sudo dpkg -i /PATH/version-specific-package-name.deb
  4. 在上述软件包的安装过程中,提示安装时输入要安装的版本
  5. 配置完成后,运行以下命令更新apt信息库。
    $ sudo apt-get update
  6. 要最终安装MySQL服务器,请执行以下命令。
    sudo apt-get install mysql-server
  7. 安装后,服务器将通过启动相关服务自动启动。 您可以使用以下命令检查状态。
    sudo service mysql status

3.连接到MySQL数据库

命令行在启动每个应用程序时都面临挑战。 即使对于MySQL,您也可能面临挑战,尤其是在MacOSX方面。 首先,我们将了解如何在Windows中使用命令行连接到MySQL数据库。

3.1使用Windows命令提示符连接到MySQL数据库服务器

连接到MySQL服务器之前,您需要确保相关服务已启动并正在运行。 为了检查,通过在开始菜单中搜索服务并检查MySQL56服务的服务列表,导航到服务列表。 服务状态指示MySQL服务器是启动还是停止。 一旦确定它正在运行,我们可以使用命令提示符连接到服务器。 Windows命令主要在PATH环境变量上起作用。 只要路径环境变量具有MySQL安装的bin位置条目,就可以直接使用所有mysql命令。 如果没有MySQL安装路径的条目,则可以导航到MySQL Server安装文件夹。 进入bin文件夹,然后从该文件夹中打开终端。

进入终端后,需要输入以下命令:

> mysql -u root -p

这应该使用上面命令中指定的用户名root连接到mysql服务器。 它将要求输入密码,如-p标志所示。 输入开头配置的密码,您将看到如下所示的MySQL提示。

MySQL客户端

该提示使您可以使用简单的SQL查询与MySQL数据库进行交互。 我们将在后面的部分中看到相同的内容。

您还可以使用mysql命令连接到其他远程数据库,并使用终端与远程数据库进行交互。 为此,您需要使用以下命令。 在命令中传递的属性很容易解释。

> mysql --host=localhost --user=myname --password=password mydb

3.2使用Linux Terminal连接到MySQL数据库服务器

使用Linux终端连接到MySQL服务器与使用Windows命令提示符连接到它非常相似。 首先,请确保MySQL服务器已启动并正在运行。 为了检查MySQL服务器的进程确实在运行,请键入以下命令:

$ ps -eF|grep mysql

该命令提供了正在运行的MySQL进程的列表。 查找除刚刚执行的grep进程以外的进程。 如果MySQL服务器未运行,则可以在大多数发行版中使用以下命令启动它。

$ service mysqld start

服务器启动后,键入以下命令以root用户身份连接到数据库。

$ mysql -u root -p

输入密码,您应该能够看到类似于上面显示的提示。 如上所示,应该允许您在窗口中进入类似的MySQL提示符。

3.3使用MacOS终端连接到MySQL数据库服务器

在MacOS中,考虑到UI角度,启动和停止服务器的过程非常不同。 在MacOS中,为了检查状态或启动或停止服务器,您需要转到“ 系统偏好设置” 。 在系统偏好设置中,您应该能够在底部区域中找到MySQL图标,如下所示。

MacOS系统偏好设置

单击MySQL图标,以查看服务状态。 将显示类似于以下所示的窗口。 只需单击按钮,即可从此处停止或启动服务器。

MacOS MySQL服务器

如上图所示,还可以直接从上面的窗口重新初始化数据库并为root设置新密码。 为了重置密码并重新初始化数据库,只需单击“初始化数据库”按钮。 它将要求输入新密码,一切准备就绪。

一旦确定服务器已启动并正在运行,下一步就是使用与上述相同的命令连接到数据库服务器。 输入下面显示的命令以连接到数据库服务器。

$ mysql -u root -p

4.连接到架构并执行查询

连接到数据库服务器后,就该执行查询了。 与操作系统无关,使用命令提示符进行查询的过程执行对于所有用户都是相同的。 本节将介绍与执行SQL查询有关的所有基本操作。

4.1创建和检查架构

使用MySQL数据库的第一步是创建一个架构。 使用以下命令创建架构。

mysql> create schema tutorial;

在这里,教程可以替换为您想要的模式名称。 为了执行查询,请在mysql提示符下键入它,如上所示。 键入后,只需按Enter。 它将给出一条成功消息,指出受影响的1行。 如果没有,请确保在查询后加上分号。 万一错过,将会有一个带有“>”箭头的提示。 如果出现这样的提示,则需要输入分号并按Enter。

因此,将创建一个新的架构。 为了确认相同,您可以使用以下命令查看架构列表。

mysql> show schemas;

MySQL模式清单

如上图所示,模式列表以格式化的控制台输出显示。 您可能会看到略有不同的输出,具体取决于您创建的模式的数量。 如果您精确地遵循了本教程,则列表应在列表中仅显示一个架构。

4.2选择架构并创建表

创建架构后,下一步是选择架构并在其中创建表。 要开始选择模式,请使用刚创建的模式名称执行以下命令。

mysql> use tutorial

请注意,在此语句中,语句末尾的分号不是真正必需的。 执行以上命令后,您应该能够看到输出Database Changed 。 选择数据库模式后,请使用以下命令验证选择。

mysql> select database() from dual;

该查询将以与上面所示类似的格式输出所选数据库的名称。 下一步是在架构中创建第一个表。 我们将考虑一个博客网站的用例来创建表格。 因此,使用以下查询创建两个表,用户和文章。

mysql> CREATE TABLE `tutorial`.`users` (`userid` INT NOT NULL,`name` VARCHAR(45) NULL,`email` VARCHAR(100) NULL,`password` VARCHAR(24) NULL, PRIMARY KEY (`userid`));
Table Created
mysql> CREATE TABLE `tutorial`.`articles`(`articleid` INT NOT NULL,`content` TEXT NULL,`userid` INT NULL,PRIMARY KEY (`articleid`), INDEX `user_fk_idx` (`userid` ASC),CONSTRAINT `user_fk` FOREIGN KEY (`userid`) REFERENCES `tutorial`.`users` (`userid`) ON DELETE NO ACTION ON UPDATE NO ACTION);
Table Created

一个接一个地执行查询。 执行每个查询之后,输出Table Created应该可用。 可以使用以下命令检查创建的表列表。

mysql> show tables;
+--------------------+
| Tables_in_tutorial |
+--------------------+
| articles           |
| users              |
+--------------------+
2 rows in set (0.00 sec)

mysql>

因此,它将在标题中显示具有模式名称的表的列表。

4.3使用MySQL命令行在表中添加和获取数据

将数据添加到表中非常简单。 我们将只向用户表添加数据以使其简单。 执行以下查询以将数据添加到users表。

mysql> insert into users values (1,'Abhishek', 'abcd@javacodegeeks.com','mysql123');
Query OK, 1 row affected (0.08 sec)

mysql> insert into users values (2,'Dennis', 'denis@javacodegeeks.com','mysql123');
Query OK, 1 row affected (0.04 sec)

mysql>

上面的查询也显示了相关的输出。 成功插入记录后,您可以使用选择查询来检查表中表中的数据。 执行以下查询以从用户表中获取记录列表。

mysql> select * from users;
+--------+----------+-------------------------+----------+
| userid | name     | email                   | password |
+--------+----------+-------------------------+----------+
|      1 | Abhishek | abcd@javacodegeeks.com  | mysql123 |
|      2 | Dennis   | denis@javacodegeeks.com | mysql123 |
+--------+----------+-------------------------+----------+
2 rows in set (0.00 sec)

从这里可以看到,命令行以控制台格式的输出显示记录列表。 列名成为表的标题,其余行成为记录。 同样,可以使用命令提示符执行几乎所有的SQL查询。

4.4更新和删除记录

一旦我们在表中有了记录,就可能需要在需要时更新或删除记录。 这可以通过使用更新和删除SQL查询来实现,如进一步说明。 在上面显示的记录中考虑用户Dennis。 可以看出,电子邮件ID对于Dennis具有拼写错误。 让我们使用更新查询进行更正。

mmysql> update users set email='dennis@javacodegeeks.com' where userid=2;
Query OK, 1 rows affected (0.39 sec)
Rows matched: 1  Changed: 1  Warnings: 0

与删除记录类似,在where子句中使用带有相应用户ID的delete查询。

mysql> delete from users where userid=2;
Query OK, 1 rows affected (0.50 sec)

4.5检查数据库表结构

在开发过程中的某些时候,您可能需要了解某个数据库表的结构。 数据库结构基本上是列列表和列的数据类型。 可以使用以下命令获取任何表的结构。

mysql> desc articles;

执行该命令后,将获得类似于以下所示的输出。 可以看出,它提供了有关数据类型,主键,默认值的详细信息,并且如果应用的话还提供了非null约束。

mysql> desc articles;
+-----------+---------+------+-----+---------+-------+
| Field     | Type    | Null | Key | Default | Extra |
+-----------+---------+------+-----+---------+-------+
| articleid | int(11) | NO   | PRI | NULL    |       |
| content   | text    | YES  |     | NULL    |       |
| userid    | int(11) | YES  | MUL | NULL    |       |
+-----------+---------+------+-----+---------+-------+
3 rows in set (0.00 sec)

4.6预定义的MySQL函数

有时,我们希望某些任务可以在数据库中完成。 例如,我们希望计算用户数或检查当前日期和时间。 MySQL数据库预先打包有这些功能。 要检查上表中的用户数,只需执行以下查询。

mysql> select count(1) from users;

它将返回表中的用户记录数。 同样,可以使用以下查询检查当前日期和时间。

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2018-05-18 11:59:03 |
+---------------------+
1 row in set (0.00 sec)

因此,它以上述格式显示当前日期和时间。 now()函数可用于自动设置记录的创建时间或更新时间。 除了这些功能外,还有许多其他功能,例如min(), max() , avg() , sum() and few others.

5. MySQL管理

MySQL数据库管理涉及多个任务。 但是,在这里,我们将讨论三个简单的任务,即–创建用户,向用户分配许可并删除用户。 为了创建用户,请在开始时选择mysql数据库。 选择数据库后,执行以下查询以接收输出,如下所示。

mysql> create user 'newuser'@'localhost' identified by 'newpassword';
Query OK, 0 rows affected (0.06 sec)

用户的权限可以根据要求有选择地分配。 为了将所有权限分配给新创建的用户,请执行以下查询并验证输出。

mysql> grant all on tutorial.* to 'newuser'@'localhost';
Query OK, 0 rows affected (0.04 sec)

提供授权后,您可以退出提示并尝试使用新用户进行连接。 为了退出并使用新用户重新连接,请执行以下查询。

mysql> exit
Bye
MacBook-Air:bin abhishekkothari$ ./mysql -u newuser -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 8.0.11 MySQL Community Server - GPL

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

成功登录后,尝试检查架构列表。 如果以前像我一样在数据库中有其他架构,您会注意到架构列表不会显示所有架构。 输出将类似于以下所示。 第一个模式information_schema是每个用户的通用MySQL模式。 显示的第二个模式是为其提供了查看用户所需的许可的模式。

mysql> show schemas;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| tutorial           |
+--------------------+
2 rows in set (0.00 sec)

为了删除用户,请退出命令提示符并使用root用户重新登录。 要删除最近创建的用户,请执行以下查询。

mysql> drop user 'newuser'@'localhost'
    -> ;
Query OK, 0 rows affected (0.07 sec)

为了确认删除用户,您可以退出并尝试使用同一用户再次登录。 您将被拒绝此权限。 因此,我们可以创建和删除用户以及管理提供给用户的权限。

六,结论

本文详细介绍了每种流行操作系统的MySQL服务器安装过程。 除了讨论安装过程之外,还讨论了在每个操作系统中将MySQL数据库与命令行一起使用的基本知识。 因此,本文为任何开发人员提供了使用MySQL数据库服务器的入门知识。 但是,这还没有结束。 对于那些发现命令行工具笨拙并喜欢GUI而不是命令行的用户,请查看本文以了解最流行的MySQL数据库GUI工具– MySQL工作台。

翻译自: https://www.javacodegeeks.com/2018/05/mysql-server-tutorial.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值