网站mysql数据库基本的问题

网站mysql数据库基本的问题,第1张

1,是的,必须这样才能保证数据的安全。

2,应该是后者,为了防止出现读写冲突;

3,有的数据库支持同时读,但是绝对不允许读写或是写进程同时进行的情况

4,,5,计算机的处理能力都很强,即使家用PC它的时间单位也是微秒级的,专门用于服务器的机器能力会更加强,另外,其实网络游戏并不占用多大的流量,只需请求很小的一部分数据,数据库服务器也一般不直接与游戏客户端相连,而是由游戏运营商的服务器处理后在向数据库服务器请求数据。

其实这个和jsp没啥关系,只要你的代码没有比如爆源码或者直接上传shell这些弱智的漏洞就行了,一般的做法其实很简单,就是给mysql分配一个单独的账号,而不要使用root权限,而且只能针对目标数据库 *** 作,其他的数据库没有 *** 作权限,如果要附加上jsp的话,那么就是别让你的程序出现注入之类的漏洞,因为只要存在注入,那么至少可以肯定你的数据库会全部泄露,这样会使别人进一步入侵你甚至控制你的服务器,当然了linux和windows的服务器还是有差别的,上面给你说的只是最一般的方法

MySQL数据库可以通过触发器,使之无法修改某些字段的数据,同时又不会影响修改其他字段。

DROP

TRIGGER

IF

EXISTS

`members`;

SET

@OLD_SQL_MODE=@@SQL_MODE,

SQL_MODE='';

DELIMITER

//

CREATE

TRIGGER

`members`

BEFORE

UPDATE

ON

`members`

FOR

EACH

ROW

BEGIN

set

newname

=

oldname;

set

newcellphone

=

oldcellphone;

set

newemail

=

oldemail;

set

newpassword

=

oldpassword;

END//

DELIMITER

;

SET

SQL_MODE=@OLD_SQL_MODE;

再举一个例子:

CREATE

TABLE

`account`

(

`id`

INT(10)

UNSIGNED

NOT

NULL

AUTO_INCREMENT,

`user`

VARCHAR(50)

NOT

NULL

DEFAULT

'0',

`cash`

FLOAT

NOT

NULL

DEFAULT

'0',

PRIMARY

KEY

(`id`)

)

COLLATE='utf8_general_ci'

ENGINE=InnoDB;

每一次数据变化新增一条数据

INSERT

INTO

`test``account`

(`user`,

`cash`)

VALUES

('neo',

-10);

INSERT

INTO

`test``account`

(`user`,

`cash`)

VALUES

('neo',

-5);

INSERT

INTO

`test``account`

(`user`,

`cash`)

VALUES

('neo',

30);

INSERT

INTO

`test``account`

(`user`,

`cash`)

VALUES

('neo',

-20);

保护用户的余额不被修改

DROP

TRIGGER

IF

EXISTS

`account`;

SET

@OLD_SQL_MODE=@@SQL_MODE,

SQL_MODE='';

DELIMITER

//

CREATE

TRIGGER

`account`

BEFORE

UPDATE

ON

`account`

FOR

EACH

ROW

BEGIN

set

newcash

=

oldcash;

END//

DELIMITER

;

SET

SQL_MODE=@OLD_SQL_MODE;

其实这个和jsp没啥关系,只要你的代码没有比如爆源码或者直接上传shell这些弱智的漏洞就行了,一般的做法其实很简单,就是给mysql分配一个单独的账号,而不要使用root权限,而且只能针对目标数据库 *** 作,其他的数据库没有 *** 作权限,如果要附加上jsp的话,那么就是别让你的程序出现注入之类的漏洞,因为只要存在注入,那么至少可以肯定你的数据库会全部泄露,这样会使别人进一步入侵你甚至控制你的服务器,当然了linux和windows的服务器还是有差别的,上面给你说的只是最一般的方法

mysql数据库有undo空间

5种mysql做可靠性分析的方案:

1.MySQL Clustering(ndb-cluster stogare)

简介:

MySQL公司以存储引擎方式提供的高可靠性方案,是事务安全的,实时复制数据,可用于需要高可靠性及负载均衡的场合。该方案至少需要三个节点服务器才能达到较好的效果。

成本:

节点服务器对RAM的需求很大,与数据库大小呈线性比例;

最好使用千兆以太网络;

还需要使用Dolphin公司提供的昂贵的SCI卡。

优点:

可用于负载均衡场合;

可用于高可靠性场合;

高伸缩性;

真正的数据库冗余;

容易维护。

缺点:

随着数据库的变大,对RAM的需求变得更大,因此成本很高;

速度:

几乎 比典型的单独服务器(无千兆以太网,无SCI卡,存储引擎相关的限制少)慢10倍。

应用场合:

冗余,高可靠性,负载均衡

2 MySQL / GFS-GNBD/ HA (Active/Passive)

简介:

如果多个MySQL服务器使用共享硬盘作为数据存储,此方案如何?

GFS/GNBD可以提供所需的共享硬盘。

GFS是事务安全的文件系统。同一时刻你可以让一个MySQL使用共享数据。

成本:

最多n台高性能服务器的成本,其中一个激活的,其他作为备份服务器。

优点:

高可靠性

某种程度的冗余

按照高可靠性进行伸缩

缺点:

没有负载均衡

没有保证的冗余

无法对写 *** 作进行伸缩

速度:

单独服务器的2倍。对读 *** 作支持得较好。

应用场合:

需要高可靠性的、读 *** 作密集型的应用

3 MySQL / DRBD / HA (Active/Passive)

简介:

如果多个MySQL服务器使用共享硬盘作为数据存储,此方案如何?

DRBD可以提供这样的共享硬盘。DRBD可以被设置成事务安全的。

同一时刻你可以让一个MySQL使用共享数据。

成本:

最多n台高性能服务器的成本,其中一个激活的,而其他则作为备份服务器。

优点:

高可靠性;

一定程度的冗余;

以高可靠性名义来看是可伸缩的。

缺点:

没有负载均衡

没有保证的冗余

在写负载方面没有伸缩性

速度:

在读写方面相当于单独服务器

应用场合

需要高可靠性、读 *** 作密集型的应用

4 MySQL Write Master / Multiple MySQL Read Slaves (Active/Active)

简介:

考虑不同的读、写DB数据库连接的情况。可以使用一台主服务器用于写 *** 作,而采用n台从服务器用于读 *** 作。

成本:

最多1台高性能写服务器,n台读服务器的成本

优点:

读 *** 作的高可靠性;

读 *** 作的负载均衡;

在读 *** 作负载均衡方面是可伸缩的。

缺点:

无写 *** 作的高可靠性;

无写 *** 作的负载均衡;

在写 *** 作方面无伸缩性;

速度:

同单独服务器;在读 *** 作方面支持得较好

应用场合

读 *** 作密集型的、需要高可靠性和负载均衡的应用。

5 Standalone MySQL Servers(Functionally separated) (Active)

多台功能分离的单独服务器,没有高可靠性、负载均衡能力,明显缺点太多,不予考虑。

以上就是关于网站mysql数据库基本的问题全部的内容,包括:网站mysql数据库基本的问题、如何加强MySQL数据库的安全性、MySQL数据库安全之防止撰改的方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10129032.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存