设为首页 收藏本站
查看: 1569|回复: 0

[经验分享] Linux下mongodb安装及数据导入导出教程

[复制链接]

尚未签到

发表于 2017-12-15 21:42:54 | 显示全部楼层 |阅读模式
  Linux下mongodb安装及数据导入导出教程
  #查看linux发行版本
  cat /etc/issue
  #查看linux内核版本号
  uname -r
  一、Linux下mongodb安装的一般步骤
  1.到mongodb的官网(https://www.mongodb.org/downloads) 下载相应你系统的安装包,拷贝(能够用ftp工具如winscp)到你的linux系统上面。
  2.解压相应的安装包
  命令例如以下:tar zxvf mongodb-linux-x86_64-3.0.4.tgz
  重命名解压后的目录,简化管理:mv mongodb-linux-x86_64-3.0.4 mongodb
  把mongodb文件夹移动到/usr/local/文件夹下,便于管理mv mongodb /usr/local/
  3.为mongodb创建数据库存放的位置和日志文件,默认是在/data/db以下,相同为了方便就在mongodb文件夹以下建立了对应的文件夹。
[iyunv@localhost mongodb]# mkdir data

[iyunv@localhost mongodb]# mkdir logs

  4.启动mongodb数据库(注意:假设是root用户下解压的mongo。那么普通用户是不能启动mongo的,没权限訪问那些root用户创建的文件)
  能够进到mongodb以下的bin文件夹下查看mongodb的帮助文档和我们用到的启动參数:./mongod -h
  启动数据库(--fork表示在后台执行mongo服务。假设没有设置成后台执行将无法在控制台输入别的东西)
  ./mongod --dbpath=/usr/mongodb/data/ --logpath=/usr/mongodb/logs/log --fork
  查看mongo的进程
  netstat -tlnup | grep mongod
  为了安全起见建议关闭28017port防止信息外泄
  pkill mongod
  5.进入mongodb的client開始mongodb之旅(假设上一步没有设置后台执行的话那就得又一次开一个client来进入下列文件夹执行)
  在mongodb文件夹下的bin文件夹下运行./mongo
  设置了password登录的情况要这样写(shyx是username,事先定义的,passwordshyx能够不在-p后面写。之后会提示输入)
  ./mongo -u yxadmin -p yx2345  admin
  ./mongo -u yxadmin -p 这是最简洁的登录方式(注意默认仅仅是登录test数据库),会提示输入password
  ./mongo 127.0.0.1:27017/admin -uyxadmin -pyx2345指定ip、数据库、账户
  6.停止mongo(尽量不要杀进程,会导致问题。使用admin里的方法来关)
  > use admin
  switched to db admin
  > db.shutdownServer();
  server should be down...
  能够使用ps -ef或者ps -aux查看进程,找到mongo的进程号,然后kill
  7.把mongo增加环境变量(这样就不要每次都进安装文件夹启动服务了)
  vim  /etc/profile
  PATH=$PATH:/usr/local/mongodb/bin
  source /etc/profile
  8.设置开机自启动
  将mongodb启动项目追增加rc.local保证mongodb在server开机时启动
  echo "/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs/logfile --logappend  -port=27017" >> /etc/rc.local
  (上述语句没有设置要求password登录)
  9.设置须要权限的登录方式, 用户连接须要username和password
  在bin文件夹下用这条命令启动./mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs/logfile --logappend  --auth  --port=27017 --fork
  带有-auth參数时,必须通过认证才干够查询数据。
  假设没有加-auth參数,即使配置了安全认证用户。也不须要认证谁都能够操作。
  10.设置安全认证用户和password
  MongoDB数据库在默认是没实username及password。不用安全验证的,仅仅要连接上服务就能够进行CRUD操作。
  假设先前已经设置开机启动mongo且是不用password登录的,那么要改动原先开机启动的设置,设置成须要password认证的开机服务。
  ================================================
  在安装完mongo后默认是不须要用户认证的的,要创建一个管理员用户:
  use admin
  db.createUser(   
  {     
  user:"yxadmin",     
  pwd:"yx2345",     
  roles:["root"]   
  } )
  在管理员账户下创建一个pcmddo数据库,并分配此数据库的用户和password(管理员能够操作随意数据库)
  use pcmddo
  db.createUser(
  {
  user: "yxkj",
  pwd: "yx2345",
  roles:
[

  { role: "readWrite", db: "pcmddo" },
  ]
  }
  )
  ==================================================
  定位到mongodb\bin,使用./mongo进入mongodb的命令行管理。
  键入命令:
  use admin
  db.createUser(
  {
  user: "yxkj",
  pwd: "yx2345",
  roles: [
  {
  role: "userAdminAnyDatabase",
  db: "admin"
  } ]
  }
  );
  如今我们为mongodb的admin数据库加入一个用户shyx,password也是shyx,mongodb能够为每一个数据库都建立权限认证,也就是你能够指定某个用户能够登录到哪个数据库。上面的代码。我们为admin数据库加入了一个shyx用户,在mongodb中admin数据库是一个特别的数据库,这个数据库的用户,能够訪问mongodb中的全部数据库。
  假设你要为test数据库,设置一个用户,使用例如以下命令:
  use test
  db.createUser(
  {
  user: "yxkj",
  pwd: "yx2345",
  roles: [
  {
  role: "userAdminAnyDatabase",
  db: "admin"
  } ]
  }
  );
  好了,如今我们已经为mongodb设置了一个全局用户yxkj,接下来先重新启动mongodb,使创建的用户生效(/etc/init.d/mongod restart)
  可能出现的问题
  当用命令/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs/mongod.log --fork启动mongodb时,报例如以下错误:child process failed, exited with error number 1
  这是由于非正常关闭mongodb引起的错误,解决的方法例如以下:
  删掉下面文件就可以:/usr/local/mongodb/mongod.lock
  參考文献:
  http://jingyan.baidu.com/article/fd8044faf4f3a95030137a79.html
  http://blog.csdn.net/yuwenruli/article/details/8529192
  http://www.iyunv.com/database/201408/322384.html
  http://docs.mongodb.org/manual/reference/method/db.createUser/#create-administrative-user-with-roles
  二、Mongodb数据导入导出功能介绍
  Windows 平台、没有设置usernamepassword
  mongoimport -d Test_DBtsv -c Test_Table --type tsv -h 127.0.0.1 --fields 手机号,field2,field3,field4,field5,field6,field7,field8 --file D:\data\test.txt
  mongoexport -d Test_DBtsv -c Test_Table --csv -f 手机号,field2,field3,field4,field7 -o D:\data\outdata_csv.txt  
  Linux平台、用户认证后导入、导出数据
  mongoimport -d Test_DBcsv -c Test_Table --type csv -h 127.0.0.1 -u zhou -p 123 --fields手机号,field2,field3,field4,field5,field6,field7 --file /data/test.txt
  mongoexport -d Test_DBtsv -c Test_Table --csv -u zhou -p 123 -f 手机号,field2,field3,field4,field7 -o /data/test.txt
  导出数据能够指定字段
  两种平台主要是本地文件路径写法不一样。假设要用usernamepassword登录得写上对应的參数(-u -p)!
  用户认证的前提是事先为数据库Test_DBcsv分配好账户password:
  在没有使用--auth选项启动mongo的情况下进入mongo shell运行以下的语句
  use Test_DBcsv
  db.createUser(
  {
  user: "zhou",
  pwd: "123",
  roles:
[

  { role: "readWrite", db: "Test_DBcsv" },
  ]
  }
  )
  这样在使用--auth选项启动mongoserver的情况下就能使用账户zhou登录数据库Test_DBcsv了。
  參考文献:
  http://chenzhou123520.iteye.com/blog/1641319
  查看命令使用帮助
  mongoimport --help
  mongoexport --help  
  Mysql导入数据:
  load data  infile "/big/pcmd5days/nanjing620/hebingnew.txt" into table table2 (time, processdate,ismi,lac,ceid,seg,importdate);

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-424514-1-1.html 上篇帖子: mongodb c++ driver安装踩坑记 下篇帖子: Mongodb在CSharp里实现Aggregate
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表