Linux下mongodb安装及数据导入导出教程html
#查看linux发行版本号linux
cat /etc/issuesql
#查看linux内核版本mongodb
uname -rshell
1、Linux下mongodb安装的通常步骤数据库
1.到mongodb的官网(https://www.mongodb.org/downloads) 下载对应你系统的安装包,拷贝(能够用ftp工具如winscp)到你的linux系统上面。vim
2.解压对应的安装包安全
命令以下:tar zxvf mongodb-linux-x86_64-3.0.4.tgz服务器
重命名解压后的文件夹,简化管理:mv mongodb-linux-x86_64-3.0.4 mongodbapp
把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
参考文献:
2、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了。
参考文献:
查看命令使用帮助
mongoimport --help
mongoexport --help
Mysql导入数据:
load data infile "/big/pcmd5days/nanjing620/hebingnew.txt" into table table2 (time, processdate,ismi,lac,ceid,seg,importdate);