A great MySQL session

I found this great MySQL session over here. It has a clever approach for creating a big table, and shows how to invoke shell commands from the `mysql` client.

USE test;
SET GLOBAL innodb_file_per_table=1;
SET GLOBAL autocommit=0;

-- Create an uncompressed table with a million or two rows.
CREATE TABLE big_table AS SELECT * FROM information_schema.columns;
INSERT INTO big_table SELECT * FROM big_table;
INSERT INTO big_table SELECT * FROM big_table;
INSERT INTO big_table SELECT * FROM big_table;
INSERT INTO big_table SELECT * FROM big_table;
INSERT INTO big_table SELECT * FROM big_table;
INSERT INTO big_table SELECT * FROM big_table;
INSERT INTO big_table SELECT * FROM big_table;
INSERT INTO big_table SELECT * FROM big_table;
INSERT INTO big_table SELECT * FROM big_table;
INSERT INTO big_table SELECT * FROM big_table;
COMMIT;
ALTER TABLE big_table ADD id int unsigned NOT NULL PRIMARY KEY auto_increment;

SHOW CREATE TABLE big_table\G

select count(id) from big_table;

-- Check how much space is needed for the uncompressed table.
\! ls -l data/test/big_table.ibd

CREATE TABLE key_block_size_4 LIKE big_table;
ALTER TABLE key_block_size_4 key_block_size=4 row_format=compressed;

INSERT INTO key_block_size_4 SELECT * FROM big_table;
commit;

-- Check how much space is needed for a compressed table
-- with particular compression settings.
\! ls -l data/test/key_block_size_4.ibd

Administering PostgreSQL

So I found this article which said:

 $ sudo -u postgres psql
 postgres=> alter user postgres password 'apassword';
 postgres=> create user your-user createdb createuser password 'passwd';
 postgres=> create database your-db-name owner your-user;
 postgres=> \q

Note: to enable password logins for the ‘postgres’ admin account, edit: /etc/postgresql/9.4/main/pg_hba.conf and after this line:

local   all             postgres                                peer

Add this line:

local   all             postgres                                md5

Creating a user and database in PostgreSQL

To create a database and user account for use on PostgreSQL:

root@devotion:~# su - postgres

postgres@devotion:~$ psql
psql (8.4.21)
Type "help" for help.

postgres=# create user "www-data" superuser;
CREATE ROLE

postgres=# create database mydb with owner "www-data";
CREATE DATABASE

postgres=# \c mydb
psql (8.4.21)
You are now connected to database "mydb".
                                            ^
mydb=# alter user "www-data" with password 'secret';
ALTER ROLE