您的位置:

mysql数据库结合pam,数据库 联结

本文目录一览:

cyradm -u cyrus localhost

在 /etc/imapd.conf 添加 allowplaintext:1

该项是一个及其容易忽略的一个很重要的地方,该项的意思是是否允许使用明文传输密码,需要在没有使用证书加密传输是时指定允许其以明文传输,否则会在使用cyradm管理工具,在登入时出现登入被关闭(login disabled cyradm: can not authenticate to server with as cyrus )同时日志文件中提示:perl :no worthy mechs found的错误提示,因此要么使用帮助文件中的命令生成一个加密证书,使用证书加密该传输过程,这时,只要指定证书加密文件,和加密算法即可除去该项,该项默认是不允许明文传输的,即allowplaintext: 0。要使用证书可用下面命令生成证书:openssl req -new -x509 -nodes -out /var/imap/server.pem -keyout /var/imap/serve,然后在imapd.conf文件中追加tls_cert_file: /var/imap/server.pem和tls_key_file: /var/imap/server.pem即可,而allowplaintext: 1就必须改为0,也可省略。

然后复制安装包中/master/conf/下的几个conf文件中的一个配置文件,到/etc/cyrus.conf即可。

求助,如何ftp和samba共用同一个目录

FTP的目录是可以自己选择的,可以选择C盘 D盘 E盘,也可以随便选择一个文件夹或者新建一个文件夹当做FTP文件夹。这个可以在搭建FTP服务器的时候选择路径。

而使用SMB协议的话,需要右键选择你需要的那个文件夹,点击属性设置为共享。你可以选择用户为everyone,这样方便点。

按以上步骤即可实现FTP文件夹和SMB共享文件夹都是一个文件夹。

PAM认证机制

 认证库:文本文件,MySQL,NIS,LDAP等

 PAM 是关注如何为服务验证用户的 API,通过提供一些动态链接库和一套统一的API,将系统提供的服务和该服务的认证方式分开

 使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序

 一种认证框架,自身不做认证

 它提供了对所有服务进行认证的中央机制,适用于login,远程登录(telnet,rlogin,fsh,ftp,点对点协议(PPP)),su等应用程序中。系统管理员通过PAM配置文件来制定不同应用程序的不同认证策略;应用程序开发者通过在服务程序中使用PAM API(pam_xxxx( ))来实现对认证方法的调用;而PAM服务模块的开发者则利用PAM SPI来编写模块(主要是引出一些函数pam_sm_xxxx( )供PAM接口库调用),将不同的认证机制加入到系统中;PAM接口库(libpam)则读取配置文件,将应用程序和相应的PAM服务模块联系起来。

eg:passwd→PAM模块→/etc/pam.d/passwd→调用库文件来生效/lib64/seturity/*.so

 模块文件目录:/lib64/security/*.so

 环境相关的设置,独立的配置文件,完成用户对系统资源的使用和控制:/etc/security/

主配置文件:/etc/pam.conf,默认不存在

 为每种应用模块提供一个专用的配置文件:

/etc/pam.d/APP_NAME

注意:如/etc/pam.d存在,/etc/pam.conf将失效

(1)通用配置文件/etc/pam.conf格式

(2)专用配置文件/etc/pam.d/* 格式

 说明:

pam文档说明

 /user/share/doc/pam-*

 rpm -qd pam

 man –k pam_

 man 模块名 如man rootok

 《The Linux-PAM System Administrators' Guide》

 功能:检查有效shell

 man pam_shells

 示例:不允许使用/bin/csh的用户本地登录

 功能:只允许root用户在/etc/securetty列出的安全终端上

登陆

 示例:允许root在telnet登陆

 功能:如果/etc/nologin文件存在,将导致非root用户不能登陆,如果用户shell是/sbin/nologin 时,当该用户登陆时,会显示/etc/nologin.txt文件内容,并拒绝登陆

 功能:在用户级别实现对其可使用的资源的限制,例如:可打开的文件数量,可运行的进程数量,可用内存空间

① 修改限制的实现方式:

②配置文件:/etc/security/limits.conf,

/etc/security/limits.d/*.conf

 配置文件:每行一个定义;

domain type item value

 domain 应用于哪些对象

 Username 单个用户

 @group 组内所有用户

 * 所有用户

 type 限制的类型

 Soft 软限制,普通用户自己可以修改

 Hard 硬限制,由root用户设定,且通过kernel强制生效

 - 二者同时限定

 item 限制的资源

 nofile 所能够同时打开的最大文件数量,默认为1024

 nproc 所能够同时运行的进程的最大数量,默认为1024

 value 指定具体值

eg:

pam_mysql连接mysql数据库问题

提示的报错是不能通过本机的socket文件进行连接

你可以在连接的时候使用端口进行连接而不用socket文件,如mysql -uroot -P3306 -h127.0.0.1 就是使用本机的3306端口进行连接,而不是通过socket文件。

pam_mysql - MySQL error ......(can't connect to local mysql server through socket)

1、先查看 /etc/rc.d/init.d/mysqld status 看看m y s q l 是否已经启动.

另外看看是不是权限问题.

2、确定你的mysql.sock是不是在那个位置,

mysql -u 你的mysql用户名 -p -S /var/lib/mysql/mysql.sock

3、试试:service mysqld start

MySQL与PostgreSQL比较 哪个数据库更好

特性 MySQL PostgreSQL

实例 通过执行 MySQL 命令(mysqld)启动实例。一个实例可以管理一个或多个数据库。一台服务器可以运行多个 mysqld 实例。一个实例管理器可以监视 mysqld 的各个实例。

通过执行 Postmaster 进程(pg_ctl)启动实例。一个实例可以管理一个或多个数据库,这些数据库组成一个集群。集群是磁盘上的一个区域,这个区域在安装时初始化并由一个目录组成,所有数据都存储在这个目录中。使用 initdb 创建第一个数据库。一台机器上可以启动多个实例。

数据库 数据库是命名的对象集合,是与实例中的其他数据库分离的实体。一个 MySQL 实例中的所有数据库共享同一个系统编目。 数据库是命名的对象集合,每个数据库是与其他数据库分离的实体。每个数据库有自己的系统编目,但是所有数据库共享 pg_databases。

数据缓冲区 通过 innodb_buffer_pool_size 配置参数设置数据缓冲区。这个参数是内存缓冲区的字节数,InnoDB 使用这个缓冲区来缓存表的数据和索引。在专用的数据库服务器上,这个参数最高可以设置为机器物理内存量的 80%。 Shared_buffers 缓存。在默认情况下分配 64 个缓冲区。默认的块大小是 8K。可以通过设置 postgresql.conf 文件中的 shared_buffers 参数来更新缓冲区缓存。

数据库连接 客户机使用 CONNECT 或 USE 语句连接数据库,这时要指定数据库名,还可以指定用户 id 和密码。使用角色管理数据库中的用户和用户组。 客户机使用 connect 语句连接数据库,这时要指定数据库名,还可以指定用户 id 和密码。使用角色管理数据库中的用户和用户组。

身份验证 MySQL 在数据库级管理身份验证。 基本只支持密码认证。 PostgreSQL 支持丰富的认证方法:信任认证、口令认证、Kerberos 认证、基于 Ident 的认证、LDAP 认证、PAM 认证

加密 可以在表级指定密码来对数据进行加密。还可以使用 AES_ENCRYPT 和 AES_DECRYPT 函数对列数据进行加密和解密。可以通过 SSL 连接实现网络加密。 可以使用 pgcrypto 库中的函数对列进行加密/解密。可以通过 SSL 连接实现网络加密。

审计 可以对 querylog 执行 grep。 可以在表上使用 PL/pgSQL 触发器来进行审计。

查询解释 使用 EXPLAIN 命令查看查询的解释计划。 使用 EXPLAIN 命令查看查询的解释计划。

备份、恢复和日志 InnoDB 使用写前(write-ahead)日志记录。支持在线和离线完全备份以及崩溃和事务恢复。需要第三方软件才能支持热备份。 在数据目录的一个子目录中维护写前日志。支持在线和离线完全备份以及崩溃、时间点和事务恢复。 可以支持热备份。

JDBC 驱动程序 可以从 参考资料 下载 JDBC 驱动程序。 可以从 参考资料 下载 JDBC 驱动程序。

表类型 取决于存储引擎。例如,NDB 存储引擎支持分区表,内存引擎支持内存表。 支持临时表、常规表以及范围和列表类型的分区表。不支持哈希分区表。 由于PostgreSQL的表分区是通过表继承和规则系统完成了,所以可以实现更复杂的分区方式。

索引类型 取决于存储引擎。MyISAM:BTREE,InnoDB:BTREE。 支持 B-树、哈希、R-树和 Gist 索引。

约束 支持主键、外键、惟一和非空约束。对检查约束进行解析,但是不强制实施。 支持主键、外键、惟一、非空和检查约束。

存储过程和用户定义函数 支持 CREATE PROCEDURE 和 CREATE FUNCTION 语句。存储过程可以用 SQL 和 C++ 编写。用户定义函数可以用 SQL、C 和 C++ 编写。 没有单独的存储过程,都是通过函数实现的。用户定义函数可以用 PL/pgSQL(专用的过程语言)、PL/Tcl、PL/Perl、PL/Python 、SQL 和 C 编写。

触发器 支持行前触发器、行后触发器和语句触发器,触发器语句用过程语言复合语句编写。 支持行前触发器、行后触发器和语句触发器,触发器过程用 C 编写。

系统配置文件 my.conf Postgresql.conf

数据库配置 my.conf Postgresql.conf

客户机连接文件 my.conf pg_hba.conf

XML 支持 有限的 XML 支持。 有限的 XML 支持。

数据访问和管理服务器 OPTIMIZE TABLE —— 回收未使用的空间并消除数据文件的碎片

myisamchk -analyze —— 更新查询优化器所使用的统计数据(MyISAM 存储引擎)

mysql —— 命令行工具

MySQL Administrator —— 客户机 GUI 工具 Vacuum —— 回收未使用的空间

Analyze —— 更新查询优化器所使用的统计数据

psql —— 命令行工具

pgAdmin —— 客户机 GUI 工具

并发控制 支持表级和行级锁。InnoDB 存储引擎支持 READ_COMMITTED、READ_UNCOMMITTED、REPEATABLE_READ 和 SERIALIZABLE。使用 SET TRANSACTION ISOLATION LEVEL 语句在事务级设置隔离级别。 支持表级和行级锁。支持的 ANSI 隔离级别是 Read Committed(默认 —— 能看到查询启动时数据库的快照)和 Serialization(与 Repeatable Read 相似 —— 只能看到在事务启动之前提交的结果)。使用 SET TRANSACTION 语句在事务级设置隔离级别。使用 SET SESSION 在会话级进行设置。

MySQL相对于PostgreSQL的劣势:

MySQL

PostgreSQL

最重要的引擎InnoDB很早就由Oracle公司控制。目前整个MySQL数据库都由Oracle控制。

BSD协议,没有被大公司垄断。

对复杂查询的处理较弱,查询优化器不够成熟

很强大的查询优化器,支持很复杂的查询处理。

只有一种表连接类型:嵌套循环连接(nested-loop),不支持排序-合并连接(sort-merge join)与散列连接(hash join)。

都支持

性能优化工具与度量信息不足

提供了一些性能视图,可以方便的看到发生在一个表和索引上的select、delete、update、insert统计信息,也可以看到cache命中率。网上有一个开源的pgstatspack工具。

InnoDB的表和索引都是按相同的方式存储。也就是说表都是索引组织表。这一般要求主键不能太长而且插入时的主键最好是按顺序递增,否则对性能有很大影响。

不存在这个问题。

大部分查询只能使用表上的单一索引;在某些情况下,会存在使用多个索引的查询,但是查询优化器通常会低估其成本,它们常常比表扫描还要慢。

不存在这个问题

表增加列,基本上是重建表和索引,会花很长时间。

表增加列,只是在数据字典中增加表定义,不会重建表

存储过程与触发器的功能有限。可用来编写存储过程、触发器、计划事件以及存储函数的语言功能较弱

除支持pl/pgsql写存储过程,还支持perl、python、Tcl类型的存储过程:pl/perl,pl/python,pl/tcl。

也支持用C语言写存储过程。

不支持Sequence。

支持

不支持函数索引,只能在创建基于具体列的索引。

不支持物化视图。

支持函数索引,同时还支持部分数据索引,通过规则系统可以实现物化视图的功能。

执行计划并不是全局共享的, 仅仅在连接内部是共享的。

执行计划共享

MySQL支持的SQL语法(ANSI SQL标准)的很小一部分。不支持递归查询、通用表表达式(Oracle的with 语句)或者窗口函数(分析函数)。

都 支持

不支持用户自定义类型或域(domain)

支持。

对于时间、日期、间隔等时间类型没有秒以下级别的存储类型

可以精确到秒以下。

身份验证功能是完全内置的,不支持操作系统认证、PAM认证,不支持LDAP以及其它类似的外部身份验证功能。

支持OS认证、Kerberos 认证 、Ident 的认证、LDAP 认证、PAM 认证

不支持database link。有一种叫做Federated的存储引擎可以作为一个中转将查询语句传递到远程服务器的一个表上,不过,它功能很粗糙并且漏洞很多

有dblink,同时还有一个dbi-link的东西,可以连接到oracle和mysql上。

Mysql Cluster可能与你的想象有较大差异。开源的cluster软件较少。

复制(Replication)功能是异步的,并且有很大的局限性.例如,它是单线程的(single-threaded),因此一个处理能力更强的Slave的恢复速度也很难跟上处理能力相对较慢的Master.

有丰富的开源cluster软件支持。

explain看执行计划的结果简单。

explain返回丰富的信息。

类似于ALTER TABLE或CREATE TABLE一类的操作都是非事务性的.它们会提交未提交的事务,并且不能回滚也不能做灾难恢复

DDL也是有事务的。

PostgreSQL主要优势:

1. PostgreSQL完全免费,而且是BSD协议,如果你把PostgreSQL改一改,然后再拿去卖钱,也没有人管你,这一点很重要,这表明了PostgreSQL数据库不会被其它公司控制。oracle数据库不用说了,是商业数据库,不开放。而MySQL数据库虽然是开源的,但现在随着SUN被oracle公司收购,现在基本上被oracle公司控制,其实在SUN被收购之前,MySQL中最重要的InnoDB引擎也是被oracle公司控制的,而在MySQL中很多重要的数据都是放在InnoDB引擎中的,反正我们公司都是这样的。所以如果MySQL的市场范围与oracle数据库的市场范围冲突时,oracle公司必定会牺牲MySQL,这是毫无疑问的。

2. 与PostgreSQl配合的开源软件很多,有很多分布式集群软件,如pgpool、pgcluster、slony、plploxy等等,很容易做读写分离、负载均衡、数据水平拆分等方案,而这在MySQL下则比较困难。

3. PostgreSQL源代码写的很清晰,易读性比MySQL强太多了,怀疑MySQL的源代码被混淆过。所以很多公司都是基本PostgreSQL做二次开发的。

4. PostgreSQL在很多方面都比MySQL强,如复杂SQL的执行、存储过程、触发器、索引。同时PostgreSQL是多进程的,而MySQL是线程的,虽然并发不高时,MySQL处理速度快,但当并发高的时候,对于现在多核的单台机器上,MySQL的总体处理性能不如PostgreSQL,原因是MySQL的线程无法充分利用CPU的能力。

目前只想到这些,以后想到再添加,欢迎大家拍砖。

PostgreSQL与oracle或InnoDB的多版本实现的差别

PostgreSQL与oracle或InnoDB的多版本实现最大的区别在于最新版本和历史版本是否分离存储,PostgreSQL不分,而oracle和InnoDB分,而innodb也只是分离了数据,索引本身没有分开。

PostgreSQL的主要优势在于:

1. PostgreSQL没有回滚段,而oracle与innodb有回滚段,oracle与Innodb都有回滚段。对于oracle与Innodb来说,回滚段是非常重要的,回滚段损坏,会导致数据丢失,甚至数据库无法启动的严重问题。另由于PostgreSQL没有回滚段,旧数据都是记录在原先的文件中,所以当数据库异常crash后,恢复时,不会象oracle与Innodb数据库那样进行那么复杂的恢复,因为oracle与Innodb恢复时同步需要redo和undo。所以PostgreSQL数据库在出现异常crash后,数据库起不来的几率要比oracle和mysql小一些。

2. 由于旧的数据是直接记录在数据文件中,而不是回滚段中,所以不会象oracle那样经常报ora-01555错误。

3. 回滚可以很快完成,因为回滚并不删除数据,而oracle与Innodb,回滚时很复杂,在事务回滚时必须清理该事务所进行的修改,插入的记录要删除,更新的记录要更新回来(见row_undo函数),同时回滚的过程也会再次产生大量的redo日志。

4. WAL日志要比oracle和Innodb简单,对于oracle不仅需要记录数据文件的变化,还要记录回滚段的变化。

PostgreSQL的多版本的主要劣势在于:

1、最新版本和历史版本不分离存储,导致清理老旧版本需要作更多的扫描,代价比较大,但一般的数据库都有高峰期,如果我们合理安排VACUUM,这也不是很大的问题,而且在PostgreSQL9.0中VACUUM进一步被加强了。

2、由于索引中完全没有版本信息,不能实现Coverage index scan,即查询只扫描索引,直接从索引中返回所需的属性,还需要访问表。而oracle与Innodb则可以;

进程模式与线程模式的对比

PostgreSQL和oracle是进程模式,MySQL是线程模式。

进程模式对多CPU利用率比较高。

进程模式共享数据需要用到共享内存,而线程模式数据本身就是在进程空间内都是共享的,不同线程访问只需要控制好线程之间的同步。

线程模式对资源消耗比较少。

所以MySQL能支持远比oracle多的更多的连接。

对于PostgreSQL的来说,如果不使用连接池软件,也存在这个问题,但PostgreSQL中有优秀的连接池软件软件,如pgbouncer和pgpool,所以通过连接池也可以支持很多的连接。

堆表与索引组织表的的对比

Oracle支持堆表,也支持索引组织表

PostgreSQL只支持堆表,不支持索引组织表

Innodb只支持索引组织表

索引组织表的优势:

表内的数据就是按索引的方式组织,数据是有序的,如果数据都是按主键来访问,那么访问数据比较快。而堆表,按主键访问数据时,是需要先按主键索引找到数据的物理位置。

索引组织表的劣势:

索引组织表中上再加其它的索引时,其它的索引记录的数据位置不再是物理位置,而是主键值,所以对于索引组织表来说,主键的值不能太大,否则占用的空间比较大。

对于索引组织表来说,如果每次在中间插入数据,可能会导致索引分裂,索引分裂会大大降低插入的性能。所以对于使用innodb来说,我们一般最好让主键是一个无意义的序列,这样插入每次都发生在最后,以避免这个问题。

由于索引组织表是按一个索引树,一般它访问数据块必须按数据块之间的关系进行访问,而不是按物理块的访问数据的,所以当做全表扫描时要比堆表慢很多,这可能在OLTP中不明显,但在数据仓库的应用中可能是一个问题。

  PostgreSQL9.0中的特色功能:

PostgreSQL中的Hot Standby功能

也就是standby在应用日志同步时,还可以提供只读服务,这对做读写分离很有用。这个功能是oracle11g才有的功能。

PostgreSQL异步提交(Asynchronous Commit)的功能:

  这个功能oracle中也是到oracle11g R2才有的功能。因为在很多应用场景中,当宕机时是允许丢失少量数据的,这个功能在这样的场景中就特别合适。在PostgreSQL9.0中把synchronous_commit设置为false就打开了这个功能。需要注意的是,虽然设置为了异步提交,当主机宕机时,PostgreSQL只会丢失少量数据,异步提交并不会导致数据损坏而数据库起不来的情况。MySQL中没有听说过有这个功能。

PostgreSQL中索引的特色功能:

PostgreSQL中可以有部分索引,也就是只能表中的部分数据做索引,create index 可以带where 条件。同时PostgreSQL中的索引可以反向扫描,所以在PostgreSQL中可以不必建专门的降序索引了。

mysql数据库结合pam,数据库 联结

2022-11-21
数据库的笔记mysql,数据库管理系统笔记

2022-11-24
mysql数据库完整笔记(mysql数据库数据)

2022-11-13
操作mysql数据库总结,MySQL数据库笔记

2022-11-21
mysql数据库的总结(MySQL数据库总结)

2022-11-12
联mysql数据库(mysql 联结)

2022-11-16
mysql数据库集合(数据库存集合)

2022-11-12
连接mysql数据库笔记1(如何连接数据库mysql)

2022-11-10
mysql数据库开发笔记(mysql数据库应用案例教程电子版

2022-11-14
mysql数据库番外篇之(MySQL数据库笔记)

2022-11-16
我的mysql数据库学习笔记(mysql数据库菜鸟教程)

2022-11-11
学习笔记之mysql数据库操作(mysql数据库怎么操作)

2022-11-16
mysql第1部分数据库简介(MySQL数据库笔记)

2022-11-14
mysql与mongo数据库(mongodb和mysql结合

2022-11-12
mysql数据库优化总结2(mysql数据库性能优化详解)

2022-11-16
jsp数据库笔记,jsp写入数据库

本文目录一览: 1、怎么用jsp连接mysql数据库 2、jsp中怎么使用数据库 3、JSP 从数据库中如何取得图片的路径? 怎么用jsp连接mysql数据库 一. 数据库的连接和操作笔记:1.初始化

2023-12-08
mysql数据库笔记1000行,sql数据库查询最后1000

2022-11-23
mysql数据库总结1(mysql数据库总结体会2000字)

2022-11-10
mysql数据库优化的一些笔记(MySQL数据库的优化)

2022-11-13
pg数据库和mysql(pg数据库和mysql哪个好)

2022-11-14