Начало работы с MongoDB в CentOS 6/7
Итак, приступим к установке.
Для начала подключим репозиторий третей версии. В ней добавлено множество фишек и оптимизаций. А самое главное улучшена безопасность, что для нас - основа выбора.
Для подключения создадим/откроем файл:
nano /etc/yum.repos.d/mongodb-org-3.0.repo
И внесём в него следующее содержание:
[mongodb-org-3.0] name=MongoDB Repository baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/ gpgcheck=0 enabled=1
Обращаю Ваше внимание, что версии для 32-битных систем нет!
Далее, сама установка:
yum install mongodb-org
Сразу же пропишем её в автозагрузку:
chkconfig mongod on
И запустим:
service mongod start
Не забываем, что MongoDB по умолчанию не включает авторизацию пользователей. Если Вы ещё при этом откроете её наружу - будет очень плохо ;-)
Поэтому, первым делом, мы создадим root пользователя и включим авторизацию по паролю.
Заходим в консоль управления БД:
mongo
Следуя официальной документации, создадим базу admin, в которой создадим root пользователя:
use admin db.createUser( { user: "root", pwd: "passwd", roles: [ "userAdminAnyDatabase", "dbAdminAnyDatabase", "readWriteAnyDatabase" ] } )
P.S. Кстати, по желанию, можно сразу добавить root-пользователю права для создания резервных копий баз данных. Команда ниже в списке.
Далее, выходим из консоли с помощью команды "exit" или сочетания клавиш "ctrl+d".
Проверяем, что мы записали пароль и всё работаем :-)
mongo -u 'root' admin -p
Да, указать базу, к которой мы подключаемся - обязательно. По ней идёт проверка пользователя.
Так, теперь нам нужно включить механизм аутентификации. Для этого открываем файл конфигурации:
nano /etc/mongod.conf
И раскомментируем строку:
auth=true
В версии старше 3.0.7 необходимо раскомментировать строку security и дописать ниже строку, по примеру, соблюдая пробелы:
security: authorization: enabled
Сохраняем, выходим, перезапускаем mongodb:
service mongod restart
Кстати, если Вам всё же надо открыть её наружу, в том же файле есть параметр "bind_ip=", в котором надо изменить "127.0.0.1" на Ваш внешний IP. И перезапустить mongodb. Не забудьте проверить, что у Вас есть соответствующее правило в iptables! Или он выключен, как у не правильных пацанов :-)
Проверяем?
mongo
Пустило? Так и должно быть :-) Дело в том, что больше Вы ничего сделать не сможете. Ни посмотреть, ни уж тем более создать.
Ну, вот и всё. Ниже список полезных команд для начала работы.
- Создать пользователя root:
use admin db.createUser( { user: "root", pwd: "passwd", roles: [ "userAdminAnyDatabase", "dbAdminAnyDatabase", "readWriteAnyDatabase" ] } )
- Создать новую БД (коллекцию):
db.createCollection('New_database')
- Создать другого пользователя:
use database db.createUser( { user: "username", pwd: "passwd", roles: [ { role: "readWrite", db: "database" } ] } )
- Удалить пользователя
db.dropUser("username")
- Поменять пароль пользователю:
db.changeUserPassword("username", "passwd")
- Дать права пользователю:
db.grantRolesToUser( "user", [ { role: "dbOwner", db: "database" } ] )
- Убрать права
db.revokeRolesFromUser( "user", [ { role: "dbOwner", db: "database" } ] )
- Посмотреть права
use database db.getUser("username")
- Посмотреть всех пользователей
db.getUsers()
- Чтобы пользователь root мог делать dump всех БД необходимо дать ему дополнительно права "backup" (изменения с версии 2.6)
use admin db.grantRolesToUser( "root", [ { role: "backup", db: "admin" } ] )
- Восстановить бекап
mongorestore --db database -uroot -ppass --authenticationDatabase admin --drop /folder/to/dump/
Добавить комментарий