service mongod start on debian doesnt work - mongodb

I created a instance of linux debian on Google Compute Engine.
I Install git, node.js, python and some other things without problems
But when I install mongodb, when finish the installation and the installation try to run mongod, said:
[FAIL] Starting database: mongod failed!
I try with: sudo service mongod start and was the same.
I try many thing like:
rm mongodb.lock
Change path of data to / data / db
Change permisions to mongodb.log
But nothing work.
When I run /etc/init.d/mongod start
The error is:
start-stop-daemon: unable to September gid to 65534 (Operation not permitted)
  failed!
Any idea what could be the error?
The mongodb.log is empty so, I can paste here the results of verbose.
Thanks

If you are seeing this kind of error log in the apt-get log of mongodb-org:
Package mongodb-org-server is not configured yet.
This maybe related to the GCE debian image bug with the locale
https://github.com/andsens/bootstrap-vz/issues/49
So a way around this is to do:
export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
sudo locale-gen en_US.UTF-8
sudo dpkg-reconfigure locales
The dpkg-reconfigure command will open a dialog for selecting the desires locales. Just select generate all, then choose e_US.UTF-8
Then you can follow the steps in :
http://docs.mongodb.org/manual/tutorial/install-mongodb-on-debian/
As you have probably have done before.
This worked for me in gce debian-7 image today.

I had to download without apt-get install, and install the deb package separatly.
Before install the package, I run this commands..
export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
sudo locale-gen en_US.UTF-8
sudo dpkg-reconfigure locales
And that was all, now I have mongodb running in my debian machine.
Thanks.

Related

How to install postgresql-client to Amazon EC2 Linux machine?

I am trying to install postgresql for the meta data of hive on Amazon EC2 Linux machine.
And at that point, I am trying to connect postgresql outside docker image. Inside, I can connect the postgresql.
I tried this command:
[ec2-user#ip-****-***-** ~]$ sudo yum install postgresql-client -y
and the result:
Failed to set locale, defaulting to C
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core | 3.7 kB 00:00:00
No package postgresql-client available.
Error: Nothing to do
To ensure locale, I tried these ones:
[ec2-user#ip-***-***-*** ~]$ echo "$LANG"
en_US.UTF-8
[ec2-user#ip-***-***-*** ~]$ echo "$LC_CTYPE"
UTF-8
Then, I tried this one install postgresql-client lastly:
[ec2-user#ip-***-***-*** ~]$ sudo amazon-linux-extras install postgresql-client
Topic postgresql-client is not found.
I am not so familiar with these technologies, if you can help I will be so appreciated
Install postgresql package
sudo yum install postgresql
As mentioned by #Anon Coward in comments, this package contains the postgresql client. Check it with
yum search postgresql
If you get the error...
No match for argument: postgresql ...
I found that AWS Linux is a dynamic changing OS, so here is the current method + how to detect a new way to do this...
Current method (as of Oct 21, 2022)
(I have Machine Image (AMI): Amazon Linux 2022)
$ sudo yum update
$ sudo yum install postgresql13
$ psql --version
psql (PostgreSQL) 13.5
Future proof answer
Try this first ...
$ sudo yum update
$ sudo yum search "postgres"
... and look in the output for a line like this: postgresql13.aarch64 : PostgreSQL client programs. This tells you the current version of an installable client package name - in this case postgresql13. Now you know which package to install and avoid: No match for argument: postgresql error.
TLDR;
It seems, for Linux that Amazon now says to use yum directly vs. the old amazon-linux-extras here... Install software packages on an Amazon Linux instance. Then you wonder, how to know which package name to use to install it, which is here: Find software packages on an Amazon Linux instance. I used a small part of the name as a 'key' to search for: sudo yum search "postgres" which got me the answer, by looking at the output.
This currently works for my version of Amazon linux:
$ uname -a
Linux ip-0-0-0-0.ec2.internal 5.15.43-20.123.amzn2022.aarch64 #1 SMP Thu May 26 17:03:36 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux
This is a new instance with almost nothing added, not even additional yum archives, YMMV.

installing MongoDB to Mac

I need help to solve an error that happened while installing MongoDB into Macbook.
I run this command to kick off installing.
brew install mongosh
ALthough I got a warning msg, it seemed like fine.
I waited so long, and the installation got finally done.
Here is the screenshot of the end.
As you can see, I typed below to check if it was successfully installed.
mongosh --version
1.2.2
Finally I tried to run MongoDB, so typed "mongosh". And I got an error to run it and connect to db called cluster0.
mongosh
Current Mongosh Log ID: 621d2adedeee61396fddb367
Connecting to: mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.2.2
MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017
takeichimasahironoMacBook-Air:~ masa$ mongosh "mongodb+srv://cluster0.8tjjn.mongodb.net/myFirstDatabase" --apiVersion 1 --username mongo
Enter password: *****
Current Mongosh Log ID: 621d2b0f5a5370a82628edcc
Connecting to: mongodb+srv://cluster0.8tjjn.mongodb.net/myFirstDatabase?appName=mongosh+1.2.2
MongoServerSelectionError: read ECONNRESET
Any idea to solve this issue?? Thanks for your effort in advance.
In addition to the good answer above -- On newer versions mac os x the root directory is read only so you will need place your mongo data directory somewhere else, see this thread:
Read-only file system when attempting mkdir /data/db on Mac
I also needed to separately install the mongo command line tool from the cask:
$ brew install mongodb-community-shell
I recommend Homebrew for installing and managing applications on macOS. It is installed using the following command in the macOS terminal. Open up the terminal and paste the command:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
The terminal runs through a series of installation operations, and will probably create folders in your local machine to accommodate Homebrews storage requirements. You can find more detailed instructions here. After it's installed, update the Homebrew dependencies and install MongoDB on the command line:
brew update
brew tap mongodb/brew
brew install mongodb-community
It will take a few seconds. Once it's done, create a directory so MongoDB can store its data.
sudo mkdir -p /data/db
Now to make sure this data directory have the right permissions, you'll run this command:
sudo chown -R `id -un` /data/db
Now our data directory is ready with the right permissions. Next run mongo daemon. Which is a service which runs in the background and listens for connections on a given port. Run this command:
mongod
Now mongo daemon will be running in the background and can be used by your applications. Next, check your MongoDB version:
mongo --version
MongoDB shell version v4.2.6
The command-line results will show the version you have installed on your local machine. I recommend using the latest version of libraries and software whenever possible to avoid compatibility issues with client-side applications.

How to initialize initdb in fedora postgresql

I was installed postgresql on fedora 20 using rpm packages. i was manually downloaded the packages which were required for postgres those packages are as follows:
libxslt-1.1.28-5.fc20.x86_64.rpm postgresql-9.3.1-2.fc20.x86_64.rpm
postgresql93-9.3.4-1PGDG.f20.x86_64.rpm
postgresql93-contrib-9.3.4-1PGDG.f20.x86_64.rpm
postgresql93-libs-9.3.4-1PGDG.f20.x86_64.rpm
postgresql93-server-9.3.4-1PGDG.f20.x86_64.rpm
postgresql-libs-9.3.1-2.fc20.x86_64.rpm uuid-1.6.2-26.el7.x86_64.rpm
and i was installed those packages like this.
[root#fedorarpmpostgres ~]# rpm -ivh libxslt-1.1.28-5.fc20.x86_64.rpm
Output
Preparing... ################################# [100%]
package libxslt-1.1.28-5.fc20.x86_64 is already installed
so its already installed ok now i'm successfull in stalling all this packages. now how can i
install initdb
i tried like this way but i got this error.
[root#fedorarpmpostgres ~]# /usr/pgsql-9.3/bin/initdb --encoding=UTF8 --
Output:
pgdata=/var/lib/pgsql/9.3/data/
initdb: cannot be run as root
Please log in (using, e.g., "su") as the (unprivileged) user that will
own the server process.
one thing i was to inform you is i'm success in installing postgres through yum but i need postgres installation through rpm only like the way i did above
could any body help me how to initialize initdb.
Thanks.
With your root user, if you haven't set the postgres user password, which is not set by default, do a su postgres and you should be able to do a initdb.

Tilemill error Could not create datasource for type: 'postgis' (searched for datasource plugins in '/usr/lib/mapnik/input')

Followed link OSM Quick start
Had little bilt problems but i managed to perform all the steps. But when my opened my newly created project in tilemill we just mad it shows error
Could not create datasource for type: 'postgis' (searched for datasource plugins in '/usr/lib/mapnik/input') encountered during parsing of layer 'landuse_gen0' in Layer at line 197
Can somebody tell me what this error and how to resolve it. I have followed all steps n provide link above?
The "OSM Bright Quick Start" page is a bit outdated. A few differences to handle installing postgres/postgis for Linux Mint 17.1/Ubuntu 14.04 to handle in Step 0 + 1:
sudo apt-get install postgresql-9.3-postgis-2.1
sudo apt-get install mapnik-input-plugin-postgis
# Set every method to "trust"
sudo vim /etc/postgresql/9.3/main/pg_hba.conf
sudo /etc/init.d/postgresql restart
psql -U postgres -c "create database osm;"
psql -U postgres -d osm -f /usr/share/postgresql/9.3/contrib/postgis-2.1/postgis.sql
psql -U postgres -d osm -f /usr/share/postgresql/9.3/contrib/postgis-2.1/spatial_ref_sys.sql
This worked for me. Then follow with Step 2...
You should check the directory /usr/local/lib/mapnik/input, and you will find the file postgis.input is missing.
The reason is that when you compile mapnik, the dependency for plugin 'postgis' can not be satisfied. You can run python scons/scons.py INPUT_PLUGINS='postgis' in the shell and you would be reminded some dependency problem. So you should add the postgresql and postgis to the system environment before make mapnik.
Make sure postgresql94-devel has been already installed or you can run sudo yum install postgresql94-devel.Then, you can do like this
export PATH=$PATH:/usr/pgsql-9.4/bin:/usr/pgsql-9.4/lib:/usr/local/lib
and then use the ./configure,make and make install command for mapnik. After reinstallation of mapnik, you should find postgis.input in the directory /usr/local/lib/mapnik/input and then try again.

Cannot use commands 'postgres' or 'pg_ctl'

I am on Unix. I have got postgresql-9.3 installed.
When I want to start the server using pg_ctl or postgres, the terminal gives me:
The program 'postgres' is currently not installed. You can install it by typing:
sudo apt-get install postgres-xc
Can't I start the server without this postgres-xc?
This must be remnants of the postgres-xc package you had installed previously.
Since you just installed postgresql-9.3 and don't seem to have any databases in use, yet, I suggest to completely purge all postgres packages.
sudo apt-get purge postgresql-9.2
sudo apt-get purge postgresql-xc
...
Until there's nothing left:
dpkg -l | grep postgres
Then start from scratch. Your instance of pg_ctl seems to belong to the package postgres-xc. This should be gone after you've uninstalled the package. Find out with one of these commands:
dpkg -S pg_ctl
dlocate pg_ctl
apt-file search pg_ctl
pg_ctlcluster is provided by the package postgresql-common.
pg_ctl is provided by the package postgresql-9.3.
More about starting Postgres in the manual.
It is possible you might be missing a few things.
Try:
sudo apt-get install postgresql-client and
sudo apt-get install postgresql postgresql-contrib
The message about installing xc is a dud, it's probably suggesting that based on what it scanned inside the xc repositories.
Here's a good reference to this problem and its solution:
https://dba.stackexchange.com/questions/72580/missing-the-pg-ctl-package-in-postgres-9-3-installation
Due to reasons a normal install of postgres will not place the postgres binary file in the path.
Adding the right directory to the path solves the problem (temporarily).
PATH=/usr/lib/postgresql/9.3/bin:$PATH
To make it permanent on my Ubuntu machine I added the line to /etc/environment this makes it work for all users.
The correct way to set the PATH is different for different systems, for more info see see:
How to permanently set $PATH on Linux?
You must install postgresql-client:
sudo install postgresql-client
Try to enter this command to the console:
sudo -u postgres psql