Linux下的MySQL安装与使用详解

一、关于数据库

1、什么是数据库

Linux下的MySQL安装与使用详解

 

如果一个项目是动态(内容会变化的,网页后缀.jsp、.php、.shtml等)内容的话,则数据库是必不可少的一个环节。

2、MySQL简介

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,2008年被Sun公司收购,目前属于 Oracle 旗下产品。MySQL 是最流行的数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。其和php是黄金搭档LAMP/LNMP

3、常见的其他数据库软件

目前市场上还有:Oracle(重量级的数据库)、MS SQL Server(微软)、Access(微软)、PostgreSQL、DB2、Mariadb(MySQL分支,完全兼容MySQL)。

 

二、MySQL的安装与初始化

操作之前先确保计算机时间准确。

1、Linux下的软件安装方式(初步

a. 源码包(建议)

         优点

开源,如果有足够的能力,可以修改源代码

编译安装,更加适合自己的系统,稳定高效

缺点

安装步骤较多,容易出错

编译过程时间较长

 

案例:使用源码编译安装方式安装ncurses(一种常用的终端库)

扩展:解包

常用语法:

           #tar  -zxvf  *.tar.gz          (大多数)

           #tar  -jxvf  *.tar.bz2

选项含义:

-z或--gzip或--ungzip:通过gzip指令处理文件

-x或--extract或--get:从文件中还原文件;

-v:显示操作过程;

-f或--file:指定一个文件;

-j:支持bzip2解压文件;

①先将软件包传递到服务器上“/usr/local/src”

Linux下的MySQL安装与使用详解

 

②解压需要安装的源码包

# tar -zxvf ncurses-6.1.tar.gz

Linux下的MySQL安装与使用详解

 

③切换到源码文件夹,然后执行后续操作

配置(config/configure/bootstrap编译(make/bootstrapd安装(make install/bootstrapd install

 

配置操作主要是指定软件的安装目录、需要的依赖在什么地方、指定不需要可选依赖、配置文件的路径、通用数据存储位置等等。

指定安装的路径:--prefix=路径

需要依赖的路径:--with-PACKAGE名=[包所在的路径]

不需要依赖:--without-PACHAGE名

 

# ./configure --prefix=/usr/local/ncurses

Linux下的MySQL安装与使用详解

# make

Linux下的MySQL安装与使用详解

# make install

Linux下的MySQL安装与使用详解

 

成功之后查看目录(可选):

Linux下的MySQL安装与使用详解

 

 

 

 

b. 二进制包(rpm)

         优点: 包管理系统简单,只需要几个命令就可以实现包的安装,升级,查询和卸载

缺点: 经过编译,不再可以看到源代码

 

回顾rpm相关指令:

#rpm -qa|grep 关键词

#rpm -e 关键词 [--nodeps]

#rpm -ivh 完整名称

#rpm -Uvh 完整名称

#rpm -qf 文件路径                          【查询指定文件属于哪个包】

Linux下的MySQL安装与使用详解

 

案例:使用二进制包安装lynx(一款纯命令行的浏览器)

在光盘中就有这个包

Linux下的MySQL安装与使用详解

 

例如查看百度:#lynx --dump www.baidu.com

 

c. yum等傻瓜式安装

         优点: 安装简单,快捷

缺点: 完全丧失了自定义性

注意:如果不更改软件来源的情况下,是需要联网才能使用yum的。

 

常用的yum指令:

#yum  list   [installed]          列出当前已经装的和可以装的软件(全部)

#yum  search  名                 搜索指定的关键词的包

#yum  [-y]  install   包名        安装指定的包(-y表示允许不再确认)

#yum  [-y]  update  [包名]           更新指定的包,不指定包则更新全部软件

#yum  [-y]  remove  包名       卸载指定的包

 

案例:使用yum指令卸载火狐浏览器

#yum remove firefox

Linux下的MySQL安装与使用详解

 

案例:使用yum指令安装火狐浏览器

#yum install firefox

 

2、安装MySQL(重点)

注:此处安装以yum安装为例

2.1、MySQL安装

#yum install mysql-server

Linux下的MySQL安装与使用详解

 

完成的:

Linux下的MySQL安装与使用详解

 

2.2、MySQL初始化

#service mysqld start

Linux下的MySQL安装与使用详解

查看端口号(默认端口号3306):

Linux下的MySQL安装与使用详解

 

# mysql_secure_installation

Enter current password for root (enter for none):请输入当前root用户的密码,如果没有按回车,注意此root并非linux的root用户。

 

Set root password?是否设置root密码?

需要设置的密码:qhabOfhlluB9

 

Remove anonymous users?是否移除匿名用户,选择移除(Y)

 

Disallow root login remotely?是否不允许root远程登录(默认不允许)

 

Remove test database and access to it?是否移除测试数据库(建议先不移除)

 

Reload privilege tables now?是否重新加载权限表(当我们更改了mysql用户相关的信息之后建议去重载权限)

Linux下的MySQL安装与使用详解

2.3、MySQL的启动控制

语法:service mysqld start/stop/restart

 

进入mysql的方式:

#mysql  -u用户名  -p

 

退出MySQL到linux命令行:

mysql > exit

2.4、默认目录/文件位置(了解)

数据库存储目录:/var/lib/mysql

配置文件:/etc/my.cnf

Linux下的MySQL安装与使用详解

三、MySQL的基本操作(难点)

1、名词介绍

以Excel文件举例:

数据库:可以看作是整个excel文件。

数据表:可以看作是一个excel文件中的工作表。

行(记录):可以看作是一个工作表中的一行

列(字段):可以看作是一个工作表总的一列

2、库操作(重点)

以下命令在MySQL终端命令行中执行(大小写均可):

SHOW DATABASES;                             显示当前MySQL中全部的数据库

CREATE DATABASE 库名;                       创建数据库

DROP DATABASE 库名;                         删除数据库

USE 库名;                                   切换数据库

 

Show databases效果

 

Linux下的MySQL安装与使用详解

 

创建数据库:创建yunwei数据库

Linux下的MySQL安装与使用详解

 

删除数据库:删除yunwei数据库

Linux下的MySQL安装与使用详解

 

切换数据库:切换到test数据库

Linux下的MySQL安装与使用详解

 

3、表操作

SHOW TABLES;                          显示当前数据库中所有的表名(必须先use数据库)        

CREATE TABLE 表名称                                  在当前数据库下创建数据表

(

列名称1 数据类型 [NOT NULL AUTO_INCREMENT],

列名称2 数据类型,

列名称3 数据类型,

....,

PRIMARY KEY(主键字段名)

);

常见的数据类型:int(整型)、char(定长字符)、varchar(不定长字符)。

主键一般就是序号所在的那一列(主键不能重复)。

DESC 表名;                                  描述一个数据表(查看表结构)

DROP TABLE [IF EXISTS] 表名;                         删除一个数据表

 

案例:使用上述的语法

查看所有的数据表

Linux下的MySQL安装与使用详解

 

创建数据表(去test库中创建)

要求:表名xg,要求有字段如下:

         Id字段,11位整型,不为空,自增,主键

         Username字段,varchar类型,20长度

         Password字段,char类型,32长度

SQL(standard query language)语句:

Create table xg(

         Id int(11) not null auto_increment,

Username varchar(20),

Password char(32),

Primary key(id)

);

 

Linux下的MySQL安装与使用详解

 

查看表结构:

Linux下的MySQL安装与使用详解

 

删除数据表:

Linux下的MySQL安装与使用详解

4、记录/字段操作(重点)

4.1、增加记录

语法1:INSERT INTO 表名称 VALUES (1, 2,....);
语法2INSERT INTO 表名称 (1, 2,...) VALUES (1, 2,....);

 

案例:往数据表xg表中新增一个记录username为zhangsan,password为123456(加密结果E10ADC3949BA59ABBE56E057F20F883E)

Sql语句:

insert into xg (username,password) values (‘zhangsan’,’E10ADC3949BA59ABBE56E057F20F883E’)

Linux下的MySQL安装与使用详解

 

要求前面的列名与值要一一对应。

4.2、更新记录

语法:UPDATE 表名称 SET 列名称1 = 新值1,列名称2 = 新值2… WHERE 列名称 = 某值;

案例:使用更新语句更新id大于等于2的记录,将其密码改为:25F9E794323B453885F5181F1B624D0B

SQL语句:

Update xg set password = ‘25F9E794323B453885F5181F1B624D0B’ where id >= 2;

Linux下的MySQL安装与使用详解

 

以后在执行影响行数的sql操作的时候一定需要注意条件是否写错或者漏写。

4.3、查询记录

SELECT 列名称1,列名称2… FROM 表名称 WHERE 条件;

SELECT * FROM 表名称 WHERE 条件;

案例:查询刚才新增的记录

只查询用户名和密码,并且是id=2的:

Select username,password from xg where id = 2;

Linux下的MySQL安装与使用详解

 

查询全部:

Select * from xg;

Linux下的MySQL安装与使用详解

4.4、删除记录

DELETE FROM 表名称 WHERE 列名称 = ;

 

案例:删除id为2的记录

Delete from xg where id = 2;

Linux下的MySQL安装与使用详解

5、备份与还原(重点)

5.1、备份(导出)

全量备份(数据+结构):#mysqldump -uroot -p123456 -A > 备份文件路径

指定库备份(数据+结构):# mysqldump -uroot -p123456 库名 > 备份文件路径

多个库备份(数据+结构):# mysqldump -uroot -p123456 --databases db1 db2 >  备份文件路径

 

案例:备份整个库

# mysqldump -uroot -pqhabOfhlluB9 -A > /root/sql_201804061609.sql

Linux下的MySQL安装与使用详解

 

案例:每1分钟自动备份1test数据库

Linux下的MySQL安装与使用详解

 

计划任务编写:

Linux下的MySQL安装与使用详解

 

等待几分钟观察目录情况:

Linux下的MySQL安装与使用详解

5.2、还原(导入)

还原部分分1mysql命令行source方法 2)系统命令行方法

1.还原全部数据库:

(1) mysql命令行:mysql> source 备份文件路径

(2) 系统命令行: #mysql -uroot -p123456 < 备份文件路径

2.还原单个数据库(需指定数据库)

(1) mysql> use 库名

mysql> source 备份文件路径

(2) #mysql -uroot -p123456 库名 < 备份文件路径

3.还原单个数据库的多个表(需指定数据库)

(1) mysql> use 库名

mysql> source 备份文件路径

(2) mysql -uroot -p123456 库名 < 备份文件路径

4.还原多个数据库,(一个备份文件里有多个数据库的备份,此时不需要指定数据库)

(1) mysql命令行:mysql> source 备份文件路径

(2) 系统命令行: mysql -uroot -p123456 < 备份文件路径

 

案例1:人为删除xg表(模拟数据表丢失),然后通过最后一次备份还原数据表。

先删除数据表

Linux下的MySQL安装与使用详解

 

还原操作:

Linux下的MySQL安装与使用详解

 

案例2:需要还原sql文件到test库(mobile.sql 31万条数据)

Linux下的MySQL安装与使用详解

设置Mysql连接字符集:

         Mysql> set names utf8;                    【三码一致,服务器端+传输过程中+客户端

Linux下的MySQL安装与使用详解

 

 

四、扩展

1、mysql的远程管理工具

分为两大类:B/S架构、C/S架构。

B/S:B是指浏览器,S是指服务器。例如:百度搜索应用就属于BS架构软件。

C/S:C是指客户端,S是指服务器。例如:QQ、电脑端微信等应用程序都是CS架构。

 

在BS中,mysql有个典型的管理工具:PMA(phpMyAdmin)

Linux下的MySQL安装与使用详解

 

 

CS中比较典型的软件:navicat、mysql workbrach

Linux下的MySQL安装与使用详解

 

要解决的问题:允许mysql远程登录

Linux下的MySQL安装与使用详解

 

a. 先进入数据库选择mysql数据库;

b. 执行sql语句:select host,user from user;

Linux下的MySQL安装与使用详解

c. 将其中的一个记录的host值改为“%”,表示可以允许任何地方登录

Linux下的MySQL安装与使用详解

d. 刷新权限表或者重启mysql

         刷新权限:mysql> flush privileges;

Linux下的MySQL安装与使用详解

 

e. navicat登录成功

Linux下的MySQL安装与使用详解