标签归档:数据库

database

mysql主主复制(双主复制)

MySQL主主复制结构区别于主从复制结构。在主主复制结构中,两台服务器的任何一台上面的数据库存发生了改变都会同步到另一台服务器上,这样两台服务器互为主从,并且都能向外提供服务。
有了上一节的主从复制,那么主主复制就很容易了。

一、先修改配置文件

服务器A(192.168.1.254)配置如下

服务器B(192.168.1.252)配置

两台服务器都重启

注:二都只有server-id不同和 auto-increment- offset不同
auto-increment-offset是用来设定数据库中自动增长的起点的,回为这两能服务器都设定了一次自动增长值2,所以它们的起点必须得不同,这样才能避免两台服务器数据同步时出现主键冲突
replicate-do-db 指定同步的数据库,我们只在两台服务器间同步test数据库
另:auto-increment-increment的值应设为整个结构中服务器的总数,本案例用到两台服务器,所以值设为2

二、同步数据

本文是用test做的实验,导出将test.sql文件从254服务器拷贝到252服务器
备份数据前先锁表,保证数据一致性 继续阅读

MongoDB 常用数据库命令

mongoDB提供了广泛的数据库命令,除常用的create,read,update,delete之外所有功能。

命令是如何工作的

这里有个你比较熟悉的例子:drop,如果从shell里删除一个collection,我们运行db.test.drop().实际上,在内部执行的是drop命令,跟下边用runCommand执行的操作是一样的

ok 表示是否执行成功

实际上,mongoDB的命令被实现为一种对叫$cmd的collection的特殊查询,runCommand只是使用参数进行了一次查询,所以我们的drop也可以这样写

当mongoDB服务器接到一个对$cmd的查询时,使用一种特殊的逻辑来处理。几乎所有的驱动都提供了runCommand方法来执行命令,实际上这些命令都可以通过执行查询的方式来完成。

下边是一些最常用的命令:

  • buildInfo: {“buildInfo” : 1}, 返回mongoDB服务器版本和宿主操作系统的信息

图片例子——————–

  • collStats: {“collStats” : collection},给出指定collection的统计信息,包括数据大小,分配的存储控件,索引大小等

图片例子——————–

  • distinct: {“distinct” : collection, “key”: key, “query”: query} 返回在指定的collection里符合query条件的所有key的值
  • drop: {“drop” : collection}, 删除collection的说有数据
  • dropDatabase: {“dropDatabase” : 1}, 删除当前数据库的所有数据
  • dropIndexes: {“dropIndexes” : collection, “index” : name}, 删除collection上名字为name的索引
  • findAndModify:参见第3章
  • getLastError: {“getLastError” : 1[, “w” : w[, “wtimeout” : timeout]]}, 检查此连接上最后操作的错误或状态信息,可以指定一个选项,此命令将会阻塞直到w个salves复制了最后的那个操作或者时间超时(毫秒)
  • isMaster: {“isMaster” : 1}, 检查此服务器是master还是slave
  • listCommands: {“listCommands” : 1}, 列出此服务器上所有可用命令
  • listDatabases: {“listDatabases” : 1},列出服务器上所有数据库
  • ping: {“ping” : 1},检查服务器是否正在运行,即使服务器处于锁定状体此命令也会立即返回
  • renameCollection: {“renameCollection” : a, “to” : b}, 将collection的名字从a改为b
  • repairDatabase:{“repairDatabase” : 1}, 修复并压缩当前数据库
  • serverStatus:{“serverStatus” : 1}, 获取此服务器的管理统计信息

MySQL GRANT ALL PRIVILEGES 方法允许远程登录

GRANT ALL PRIVILEGES

1. 授权法。

例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。

以下是Sql代码

注意:root@localhost和密码mysql用的是引号

如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码

Sql代码

如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器的dk数据库,并使用mypassword作为密码
Sql代码

注意授权后必须FLUSH PRIVILEGES;否则无法立即生效。

例子:授权用户www对数据库onethink有select,delete,update,insert权限,登录密码为admin123

 

2. 改表法。