热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux架构学习第二十八天之Mysql/MariaDB数据库入门

内容:1、数据库简介以及mysqlmariadb背景介绍2、数据库的一些名词3、mysql的服务结构4、mysql客户端的使用5、数据类型6、SQL语句介绍7、mysql的事务机制

内容:

1、数据库简介以及mysql/mariadb背景介绍

2、数据库的一些名词

3、mysql的服务结构

4、mysql客户端的使用

5、数据类型

6、SQL语句介绍

7、mysql的事务机制


一、数据库简介以及mysql/mariadb背景介绍

数据可以存放在多种位置,如普通文件、专门的数据库中,而两者有什么区别,而为什么选择数据库存储?我们知道,假如数据存在普通文件中,当我们要查找其中的一个数据时,要把整个文件加载到内存中,再进行检索,这样速度慢不说,一旦文件较大,直接把内存撑爆了,而数据库的查询可以只加载符合条件的内容。

数据库常见的有三种模型:

网状模型

层次模型

关系模型

关系模型是一个二维关系:表

行:row

列:column

索引:数据结构,辅助完成数据查找的;

mysql是一个广泛使用的关系型数据库:

1、MySQL由瑞典MySQL AB 公司开发,目前属于 Oracle(被收购) 

2、MySQL是目前最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational DatabaseManagement System,关系数据库管理系统) 应用软件之一。

3、MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

4、MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。                                   

5、MySQL 软件采用了双授权政策:它分为社区版和商业版。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache(nginx) 可组成良好的开发环境


mysql与MariaDB的关系:

    (1)因为mysql被sun公司给收购了,而sun公司又被oracle公司给收购了,而oracle是一个商业数据库公司,创始人担心MySQL会存在闭源风险,因此用mysql的源代码创立了MariaDB。

    (2)MariaDB名字来源于创始人的三女儿,而MysDB则是源于创始人的大女儿。

    (3)目前centos7的base源中MariaDB已经替代了mysql称为默认的数据库类型。

二、数据库的一些名词:

名词:

数据库:database

表:table

索引:index

视图:view

行:row

列:column

主键:primary key 

外键:foreign key

唯一键:unique key 

字符集:character  

排序:collate


三、mysql的服务结构:

MySQL是单进程,多线程的工作方式 

mysql是一个C/S的架构:

C:client

mysql:CLI交互式客户端程序 

mysqldump:备份工具

mysqladmin:管理工具

S:server

可以监听三类套接字地址:

ipv4

ipv6

unix sock:只监听本机的客户端响应


其服务端的结构可以简单分为三个层次:

技术分享

第一层,即最上一层,它们都是服务于C/S程序或者是这些程序所需要的 :接受用户请求,身份验证,安全性等等。

第二层,这是MySQL的核心部分。通常叫做 SQL Layer。在 MySQL据库系统处理底层数据之前的所有工作都是在这一层完成的,包括权限判断, sql解析,行计划优化, query cache 的处理以及所有内置的函数(如日期,时间,数学运算,加密)等等。各个存储引擎提供的功能都集中在这一层,如存储过程,触发器,视 图等。

第三层,包括了存储引擎。通常叫做StorEngine Layer ,也就是底层数据存取操作实现部分,由多种存储引擎共同组成。它们负责存储和获取所有存储在MySQL中的数据。就像Linux众多的文件系统 一样。每个存储引擎都有自己的优点和缺陷。服务器是通过存储引擎API来与它们交互的。这个接口隐藏 了各个存储引擎不同的地方。对于查询层尽可能的透明。这个API包含了很多底层的操作。如开始一个事物,或者取出有特定主键的行。存储引擎不能解析SQL,互相之间也不能通信。仅仅是简单的响应服务器的请求。


四、mysql客户端的使用:

命令行交互式客户端程序:mysql

连接数据库:mysql [OPTIONS] [database]

常用选项:

-uUSERNAME

-hHOST

-p[PASSWORD]

-Ddb_name:连接并使用指定的数据库作为默认数据库

--socket=path, -S path:指定套接字方式

--port=port_num, -P port_num:指定端口

--execute=statement, -e statement:无需登录到mysql而是把一些执行的结果返回

命令:

客户端命令

mysql> help

\u db_name:设定默认数据库;

\q:退出客户端;

\d CHAR:自定义语句结束符,默认为分号; 

\g:语句结束标记,将命令发往服务端运行;

\G:语句结束标记,将命令发往服务 端运行,行数据纵向显示;

\! SHELL_COMMAND:可以执行shell的命令

\s:连接状态及服务器运行状态

\. /path/to/some_sql_script:运行SQL脚本

...

服务端命令:发往服务器端执行的SQL语句

(1) 语句结束符,默认是分号(;)

(2) 建立了与某服务器有效通信连接;

五、数据类型:

表:由行和列组成,定义列时需要选定合适的数据类型,同时需要满足符合范式设计的要求;

字符型:

定义字符型:CHAR(#),BINARY(#)

变长字符型:VARCHAR(#) ,VARBINARY(#)

对象存储:TEXT,BLOB

内建:ENUM,SET 

注意:所有字符型数据要使用引号;

数值型:

精确数值:INT 

近似数值:FLOAT,DOUBLE

注意:不能使用引号;

日期时间型:

DATE,TIME,DATETIME,TIMESTAMP,YEAR

六、SQL语句:

DDL:数据定义语言,主要用于管理库组件,例如数据库、表、索引、视图、用户、存储过程、存储函数、触发器、……

CREATE,ALTER,DROP

DML:数据操纵语言,主要用于管理表中数据,实现数据CRUD操作

DCL:管理授权

获取帮助:

mysql> help KEYWORD

数据库管理:

创建:

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name  

修改:

ALTER DATABASE

删除:

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

表管理:

表创建:

CREATE TABLE [IF NOT EXISTS] tbl_name (create_defination) [table options]

create_defination:由逗号分隔的列表

字段定义:

colume_name COLUMN DEFINATION

约束:

PRIMARY KEY 

UNIQUE KEY 

FOREIGN KEY 

CHECK(expr)

索引:

{INDEX|KEY}  

{FULLTEXT|SPATIAL}

column_definition:

data_type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY]

[table options]

ENGINE [=] engine_name

……

查看数据库所支持所有存储引擎类型:

mysql> SHOW ENGINES;

查看表的属性信息:

SHOW TABLE STATUS [WHERE Name=‘tbl_name‘][LIKE PATTERN]

修改:

ALTER  TABLE tbl_name [alter_specification [, alter_specification] ...]

alter_specification:

(1) 表选项

table_options

(2)表组成

字段:

ADD col_name DATA_TYPE [FIRST|AFTER col_name]

DORP [COLUMN] col_name

CHANGE 

MODIFY

索引:

ADD INDEX(col1, col2, ...)

DROP INDEX index_name;

键:

ADD {PRIMARY|UNIQUE|FOREIGN} key (col1, col2, ...)

DROP {PRIMARY|UNIQUE|FOREIGN} KEY key_name

删除:

DROP TABLE [IF EXISTS] tbl_name [, tbl_name]

索引管理:

创建:

CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name  ON tbl_name (index_col_name,...)


index_col_name:

col_name [(length)] [ASC | DESC]

删除:

DROP INDEX index_name ON tbl_name

查看:

SHOW {INDEX | INDEXES | KEYS} {FROM | IN} tbl_name [{FROM | IN} db_name] [WHERE expr]

DML:INSERT, DELETE, UPDATE,SELECT

INSERT INTO:

INSERT  [INTO] tbl_name [(col_name,...)] {VALUES | VALUE} ({expr | DEFAULT},...),(...),...

SELECT:

(1) SELECT * FROM tbl_name;

(2) SELECT col1, col2, ... FROM tbl_name;

字段:column_name [AS Alias]

(3) SELECT col1, col2, ... FROM tbl_name WHERE CLUASE;

WHERE CLAUSE:过滤条件

col_name 操作符 value|col_name;

操作符:

>, <, >=, <=, =, !=

组合多个条件:

and, or, not

操作符(2):

BETWEEN ... AND ...

LIKE ‘PATTERN‘:

通配符:

_:

%:

RLIKE ‘PATTERN‘

正则表达式模式;

IS NULL

IS NOT NULL

(4) SELECT col1, ... FROM tbl_name [WHERE CLAUSE] ORDER BY col1, col2, ... [ASC|DESC];

DELETE:

DELETE  FROM tbl_name [WHERE where_condition] [ORDER BY ...] [LIMIT row_count]

UPDATE:

UPDATE table_reference SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...

[WHERE where_condition]

[ORDER BY ...]

[LIMIT row_count]


演示:

A、DDL定义语言命令包含如下:

1、CREATE

2、ALTER

3、DROP

1、CREATE:

1.1:创建数据库

MariaDB [(none)]> SHOW DATABASES; #查看所有数据库(需要有指定权限)
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.01 sec)
MariaDB [(none)]> CREATE DATABASE nihao;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| nihao              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)

1.2、创建表

MariaDB [(none)]> SELECT DATABASE(); #内建函数,查看当前的数据库
+------------+
| DATABASE() |
+------------+
| NULL       |
+------------+
1 row in set (0.00 sec)
MariaDB [(none)]> USE nihao; #切换默认的数据库
Database changed
MariaDB [nihao]> CREATE TABLE users(id INT UNSIGNED NOT NULL PRIMARY KEY,name CHAR(50) NOT NULL,gender ENUM(‘F‘,‘M‘));
Query OK, 0 rows affected (0.31 sec)
MariaDB [nihao]> SHOW TABLES;
+-----------------+
| Tables_in_nihao |
+-----------------+
| users           |
+-----------------+
1 row in set (0.00 sec)
MariaDB [nihao]> DESC users; #查看表的详细信息
+--------+------------------+------+-----+---------+-------+
| Field  | Type             | Null | Key | Default | Extra |
+--------+------------------+------+-----+---------+-------+
| id     | int(10) unsigned | NO   | PRI | NULL    |       |
| name   | char(50)         | NO   |     | NULL    |       |
| gender | enum(‘F‘,‘M‘)    | YES  |     | NULL    |       |
+--------+------------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
MariaDB [nihao]> SHOW TABLE STATUS FROM nihao\G  #查看数据库的详细信息
*************************** 1. row ***************************
           Name: users
         Engine: InnoDB
        Version: 10
     Row_format: Compact
           Rows: 0
 Avg_row_length: 0
    Data_length: 16384
Max_data_length: 0
   Index_length: 0
      Data_free: 10485760
 Auto_increment: NULL
    Create_time: 2016-10-14 11:22:12
    Update_time: NULL
     Check_time: NULL
      Collation: latin1_swedish_ci
       Checksum: NULL
 Create_options: 
        Comment: 
1 row in set (0.00 sec)


        2、ALTER 修改表

MariaDB [nihao]> ALTER TABLE users RENAME user;

Query OK, 0 rows affected (0.29 sec)


MariaDB [nihao]> SHOW TABLES;

+-----------------+

| Tables_in_nihao |

+-----------------+

| user            |

+-----------------+

1 row in set (0.01 sec)


3、DROP

3.1删除表:

MariaDB [nihao]> SHOW TABLES;
+-----------------+
| Tables_in_nihao |
+-----------------+
| user            |
+-----------------+
1 row in set (0.01 sec)
MariaDB [nihao]> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| nihao      |
+------------+
1 row in set (0.00 sec)
MariaDB [nihao]> SHOW TABLES;
+-----------------+
| Tables_in_nihao |
+-----------------+
| user            |
+-----------------+
1 row in set (0.00 sec)
MariaDB [nihao]> DROP TABLE user; #删除表
Query OK, 0 rows affected (0.01 sec)


3.2、删除数据库:

MariaDB [nihao]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| nihao              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)
MariaDB [nihao]> DROP DATABASE nihao;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)


B、DML操纵语言命令如下

    1、INSERT

    2、DELETE

    3、SELECT

    4、UPDATE

1、INSERT 插入数据

MariaDB [nihao]> INSERT INTO users(id,name,gender) VALUES (1,‘tom‘,‘M‘),(2,‘hill‘,‘M‘);
Query OK, 2 rows affected (0.01 sec)
Records: 2  Duplicates: 0  Warnings: 0
MariaDB [nihao]> SELECT * FROM users;
+----+------+--------+
| id | name | gender |
+----+------+--------+
|  1 | tom  | M      |
|  2 | hill | M      |
+----+------+--------+
2 rows in set (0.00 sec)


2、DELETE 删除数据

MariaDB [nihao]> DELETE FROM users WHERE name=‘tom‘;
Query OK, 1 row affected (0.00 sec)
MariaDB [nihao]> SELECT * FROM users;
+----+------+--------+
| id | name | gender |
+----+------+--------+
|  2 | hill | M      |
+----+------+--------+
1 row in set (0.00 sec)
MariaDB [nihao]> INSERT INTO users(id,name,gender) VALUES (3,‘nihao‘,‘M‘),(4,‘herry‘,‘M‘);
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0
MariaDB [nihao]> SELECT * FROM users;
+----+-------+--------+
| id | name  | gender |
+----+-------+--------+
|  2 | hill  | M      |
|  3 | nihao | M      |
|  4 | herry | M      |
+----+-------+--------+
3 rows in set (0.00 sec)
MariaDB [nihao]> DELETE FROM  users;
Query OK, 3 rows affected (0.00 sec)
MariaDB [nihao]> SELECT * FROM users;
Empty set (0.00 sec)


3、SELECT 查看数据

MariaDB [nihao]> SELECT * FROM users; #没有指定条件
+----+-------+--------+
| id | name  | gender |
+----+-------+--------+
|  1 | nihao | M      |
|  2 | herry | M      |
|  3 | hill  | M      |
|  4 | tom   | M      |
+----+-------+--------+
4 rows in set (0.00 sec)
MariaDB [nihao]> SELECT * FROM users WHERE id = 2 #指定查询的条件
    -> ;
+----+-------+--------+
| id | name  | gender |
+----+-------+--------+
|  2 | herry | M      |
+----+-------+--------+
1 row in set (0.00 sec)
MariaDB [nihao]> SELECT * FROM users WHERE id > 2
    -> ;
+----+------+--------+
| id | name | gender |
+----+------+--------+
|  3 | hill | M      |
|  4 | tom  | M      |
+----+------+--------+
2 rows in set (0.00 sec)
MariaDB [nihao]> SELECT * FROM users WHERE name LIKE ‘%l‘;
+----+------+--------+
| id | name | gender |
+----+------+--------+
|  3 | hill | M      |
+----+------+--------+
1 row in set (0.00 sec)


4、UPDATE 更改数据

MariaDB [nihao]> UPDATE users SET id = 10 WHERE name = ‘hill‘;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0
MariaDB [nihao]> SELECT * FROM users ;
+----+-------+--------+
| id | name  | gender |
+----+-------+--------+
|  1 | nihao | M      |
|  2 | herry | M      |
|  4 | tom   | M      |
| 10 | hill  | M      |
+----+-------+--------+
4 rows in set (0.00 sec)



C、DCL控制语言命令如下

    1、GRANT;当用户不存在时还会自动创建用户,创建完用户后需要重新刷新授权表

    2、REVOKE:

 

1、GRANT

MariaDB [nihao]> GRANT ALL ON *.* TO ‘hill‘@‘localhost‘ IDENTIFIED BY ‘123456‘;
Query OK, 0 rows affected (0.29 sec)
MariaDB [nihao]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
MariaDB [nihao]> GRANT ALL ON *.* TO ‘hill‘@‘127.0.0.1‘ IDENTIFIED BY ‘123456‘;
Query OK, 0 rows affected (0.00 sec)
MariaDB [nihao]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
MariaDB [nihao]> EXIT
Bye
[root@localhost ~]# mysql -uhill -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 19
Server version: 5.5.46-MariaDB-log MariaDB Server
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
MariaDB [(none)]> 
MariaDB [nihao]> INSERT INTO users (id,name,gender) VALUES (5,‘alex‘,‘M‘);
Query OK, 1 row affected (0.01 sec)
MariaDB [nihao]> SELECT * FROM users; #授权的用户可登录以及插入数据
+----+-------+--------+
| id | name  | gender |
+----+-------+--------+
|  1 | nihao | M      |
|  2 | herry | M      |
|  4 | tom   | M      |
|  5 | alex  | M      |
| 10 | hill  | M      |
+----+-------+--------+
5 rows in set (0.00 sec)



2、REVOKE

MariaDB [(none)]> REVOKE INSERT ON *.* FROM ‘hill‘@‘127.0.0.1‘ ; 
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> REVOKE INSERT ON *.* FROM ‘hill‘@‘localhost‘ ; 
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> FLUSH PRIVILEGES
    -> ;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> EXIT
Bye
[root@localhost ~]# mysql -uhill -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 21
Server version: 5.5.46-MariaDB-log MariaDB Server
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
MariaDB [(none)]> USE NIHAO
ERROR 1049 (42000): Unknown database ‘NIHAO‘
MariaDB [(none)]> USE nihao
Database changed
MariaDB [nihao]> INSERT INTO users (id,name,gender) VALUES (6,‘hello‘,‘M‘);
ERROR 1142 (42000): INSERT command denied to user ‘hill‘@‘localhost‘ for table ‘users‘

        总结(源自网络)

技术分享

七、mysql的事务机制

1、什么是事务:

事务:transaction

一个事务是一个连续的一组数据库操作,就好像它是一个单一的工作单元进行。换言之,永远不会是完整的事务,除非该组内的每个单独的操作是成功的。如果在事务的任何操作失败,则整个事务将失败。

2、为什么需要事务功能:

以一个经典的例子来举例事务的必要性: 

    假设一个银行的数据库有两张表:支票(checking)和储蓄(savings)。现在如果要从用户Jane的支票账户转移转移200美元到她的储蓄账户。 

那么至少需要以下3个步骤: 

     (1)检查支票账户的余额是否大于200美元。 

     (2)如果为真则,从支票账户减去200美元。 

     (3)在储蓄账户余额中增加200美元。 显而易见,这3步必须打包在一个事务中,任何一个步骤失败,必须全部回滚。 假设,在执行到第3步时服务器崩溃了,这时会发生什么情况?——用户很可能会损失200美元。又或者在执行第二步和第三步之间时,另外一个进程要删除支票账户的所有余额,这时又会发生什么情况?——银行很可能白白给用户200美元。 

3、一个事务的必须要同时支持ACID四个特性

ACID表示:原子性(atomicity)、一致性(consistency)、隔离性(Isolation)、持久性(durability) 

A:原子性(atomicity)整个事务中的所有操作要么全部成功执行,要么全部失败后回滚; 

C:一致性(consistency)数据库总是从一个一致性状态转换为另一个一致性状态; 

I:隔离性(Isolation)一个事务所做出的操作在提交之前,是不能为其它所见;隔离有多种隔离级别; 

D:持久性(durability)一旦事务提交,其所做的修改会永久保存于数据库中; 

4、mysql的事务:

MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关

MyISAM:不支持事务,用于只读程序提高性能 

InnoDB:支持ACID事务、行级锁、并发 

                Berkeley DB:支持事务

在MySQL中,事务开始使用COMMIT或ROLLBACK语句开始工作和结束。开始和结束语句的SQL命令之间形成了大量的事务。


COMMIT & ROLLBACK: 

这两个关键字提交和回滚主要用于MySQL的事务。

当一个成功的事务完成后,发出COMMIT命令应使所有参与表的更改才会生效。

如果发生故障时,应发出一个ROLLBACK命令返回的事务中引用的每一个表到以前的状态。

可以控制的事务行为称为AUTOCOMMIT设置会话变量。如果AUTOCOMMIT设置为1(默认值),然后每一个SQL语句(在事务与否)被认为是一个完整的事务,并承诺在默认情况下,当它完成。 AUTOCOMMIT设置为0时,发出SET AUTOCOMMIT =0命令,在随后的一系列语句的作用就像一个事务,直到一个明确的COMMIT语句时,没有活动的提交。

可以通过使用mysql_query()函数在PHP中执行这些SQL命令。 


本文出自 “6638225” 博客,转载请与作者联系!

linux架构学习第二十八天之Mysql/MariaDB数据库入门


推荐阅读
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 本文介绍了将mysql从5.6.15升级到5.7.15的详细步骤,包括关闭访问、备份旧库、备份权限、配置文件备份、关闭旧数据库、安装二进制、替换配置文件以及启动新数据库等操作。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
author-avatar
记忆里的Angle
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有