IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> MySQL数据库 -> 正文阅读

[PHP知识库]MySQL数据库

1 关于数据库

在这里插入图片描述
如果项目是动态(内容会变化,网页后缀.jsp、.php、.shtml等)内容,则数据库是必不可少的一个环节。

2 MySQL的安装与初始化

2.1 Linux下的软件安装方式

2.1.1 源码包

优点:

  • 开源,可以修改源代码;
  • 编译安装,更加适合自己的系统,稳定高效。

缺点:

  • 安装步骤较多,容易出错;
  • 编译时间较长。

扩展:解包
常用语法:

#tar -zxvf *.tar.gz
#tar -jxvf *.tar.bz2

选项含义:

  • -z--gzip--ungzip:通过gzip指令处理文件;
  • -x--extract--get:从压缩文件中还原文件;
  • -v:显示操作过程;
  • -f--file:指定一个文件;
  • -j:支持bzip2解压文件。

实例:使用源码编译安装方式安装ncurses(一种常用的终端库)
(1) 通过ssh服务先将软件包传递到服务器上“/usr/local/src
在这里插入图片描述
(2) 解压需要安装的源码包

#tar -zxvf ncurses.tar.gz

在这里插入图片描述
(3) 切换到源码文件夹,然后执行后续操作

配置(config/configure/bootstrap)→编译(make/bootstrapd)→安装(make install/bootstrapd install
配置操作主要是指定软件的安装目录、需要的依赖在什么位置、指定不需要可选依赖、配置文件的路径、通用数据存储位置等。

  • 指定安装的路径:--prefix=路径
  • 需要依赖的路径:--with-PACKAGE名=包所在路径
  • 不需要依赖:--without-PACKAGE名
# cd ncurses-6.3
# ./configure --prefix=/usr/local/ncurses

在这里插入图片描述
编译:

# make

安装:

# make install

编译和安装一起执行

#make && make install

2.1.2 二进制包(rpm)

优点:包管理系统简单,只需要几个命令就可以实现包的安装,省级,查询和卸载;
缺点:经过编译,不能再看到源代码

rpm相关命令:

#rpm -qa | grep 关键词    【查询包】
#rpm -qf 文件路径         【查询指定文件属于哪个包】
#rpm 选项 软件包完整名称
#rpm -e 软件包名 --nodeps 【当存在依赖关系时,可以忽略依赖关系,强制卸载】
  • -i:install,安装
  • -v:显示进度条
  • -h:表示以“#”形式显示进度条
  • -e:卸载指定包名
  • -U:升级软件,若未软件尚未安装,则安装软件
  • -F:升级软件
  • -V:对RPM包进行验证

实例:使用二进制包安装lynx(一款纯命令行的浏览器),在光盘中就有这个包
光盘的解挂和挂载参考博客:Linux自有服务(2)
在这里插入图片描述
安装:
在这里插入图片描述
例如查看百度:

#lynx --dump www.baidu.com

其中--dump表示打印。
在这里插入图片描述

2.1.3 yum

优点:安装简单,快捷
缺点:完全丧失了自定义性
注意:如果不更改软件来源,则需要联网才能使用yum
常用的yum命令:

#yum list                【列出当前已经安装的和可以安装的软件(全部)】
#yum search 关键词       【搜索指定的关键词的包】
#yum [-y] install 包名   【安装指定的包(-y表示允许不再确认)】
#yum [-y] update [包名]  【更新指定的包,不指定包则更新全部软件】
#yum [-y] remove 包名    【卸载指定的包】

2.2 安装MySQL

此处安装以yum安装为例:

#yum install mysql-server

2.2.1MySQL初始化

启动:

#systemctl start mysqld

查看默认端口号(3306):

#netstat -tnlp

在这里插入图片描述

MySQL初始化命令:

# mysql_secure_installation

在这里插入图片描述

2.2.2 MySQL的启动控制

语法:#systemctl start/stop/restart
进入MySQL的方式:#mysql -u 用户名 -p
退出MySQL的Linux命令行:mysql>exit

2.2.3 默认目录/文件位置

数据库存储目录:/var/lib/mysql
配置文件:/etc/my.cnf

3 MySQL的基本操作

3.1 库操作

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

show databases;         【显示当前MySQL中全部的数据库】
create database 库名;  【创建数据库】
drop database 库名;    【删除数据库】
use 库名;              

3.2 表操作

show tables;【显示当前数据库中所有的表名(必须先use数据库)】
create table 表名(
列名称1 数据类型[not null auto_increment],
列名称2 数据类型,
...,
primary key(主键)
);【在当前数据库下创建数据表】
desc 表名                      【描述一个数据表(查看表结构)】
drop table [if exists] 表名    【删除一个数据表】
  • 常见的数据类型:int(整型),char(定长字符),varchar(不定长字符)
  • 主键不能重复

创建数据表(去test库中创建),要求:表名test_table,字段如下:
id字段,11位整型,不为空,自增,主键
username字段,varchar类型,20长度
password字段。char类型,32长度
SQL(standard query language)语句:

create table testTable(
id int(11) not null auto_increment,
username varchar(20),
password char(32),
primary key(id)
);

在这里插入图片描述
查看表结构:
在这里插入图片描述
删除数据表:
在这里插入图片描述

3.3 记录/字段操作

3.3.1 增加记录

语法1:insert into 表名称 values (值1, 值2, ...);
语法2:insert into 表名称 (列1, 列2, ...) values (值1, 值2, ...);

实例:往数据表testTable表中新增一个记录username为zhangsan,password为123456。
SQL语句:

insert into testTable (username, password) values ('zhangsan', '123456');

3.3.2 查询记录

select 列名称1,列名称2,... from 表名称 where 条件;
select * from 表名称 where 条件;

实例:查询刚才新增的记录,且只查询用户名和密码,id = 1。

select username password from testTable where id = 1;

在这里插入图片描述

3.3.3 更新记录

语法:update 表名称 set 列名称1 = 值1,列名称2 = 值2, ... where 列名称 = 某值;

实例:使用更新语句更新id大于等于2的记录,将其密码改为:12345678。
SQL语句:

update testTable set password = '1234578' where id >= 2;

在这里插入图片描述

3.3.4 删除记录

delete from 表名称 where 列名称 = 值;

实例:删除id为2的记录

delete from testTable where id = 2;

在这里插入图片描述
注:即使删除数据表中所有的记录,下一个插入的数据项的id仍为4(索引)。

3.3.5备份与还原

3.3.5.1 备份(导出)

全量备份(数据+结构):#mysqldump -uroot -p密码 -A > 备份文件路径
指定库备份(数据+结构):#mysqldump -uroot -p密码 库名 > 备份文件路径
多个库备份(数据+结构):#mysqldump -uroot -p密码 --databases db1 db2 > 备份文件路径
实例:备份整个库

#mysqldump -uroot -p密码 -A > /root/sql_20220430.sql

实例:每1分钟自动备份1次test数据库
(1) shell脚本
在这里插入图片描述

(2) 编写计划任务

crontab -e

在这里插入图片描述
在这里插入图片描述

3.3.5.2 还原(导入)

还原命令分为:(1) mysql命令行source方法;(2) 系统命令行方法。

  1. 还原全部数据库
    (1) mysql命令行:mysql> source 备份文件路径
    (2) 系统命令行:#mysql -uroot -p密码 < 备份文件路径
  2. 还原单个数据库(需指定数据库)
    (1) mysql命令行
mysql> use 库名
mysql> source 备份文件路径

(2) 系统命令行:#mysql -uroot -p密码 库名 < 备份文件路径
3. 还原单个数据库的多个表(需指定数据库)
(1) mysql命令行

mysql> use 库名
mysql> source 备份文件路径

(2) 系统命令行:#mysql -uroot -p密码 库名 < 备份文件路径
4. 还原多个数据库(一个备份文件里有多个数据库,此时不需要指定数据库)
(1) mysql命令行:mysql> source 备份文件路径
(2) 系统命令行:#mysql -uroot -p密码 < 备份文件路径

实例:人为删除testTable表(模拟数据库丢失),然后通过最后一次备份还原数据表。
先删除数据表:
在这里插入图片描述
还原操作:
在这里插入图片描述
扩展:设置MySQL连接字符集

mysql> set names utf8;

注:需保证“三码一致”才能正常显示中文字符,“三码”是指:服务器端+传输过程+客户端。

4 扩展

4.1 MySQL的远程管理工具

分为两大类:B/S架构、C/S架构
B/S:B是指浏览器,S是指服务器。例如百度搜索应用就属于BS架构软件。
C/S:C是指客户端,S是指服务器。例如:QQ、电脑端微信等应用程序都是C/S架构。

在B/S中,MySQL有个典型的管理工具:PMA(PHPmyadmin);
C/S中比较典型的软件:Navicat、MySQL workbranch。

在连接之前,需打开防火墙或在指定区域打开端口(记得重启防火墙):

#firewall-cmd --zone=public --remove-port=3306/tcp --permanent
#firewall-cmd --reload

在这里插入图片描述

然后,需要允许MySQL远程登录,否则:
在这里插入图片描述
(1) 先进入数据库选择mysql数据库;
(2) 执行SQL语句:select host, user from user;
在这里插入图片描述
(3) 将其中的一个记录的host值改为“%”,表示可以允许任何地方登录。
在这里插入图片描述
(4) 刷新权限表或重启MySQL
刷新权限:mysql> flush privileges;
(5) 登录成功
在这里插入图片描述

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 10:57:56  更:2022-05-05 10:58:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 7:49:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码