Difference between revisions of "SUNScholar/Prepare Ubuntu/S06"

From Libopedia
Jump to navigation Jump to search
 
(61 intermediate revisions by one other user not shown)
Line 1: Line 1:
 
<center>
 
<center>
   '''[[SUNScholar/Prepare Ubuntu/S07|STEP 7]]'''
+
   '''[[SUNScholar/Prepare Ubuntu/S07|NEXT - STEP 7]]'''
 
</center>
 
</center>
  
==Step 6. Install PostgreSQL==
+
==Step 6. Install the PostgreSQL database server==
 
DSpace can use the PostgreSQL or Oracle  database server for the main database.
 
DSpace can use the PostgreSQL or Oracle  database server for the main database.
  
 
The following procedure installs the PostgreSQL database server and creates the "dspace" database and "dspace" database user with the very secret dspace database user password.
 
The following procedure installs the PostgreSQL database server and creates the "dspace" database and "dspace" database user with the very secret dspace database user password.
 
+
<center>
 
  <font color="red">'''The PostgreSQL database server was chosen because it is open source software and this in keeping with the open access pathos.'''</font>
 
  <font color="red">'''The PostgreSQL database server was chosen because it is open source software and this in keeping with the open access pathos.'''</font>
 +
</center>
  
==Step 6.1: Install PostgreSQL==
+
==<font color="red">'''PLEASE NOTE'''</font>==
 +
*Please see critical database connection bug: https://jira.duraspace.org/browse/DS-2563
 +
*http://wiki.lib.sun.ac.za/index.php/SUNScholar/Optimisations/Database
  
sudo apt-get install postgresql libpg-java
+
==[[SUNScholar/Prepare_Ubuntu/S06/Ubuntu-16.04|For Ubuntu 16.04 LTS]]==
 +
==[[SUNScholar/Prepare_Ubuntu/S06/Ubuntu-14.04|For Ubuntu 14.04 LTS]]==
  
==Step 6.2: Setup PostgreSQL host permissions==
+
==[[SUNScholar/Prepare_Ubuntu/S06/Ubuntu-12.04|For Ubuntu 12.04 LTS]]==
Change database user permissions to "trust" only.
 
sudo sed -i 's/ident/trust/' /etc/postgresql/9.1/main/pg_hba.conf
 
  
sudo sed -i 's/md5/trust/' /etc/postgresql/9.1/main/pg_hba.conf
+
<center>
 
+
  '''[[SUNScholar/Prepare Ubuntu/S05|PREVIOUS - STEP 5]]'''
See example below.
+
</center>
<pre>
 
# DO NOT DISABLE!
 
# If you change this first entry you will need to make sure that the
 
# database superuser can access the database using some other method.
 
# Noninteractive access to all databases is required during automatic
 
# maintenance (custom daily cronjobs, replication, and similar tasks).
 
#
 
# Database administrative login by Unix domain socket
 
local  all            postgres                                trust
 
 
 
# TYPE DATABASE        USER            ADDRESS                METHOD
 
 
 
# "local" is for Unix domain socket connections only
 
local  all            all                                    trust
 
# IPv4 local connections:
 
host    all            all            127.0.0.1/32            trust
 
# IPv6 local connections:
 
host    all            all            ::1/128                trust
 
# Allow replication connections from localhost, by a user with the
 
# replication privilege.
 
#local  replication    postgres                                peer
 
#host    replication    postgres        127.0.0.1/32            trust
 
#host    replication    postgres        ::1/128                trust
 
</pre>
 
 
 
Restart database server.
 
 
 
sudo /etc/init.d/postgresql restart
 
==Step 6.3: Create the PostgreSQL "dspace" user==
 
Create the "dspace" user with full privileges.
 
sudo createuser -U postgres -d -A -P dspace
 
 
 
If asked the following:
 
Shall the new role be allowed to create more new roles? (y/n) y
 
Answer "y" for yes.
 
 
 
==Step 6.4: Create the PostgreSQL 'dspace' database==
 
Create the "dspace" database with the "dspace" database user as owner.
 
sudo createdb -E UNICODE dspace
 
 
 
==Step 6.5: Setup PostgreSQL user passwords==
 
Become the postgres user
 
sudo su - postgres
 
 
 
Connect to the database server.
 
psql -U postgres
 
 
 
Set the postgres user password:
 
'''<font color="red">Note: Use your unique system admin password for this on a production system !'''</font>
 
ALTER ROLE postgres WITH PASSWORD 'XXXXXX';
 
 
 
Set the dspace user password:
 
'''<font color="red">Note: Use your unique dspace database password for this on a production system !'''</font>
 
ALTER ROLE dspace WITH PASSWORD 'XXXXXX';
 
 
 
Let the dspace database user own the dspace database
 
ALTER DATABASE dspace OWNER TO dspace;
 
 
 
Grant all privileges for the dspace database to the dspace user
 
GRANT ALL PRIVILEGES ON DATABASE dspace TO dspace;
 
 
 
Quit the database shell.
 
\q
 
 
 
We exit from postgres user shell, return to the dspace user shell.
 
exit
 
 
 
==Step 6.6: Setup database host and user access permissions==
 
Type the following:
 
 
 
sudo -i
 
 
 
sudo echo "## DSpace user access">> /etc/postgresql/9.1/main/pg_hba.conf
 
 
 
sudo echo "host    dspace      dspace      127.0.0.1/32        md5">> /etc/postgresql/9.1/main/pg_hba.conf
 
 
 
exit
 
 
 
==Step 6.6: Setup number of client connections==
 
Edit the postgresql config file:
 
 
 
sudo nano /etc/postgresql/9.1/main/postgresql.conf
 
 
 
Change the number of "max_connections" to 300.
 
 
 
{{NANO}}
 
 
 
==Step 6.7: Increase the kernel shared memory for postgresql connections==
 
Edit the "/etc/sysctl.conf" file:
 
 
 
sudo nano /etc/sysctl.conf
 
 
 
Copy and paste the following to the end of the file:
 
<pre>
 
# Postgres connections
 
kernel.shmmax = 500000000
 
kernel.shmall = 500000000
 
</pre>
 
 
 
{{NANO}}
 
 
 
Type the following in a terminal:
 
 
 
sudo sysctl -p
 
 
 
==Step 6.8: Restart the PostgreSQL server==
 
Type the following:
 
  
sudo /etc/init.d/postgresql restart
+
[[Category:Installation]]
 +
__NOTOC__

Latest revision as of 14:13, 30 October 2019

 NEXT - STEP 7

Step 6. Install the PostgreSQL database server

DSpace can use the PostgreSQL or Oracle database server for the main database.

The following procedure installs the PostgreSQL database server and creates the "dspace" database and "dspace" database user with the very secret dspace database user password.

The PostgreSQL database server was chosen because it is open source software and this in keeping with the open access pathos.

PLEASE NOTE

For Ubuntu 16.04 LTS

For Ubuntu 14.04 LTS

For Ubuntu 12.04 LTS

PREVIOUS - STEP 5