您的位置:首页 > 数据库 > Mongodb

Linux下mongodb安装及数据导入导出教程

2015-08-07 17:48 633 查看
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目录下面建立了相应的目录。

[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

为了安全起见建议关闭28017端口防止信息外泄

pkill mongod

5.进入mongodb的客户端开始mongodb之旅(如果上一步没有设置后台运行的话那就得重新开一个客户端来进入下列目录执行)

在mongodb目录下的bin目录下执行./mongo

设置了密码登录的情况要这样写(shyx是用户名,事先定义的,密码shyx可以不在-p后面写,之后会提示输入)

./mongo -u yxadmin -p yx2345  admin

./mongo -u yxadmin -p 这是最简洁的登录方式(注意默认只是登录test数据库),会提示输入密码

./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在服务器开机时启动 

echo "/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs/logfile --logappend  -port=27017" >> /etc/rc.local

(上述语句没有设置要求密码登录)

9.设置需要权限的登录方式, 用户连接需要用户名和密码

在bin目录下用这条命令启动./mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs/logfile --logappend  --auth  --port=27017 --fork

带有-auth参数时,必须通过认证才可以查询数据。如果没有加-auth参数,即使配置了安全认证用户,也不需要认证谁都可以操作。

10.设置安全认证用户和密码

MongoDB数据库在默认是没有用户名及密码,不用安全验证的,只要连接上服务就可以进行CRUD操作。

如果先前已经设置开机启动mongo且是不用密码登录的,那么要修改原先开机启动的设置,设置成需要密码认证的开机服务。

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

在安装完mongo后默认是不需要用户认证的的,要创建一个管理员用户:

use admin 

db.createUser(   

{     

    user:"yxadmin",     

    pwd:"yx2345",     

roles:["root"]   

} )

在管理员账户下创建一个pcmddo数据库,并分配此数据库的用户和密码(管理员可以操作任意数据库)

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,密码也是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.2cto.com/database/201408/322384.html

http://docs.mongodb.org/manual/reference/method/db.createUser/#create-administrative-user-with-roles

 

二、Mongodb数据导入导出功能介绍

Windows 平台、没有设置用户名密码

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

导出数据可以指定字段

两种平台主要是本地文件路径写法不一样,如果要用用户名密码登录得写上相应的参数(-u -p)!

用户认证的前提是事先为数据库Test_DBcsv分配好账户密码:

在没有使用--auth选项启动mongo的情况下进入mongo shell执行下面的语句

use Test_DBcsv

db.createUser(

   {

     user: "zhou",

     pwd: "123",

     roles:

       [

         { role: "readWrite", db: "Test_DBcsv" },

       ]

   }

)

这样在使用--auth选项启动mongo服务器的情况下就能使用账户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);

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: