zoukankan      html  css  js  c++  java
  • Linux下mongodb安装及数据导入导出教程

    Linuxmongodb安装及数据导入导出教程

    #查看linux发行版本

    cat /etc/issue

    #查看linux内核版本号

    uname -r

    一、Linuxmongodb安装的一般步骤

    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文件夹以下建立了对应的文件夹。

    [root@localhost mongodb]# mkdir data

    [root@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" },

           ]

       }

    )

    ==================================================

    定位到mongodbin,使用./mongo进入mongodb的命令行管理。

    键入命令:

    use admin

    db.createUser(

    {

    user: "yxkj",

    pwd: "yx2345",

    roles: [ 

    role: "userAdminAnyDatabase", 

    db: "admin" 

    } ]

    }

    );

    如今我们为mongodbadmin数据库加入一个用户shyx,password也是shyxmongodb能够为每一个数据库都建立权限认证,也就是你能够指定某个用户能够登录到哪个数据库。上面的代码。我们为admin数据库加入了一个shyx用户,在mongodbadmin数据库是一个特别的数据库,这个数据库的用户,能够訪问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.2cto.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 est.txt

    mongoexport -d Test_DBtsv -c Test_Table --csv -f 手机号,field2,field3,field4,field7 -o D:dataoutdata_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);

  • 相关阅读:
    响应码异常HttpStatus not ok!statusCode:307
    SpringBoot的web项目使用JRebel启动错误
    SpringBoot启动遇到的找不到spring模块的怪事
    Redis(一)
    Redis一主二从Sentinel监控配置
    Redis命令
    IDEA
    sql server常用函数积累
    char,varchar和nvarchar有什么区别?
    SQL SERVER里的锁机制
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/6798147.html
Copyright © 2011-2022 走看看