xq8995209 发表于 2018-10-24 12:30:42

MongoDB一主一丛有用户认证的搭建

  准备好两台测试服务器
  主 10.0.0.3
  从 10.0.0.4
  一、两台服务器安装mongodb数据库
  第一步:创建好目录
  mkdir -p /data_master/tools/
  cd /data_master/tools/
  第二步:下载完安装包并解压
  #下载
  curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz
  #解压
  tar -zxvf mongodb-linux-x86_64-3.0.6.tgz
  第三步:将解压包拷贝到指定目录
  mvmongodb-linux-x86_64-3.0.6/ /usr/local/mongodb
  第四步:添加环境变量并重启环境变量
  echo "export PATH=/usr/local/mongodb/bin:$PATH" >>/etc/profile
  source /etc/profile
  第五步:创建数据库目录
  #MongoDB的数据存储在data目录的db目录下,但是这个目录在安装过程不会自动创建,所以你需要手动创建data目录,并在data目录中创建db目录。
  #以下实例中我们将data目录创建于根目录下(/)。
  #注意:/data/db 是 MongoDB 默认的启动的数据库路径(--dbpath)。
  mkdir -p /data_master/db
  mkdir -p /data_master/mongdb/log
  mkdir -p /data_master/db_slave
  二、主服务器启动mongodb
  第六步:命令行中运行mongodb服务
  cd /usr/local/mongodb/bin
  ./mongod -dbpath/data_master/db -master
  三、从服务器启动mongodb
  第六步:命令行中运行mongodb服务
  cd /usr/local/mongodb/bin
  ./mongod -dbpath /data_master/db_slave -slave -source 10.0.0.3:27017
  在报错的slave机器上执行 rs.slaveOk()方法即可。
  rs.slaveOk()
  show dbs
  local0.078GB
  test   0.078GB
  use test
  switched to db test
  show collections
  system.indexes
  users
  db.users.find()
  { "_id" : ObjectId("55763d98db85929bb8addedf"), "username" : "lwb" }
  { "_id" : ObjectId("55764a694b24187a7a3c6693"), "username" : "mongodb master-sla
  四、带账户验证的主从复制
  openssl rand -base64 741 > /root/mongo-keyfile
  主库生成这个配置文件
  生成完成后把权限改小一些
  scp传送给从库
  权限给成400最好
  (后期因为权限的问题可能会有报错)
  然后在没有设置用户验证的情况下 先进入主库和从库的mongodb 进行设置用户
  设置验证的用户和密码
  use admin
  switched to db admin
  db.createUser( { user:'dbAdmin', pwd:'aqMkDuYbRAvfgJk', roles:["root"] } );
  Successfully added user: { "user" : "dbAdmin", "roles" : [ "root" ] }
  use jhpicdb
  switched to db jhpicdb
  db.createUser( { user:'jhpicdb', pwd:'aqMkDuYbRAvfgJk', roles:["readWrite"] } );
  Successfully added user: { "user" : "admin", "roles" : [ "readWrite" ] }
  然后下载命令行登录就得验证用户
  # mongo
  MongoDB shell version: 3.0.6
  connecting to: test
  use admin
  switched to db admin
  db.auth("dbAdmin","aqMkDuYbRAvfgJk");
  1
  show dbs
  admin   0.078GB
  jhpicdb49.930GB
  local   0.078GB
  注意啊,两个库的操作要一致。
  主库上面的配置文件
  # cd /usr/local/mongodb/bin/
  # cat mongodb.conf
idae - MongoDB config start - 20180203
  master = on
设置数据文件的存放目录
  dbpath = /data_master/db
设置日志文件的存放目录及其日志文件名
  logpath = /data_master/mongdb/log/mongo.log
设置端口号(默认的端口号是 27017)
  port = 27017
设置为以守护进程的方式运行,即在后台运行
  fork = true
nohttpinterface = true
  nohttpinterface = true
  #打开认证
  auth = on
  #主库
  #master = on
  #密钥
  keyFile = /root/mongo-keyfile
  从库上面的配置文件
  # cd /usr/local/mongodb/bin/
  # cat mongodb.conf
idae - MongoDB config start - 20180203
设置数据文件的存放目录
  dbpath = /data_master/db_slave
设置日志文件的存放目录及其日志文件名
  logpath = /data_master/mongdb/log/mongo.log
设置端口号(默认的端口号是 27017)
  port = 27017
  #从库
  slave = on
  source = 10.0.0.3:27017
设置为以守护进程的方式运行,即在后台运行
  fork = true
nohttpinterface = true
  nohttpinterface = true
  #打开认证
  auth = on
  #密钥
  keyFile = /root/mongo-keyfile
  #repair = on

页: [1]
查看完整版本: MongoDB一主一丛有用户认证的搭建