728x90
반응형
* DB 연동 테스트
- PHP : INSERT
- NodeJS : FIND
- 인증(authorization)설정 + 관리자 계정 설정
mongo
use admin
db.createUser({
user: 'root',
pwd: '1234',
roles: ['userAdminAnyDatabase']
})
# 'userAdminAnyDatabase'를 사용시 모든 DB접근 제어 가능
exit
vim /etc/mongod.conf
# "security" 주석 해제 후 "authorization: enabled" 추가
security:
authorization: enabled
:wq!
service mongod restart
mongo
use admin
db.auth({"root", "1234"}) # 결과가 1이 나와야함
# admin 계정 dircet 접속
mongo -u root -p 1234
- 일반 사용자 계정 설정
* test DB의 권한을 가지고있는 사용자 계정
mongo -u root -p 1234
use test
db.createUser({
user:'test',
pwd:'1234',
roles:['dbOwner']
})
exit
mongo -u test -p 1234 --authenticationDatabase "test"
- PHP7.2 + MongoDB 연동
apt-get install php-pecl-http php-pear php7.2-dev
pecl install mongodb
vim /etc/php/7.2/fpm/php.ini
extension=mongodb.so # 추가
wq!
service php7.2-fpm restart
- PHP test 코드(test.php)
use MongoDB\Driver\BulkWrite;
use MongoDB\Driver\Manager;
$manager = new MongoDB\Driver\Manager("mongodb://test:1234@127.0.0.1:27017/test");
$user_agent = $_SERVER['HTTP_USER_AGENT'];
$time = date("YmdHis");
$today = date("Ymd");
$document = [ //저장할 배열
'TIME' => $time,
'USER_AGENT' => $user_agent
];
$bulk = new MongoDB\Driver\BulkWrite; //저장을 담당하는 객체
$bulk->insert($document); //객체에서의 함수 실행
$manager->executeBulkWrite('test.log_'.$today, $bulk); // Manager 객체에 내용 전달.
- PHP 접속 후 결과 (http://IPADDRESS/test.php)
- NodeJS + MongoDB 연동
npm install mongodb
npm install mongoose
- app.js 테스트 코드 (Express 환경)
// Mongoose Lib
var mongoose = require('mongoose');
// Schema Setting
var testSchema = new mongoose.Schema({
TIME: { type: String },
USER_AGENT: { type: String }
});
var dburl = "mongodb://test:1234@127.0.0.1:27017/test";
app.get('/mongo_test', function(req, res){
// DBconnect();
DBconnect()
var testModel = mongoose.model('log_20210709', testSchema);
testModel.find({}, function(err, docs){
if(err){
console.log("Find Err : " + err);
return;
}
console.log(docs);
});
});
/* DB Connect */
function DBconnect() {
mongoose.connect(dburl, { useNewUrlParser: true, useUnifiedTopology:true },
function(err, database) {
if (err) {
console.log('mongodb connect error : ' + err);
return;
}
db = database;
console.log('mongodb connected');
});
}
- node구동 + 접속 후 결과(http://IPADDRESS/mongo_test)
쌉정상
728x90
반응형
'DataBase' 카테고리의 다른 글
[MariaDB / MySQL] 초기 셋팅 + 원격접속 계정 생성 (0) | 2022.01.03 |
---|---|
Ubuntu 18.04 MongoDB 설치 (0) | 2020.06.03 |
AMP 컴파일설치(MySQL) (0) | 2019.03.31 |
댓글