====== EC2 MYSQL Config ====== [[http://comsci.liu.edu/~murali/cvs/pserver.htm]] [[http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html| EBS Volumes Doc]] [[https://www.howtoforge.com/install_nfs_server_and_client_on_debian_wheezy|NFS Mount]] [[https://theredblacktree.wordpress.com/2013/05/23/how-to-setup-a-amazon-aws-ec2-nfs-share/|Setting up NFS]] [[http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/storage_expand_partition.html#return-expanded-root-partition|Expand Root ]] EBS Volume leave the device file blank on console it will tell you what are valid devices lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 8G 0 disk └─xvda1 202:1 0 8G 0 part / xvdf 202:80 0 100G 0 disk # mkfs -t ext4 /dev/xvdf mke2fs 1.42.12 (29-Aug-2014) Creating filesystem with 26214400 4k blocks and 6553600 inodes Filesystem UUID: be67a30f-e553-4d86-ab41-e183d1e93a5b Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done # mount /dev/xvdf /assets # df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 7.8G 1.5G 6.0G 20% / udev 10M 0 10M 0% /dev tmpfs 3.0G 8.2M 3.0G 1% /run tmpfs 7.4G 0 7.4G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 7.4G 0 7.4G 0% /sys/fs/cgroup /dev/xvdf 99G 60M 94G 1% /assets A. Adding the CVSROOT environment variable Add the following two lines to your .cshrc (or equivalent) file: umask 007 (this will replace any existing umask) setenv CVSROOT $HOME/.cvsroot (.cvsroot is the main CVS repository) This sets up the CVSROOT environment variable, which is needed by CVS (for example, $HOME = /u2/rmflatt/ ). Logout and log back in for these changes to take affect B. Setting up the CVS repository so that other group members and yourself can checkout/in files. Go to your root directory type: groups (this determines which groups you are a part of. Remember the group name you wish to use CVS with) type: umask 007 (all new files will be locked to outsiders but readable and writable by the owner and group of the file) type: mkdir .cvsroot (this is the CVS repository) type: chgrp group_name .cvsroot (allows the group 'group_name' access to the .cvsroot repository - substitute group_name with a group name from step 2 [i.e. cs354_31] ) type: chmod 2770 .cvsroot (makes the repository owner and group readable and writable) type: mkdir .cvsroot/CVSROOT (all the files that CVS needs are stored within this directory) type: mkdir .cvsroot/project (where project is the name of the project you're working on. Make as many 'project's as desired. A module with the name 'project' will be used [this name goes in the file modules, as described on step 12]) type: cvs init (this populates the .cvsroot/CVSROOT directory with the files that CVS needs. This step assumes the CVSROOT environment variable has been set) Go to your root directory type: cvs checkout CVSROOT/modules (this creates a CVSROOT directory tree in your root) Edit the file (~/CVSROOT/modules) and insert a line that defines the module(s) you're working on (i.e. 'project'). Add the following line at the end of the file (you can add as many modules as needed): project_name project (where project_name is the name of the module you want defined, and project is the name of the directory containing the files [as created on step 8]) Save ~/CVSROOT/modules type: cvs commit -m "The message to log with this change" CVSROOT/modules (this commits this changed file into the repository) type: cvs release -d CVSROOT (this releases (and deletes) the CVSROOT working directory, which you just checked out/in) To import an existing directory (with files) into the repository: Go to the directory that contains any directories/files that you want to import into CVS type: cvs import -m 'Initial checkin' project_name VENDER_TAG RELEASE_TAG (This imports (recursively) any directories/files in the current directory into the project_name repository. VENDER_TAG and RELEASE_TAG can be anything) Installing MySQL with APT Install MySQL by the following command: shell> sudo apt-get install mysql-server Starting and Stopping the MySQL Server The MySQL server is started automatically after installation. You can check the status of the MySQL server with the following command: shell> sudo service mysql status Stop the MySQL server with the following command: shell> sudo service mysql stop To restart the MySQL server, use the following command: shell> sudo service mysql start [[https://console.aws.amazon.com/ec2/v2/home?region=us-east-1#Instances:sort=instanceType | Console]] mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost' -> WITH GRANT OPTION; mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%' -> WITH GRANT OPTION; mysql> CREATE USER 'admin'@'localhost' IDENTIFIED BY 'admin_pass'; mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost'; mysql> CREATE USER 'dummy'@'localhost'; #! /bin/bash mysql --user=root --password= --host=162.209.124.42 wrb@media-labs-server-2:~/queue/sql$ cat c #! /bin/bash mysql --user=wrb --password= --host=162.209.124.42 parks create database parks; netstat -tln Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN tcp6 0 0 :::8080 :::* LISTEN tcp6 0 0 :::80 :::* LISTEN tcp6 0 0 :::22 :::* LISTEN tcp6 0 0 127.0.0.1:8005 :::* LISTEN tcp6 0 0 :::8009 # vi /etc/my.cnf Step # 3: Once file opened, locate line that read as follows [mysqld] Make sure line skip-networking is commented (or remove line) and add following line bind-address=YOUR-SERVER-IP For example, if your MySQL server IP is 65.55.55.2 then entire block should be look like as follows: [mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp language = /usr/share/mysql/English bind-address = 65.55.55.2 # skip-networking .... .. nc -z -w1 54.87.112.192 3306 Connection to 54.87.112.192 port 3306 [tcp/mysql] succeeded! show tables; show grants; use mysql; describe user; mysql> show tables; +---------------------------+ | Tables_in_mysql | +---------------------------+ | columns_priv | | db | | event | | func | | general_log | | help_category | | help_keyword | | help_relation | | help_topic | | host | | ndb_binlog_index | | plugin | | proc | | procs_priv | | proxies_priv | | servers | | slow_log | | tables_priv | | time_zone | | time_zone_leap_second | | time_zone_name | | time_zone_transition | | time_zone_transition_type | | user | +---------------------------+ 24 rows in set (0.00 sec) mysql> 1. Configure Exim4 Exim4 is installed by default, but it needs to be reconfigured to setup a Gmail server configuration : # dpkg-reconfigure exim4-config You will ge thru a setup procedure. Make sure to set it up as follow : Option Choice Configuration type mail sent by smarthost; received via SMTP or fetchmail System mail name localhost IP-addresses to listen on for incoming SMTP connections 127.0.0.1 (to refuse external connections) Other destinations for which mail is accepted leave empty Machines to relay mail for leave empty IP address or host name of the outgoing smarthost smtp.gmail.com:587 Hide local mail name in outgoing mail ? no Keep number of DNS-queries minimal (Dial-on-Demand) ? no Delivery method for local mail mbox format in /var/mail/ Split configuration into small files ? yes 2. Declare your Gmail account As Gmail is using authentification on its smtp servers, you need to declare your account:password for the gmail servers. This is done in the file /etc/exim4/passwd.client where you have to declare any server gmail can use. /etc/exim4/passwd.client # password file used when the local exim is authenticating to a remote # host as a client. # # see exim4_passwd_client(5) for more documentation # # Example: ### target.mail.server.example:login:password gmail-smtp.l.google.com:your.account@gmail.com:yourpassword *.google.com:your.account@gmail.com:yourpassword smtp.gmail.com:your.account@gmail.com:yourpassword As Exim is quite touchy about the rights of its password files, it's better to explicitly setup proper ownership and permissions. # chown Debian-exim:root /etc/exim4/passwd.client # chmod 640 /etc/exim4/passwd.client Finally, we need to reload exim4 for the setup to be used. We will also configure it to do a delivery attempt for every message, whether frozen or not (-qff option). # update-exim4.conf # invoke-rc.d exim4 restart # exim4 -qff 3. Send your first mail Everything is now ready to send your first command line email. To send your first mail, you now need to prepare the email body in a text file. This email body should respect a specific structure that will provide : the Recipient (to:) the Sender (from:) the Subject (subject:) the mail text /root/mail-body.txt to : your.account@gmail.com from : Your server name subject : Test mail This is the first mail sent by my server's sendmail ! Now that the mail body is ready, you just need to pass it to sendmail with the -t option for it to send the mail : # cat /root/mail-body.txt | sendmail -t You should receive a mail like this one : debian-sendmail-message Hope it helps. # exportfs -v /assets (rw,wdelay,root_squash,no_subtree_check,sec=sys,rw,root_squash,no_all_squash) /asset2 (rw,wdelay,root_squash,no_subtree_check,sec=sys,rw,root_squash,no_all_squash) # cat /etc/exports # /etc/exports: the access control list for filesystems which may be exported # to NFS clients. See exports(5). # # Example for NFSv2 and NFSv3: # /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check) # # Example for NFSv4: # /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check) # /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check) # /assets *(rw,no_subtree_check) /asset2 *(rw,no_subtree_check) # [[http://docs.datastax.com/en/cassandra/2.0/cassandra/install/installDeb_t.html | Cassandra Install]]