welcome: please sign in

Diff for "MemberManual/Databases"

Differences between revisions 4 and 23 (spanning 19 versions)
Revision 4 as of 2007-10-27 05:29:49
Size: 3087
Comment: more clarifications
Revision 23 as of 2007-12-11 18:20:10
Size: 4655
Comment:
Deletions are marked like this. Additions are marked like this.
Line 7: Line 7:
== MySQL == = Introduction =

We use a custom tool called {{{dbtool}}} to handle many of the aspects of creating and deleting databases for MySQL and PostgreSQL.

= MySQL =

== Create an Account ==
Line 10: Line 16:
Run the following command: {{{dbtool mysql adduser}}}. You will be asked for a password. The user created will be the same as your log-in username. Run the following command:
Line 12: Line 18:
=== Creating and Deleting Databases ===
{{{dbtool}}} is also used to create new MySQL databases. Replace DATABASE with your desired database name: {{{dbtool mysql createdb DATABASE}}}. The database created will be USER_DATABASE (where USER is your username and database is the name you provided {{{dbtool}}}).
{{{
dbtool mysql adduser
}}}
Line 15: Line 22:
Delete a database with the following: {{{dbtool mysql dropdb DATABASE}}}. You will be asked for a password. The user created will be the same as your log-in username.
Line 17: Line 24:
=== Changing Your Password ===
If you need to change your MySQL password for security purposes or you have forgotten it, you may do so with this command: {{{dbtool mysql passwd}}}. You will be prompted to input a new password.
== Create a Database ==
{{{dbtool}}} is also used to create new MySQL databases. Replace DATABASE with your desired database name:
Line 20: Line 27:
=== Accessing Databases ===
For web applications, set the MySQL host/server to {{{mysql}}}. Default ports apply. Your password will be required. Please safeguard it. Remember that your database is really named USER_DATABASE, where DATABASE is the name you originally gave {{{dbtool}}}. Follow your software package's instructions.
{{{
dbtool mysql createdb DATABASE
}}}
Line 23: Line 31:
In addition, you can easily use the {{{mysql}}} shell to manipulate or analyze your databases: {{{ mysql -p -h mysql USER_DATABASE }}}. For security reasons, you cannot drop a database using the {{{mysql}}} shell. The database created will be USER_DATABASE (where USER is your username and DATABASE is the name you provided {{{dbtool}}}).

== Delete a Database ==
Delete a database with the following:

{{{
dbtool mysql dropdb DATABASE
}}}

== Changing Your Password ==
If you need to change your MySQL password for security purposes or you have forgotten it, you may do so with this command:

{{{
dbtool mysql passwd
}}}

You will be prompted to input a new password.

== Accessing Databases ==
For web applications, set the MySQL host/server to {{{mysql}}}. Default ports apply. Use your HCoop username. Your password will be required. Please safeguard it. Remember that your database is really named USER_DATABASE, where DATABASE is the name you originally gave {{{dbtool}}}. Follow your software package's instructions.

In addition, you can easily use the {{{mysql}}} shell to manipulate or analyze your databases:

{{{
mysql -p -h mysql USER_DATABASE
}}}

For security reasons, you cannot drop a database using the {{{mysql}}} shell.
Line 27: Line 62:
== PostgreSQL ==
To create a PostgreSQL user account, enter the following command on mire.hcoop.net: {{{dbtool postgres adduser}}}. You will not be prompted for a password since PostgreSQL utilizes a security model that is quite different from MySQL.
== Transferring Databases ==
If you have a MySQL database on another system and you wish to put that database onto our systems, you'll have to create the database on `mire` as stated above and do the following:
Line 30: Line 65:
On the system with the original database:
{{{
mysqldump --skip-add-drop-table -p USER_DATABASE > mydatabase.sql
scp ./mydatabase.sql mire.hcoop.net:~/
}}}
Line 31: Line 71:
=== Creating and Deleting Databases ===
Additionally, {{{dbtool}}} is used to create new MySQL databases. Replace DATABASE with your desired database name: {{{dbtool postgres createdb DATABASE}}}. The database created will be called USER_DATABASE (where USER is your username and DATABASE is the name you provided {{{dbtool}}}.
`--skip-add-drop-table` is important since by default no tables are granted the `DROP` command.
Line 34: Line 73:
Delete a database with the following command: {{{dbtool postgres dropdb DATABASE}}}. For security reasons, you cannot drop a database using the {{{psql}}} shell. Finally, import the database using `mire`:
{{{
mysql -h mysql -p USER_DATABASE < ~/mydatabase.sql
}}}
Line 36: Line 78:
=== Accessing Databases ===
For web applications, set the PostgreSQL host/server to {{{postgres}}}. Default ports apply. A password is not required. Remember that your database is really named USER_DATABASE, where DATABASE is the name you originally gave {{{dbtool}}}. Follow your software package's instructions.
Now that your database has tables, you may grant `DROP` permissions to them using `mysql-fixperms` without any arguments. Now you will be able to `DROP` tables when needed. If for some reason you have a MySQL dump that includes the `DROP` command, then you may run this script on your dumpfile to remove them:
Line 39: Line 80:
It is very easy to access your database using a PostgreSQL shell: {{{psql -h postgres USER_DATABASE}}}. {{{
sed 's/DROP TABLE/-- DROP TABLE/g' ~/mydatabase.sql > ~/mydatabase_nodrop.sql
}}}
Line 41: Line 84:
To learn more about the {{{psql}}} shell, take a loot at the [http://www.postgresql.org/docs/8.1/interactive/index.html PostgreSQL manual]. (Assuming, of course, that you don't have any jerk users in your database named "[http://xkcd.com/327/ Robert'); DROP TABLE Students;--]".)

Then import the dumpfile as written above.

= PostgreSQL =

== Create an Account ==
To create a PostgreSQL user account, enter the following command on mire.hcoop.net:

{{{dbtool postgres adduser}}}

You will not be prompted for a password since PostgreSQL utilizes a security model that is quite different from MySQL. The user created will be the same as your log-in username.

== Create a Database ==
Additionally, {{{dbtool}}} is used to create new Postgres databases. Replace DATABASE with your desired database name:

{{{
dbtool postgres createdb DATABASE
}}}

The database created will be called USER_DATABASE (where USER is your username and DATABASE is the name you provided {{{dbtool}}}).

== Delete a Database ==
Delete a database with the following command:

{{{
dbtool postgres dropdb DATABASE
}}}

For security reasons, you cannot drop a database using the {{{psql}}} shell.

== Accessing Databases ==
For web applications, set the PostgreSQL host/server to {{{postgres}}}. Default ports apply. Use your HCoop username. A password is not required. Remember that your database is really named USER_DATABASE, where DATABASE is the name you originally gave {{{dbtool}}}. Follow your software package's instructions.

It is very easy to access your database using a PostgreSQL shell:

{{{
psql -h postgres USER_DATABASE
}}}

To learn more about the {{{psql}}} shell, take a look at the [http://www.postgresql.org/docs/8.1/interactive/index.html PostgreSQL manual].

This is the chapter of the MemberManual that describes how to use PostgreSQL and MySQL databases on HCoop servers.

TableOfContents

Introduction

We use a custom tool called dbtool to handle many of the aspects of creating and deleting databases for MySQL and PostgreSQL.

MySQL

Create an Account

Creating a MySQL user account is an easy task with dbtool. It is available for use when you login to mire.hcoop.net.

Run the following command:

dbtool mysql adduser

You will be asked for a password. The user created will be the same as your log-in username.

Create a Database

dbtool is also used to create new MySQL databases. Replace DATABASE with your desired database name:

dbtool mysql createdb DATABASE

The database created will be USER_DATABASE (where USER is your username and DATABASE is the name you provided dbtool).

Delete a Database

Delete a database with the following:

dbtool mysql dropdb DATABASE

Changing Your Password

If you need to change your MySQL password for security purposes or you have forgotten it, you may do so with this command:

dbtool mysql passwd

You will be prompted to input a new password.

Accessing Databases

For web applications, set the MySQL host/server to mysql. Default ports apply. Use your HCoop username. Your password will be required. Please safeguard it. Remember that your database is really named USER_DATABASE, where DATABASE is the name you originally gave dbtool. Follow your software package's instructions.

In addition, you can easily use the mysql shell to manipulate or analyze your databases:

mysql -p -h mysql USER_DATABASE

For security reasons, you cannot drop a database using the mysql shell.

To learn more about the MySQL shell, review the [http://dev.mysql.com/doc/refman/5.0/en/ MySQL manual].

Transferring Databases

If you have a MySQL database on another system and you wish to put that database onto our systems, you'll have to create the database on mire as stated above and do the following:

On the system with the original database:

mysqldump --skip-add-drop-table -p USER_DATABASE > mydatabase.sql
scp ./mydatabase.sql mire.hcoop.net:~/

--skip-add-drop-table is important since by default no tables are granted the DROP command.

Finally, import the database using mire:

mysql -h mysql -p USER_DATABASE < ~/mydatabase.sql

Now that your database has tables, you may grant DROP permissions to them using mysql-fixperms without any arguments. Now you will be able to DROP tables when needed. If for some reason you have a MySQL dump that includes the DROP command, then you may run this script on your dumpfile to remove them:

sed 's/DROP TABLE/-- DROP TABLE/g' ~/mydatabase.sql > ~/mydatabase_nodrop.sql

(Assuming, of course, that you don't have any jerk users in your database named "[http://xkcd.com/327/ Robert'); DROP TABLE Students;--]".)

Then import the dumpfile as written above.

PostgreSQL

Create an Account

To create a PostgreSQL user account, enter the following command on mire.hcoop.net:

dbtool postgres adduser

You will not be prompted for a password since PostgreSQL utilizes a security model that is quite different from MySQL. The user created will be the same as your log-in username.

Create a Database

Additionally, dbtool is used to create new Postgres databases. Replace DATABASE with your desired database name:

dbtool postgres createdb DATABASE

The database created will be called USER_DATABASE (where USER is your username and DATABASE is the name you provided dbtool).

Delete a Database

Delete a database with the following command:

dbtool postgres dropdb DATABASE

For security reasons, you cannot drop a database using the psql shell.

Accessing Databases

For web applications, set the PostgreSQL host/server to postgres. Default ports apply. Use your HCoop username. A password is not required. Remember that your database is really named USER_DATABASE, where DATABASE is the name you originally gave dbtool. Follow your software package's instructions.

It is very easy to access your database using a PostgreSQL shell:

psql -h postgres USER_DATABASE

To learn more about the psql shell, take a look at the [http://www.postgresql.org/docs/8.1/interactive/index.html PostgreSQL manual].

MemberManual/Databases (last edited 2021-11-06 19:46:06 by ClintonEbadi)