Sunday, November 30, 2014

Difference between MyISAM and InnoDB.

difference between MyISAM and InnoDB.

The main differences between InnoDB and MyISAM are support for "referential integrity" and "transactions".
If you need the database to enforce foreign key constraints, or you need the database to support then you would choose the InnoDB engine, since these features are absent from the MyISAM engine.
Those are the two biggest differences. Another big difference is concurrency. With MyISAM, a DML statement will obtain an exclusive lock on the table, and while that lock is held, no other session can perform a SELECT or a DML operation on the table.
Those two specific engines you asked about (InnoDB and MyISAM) have different design goals. MySQL also has other storage engines, with their own design goals.
So, in choosing between InnoDB and MyISAM, the first step is in determining if you need the features provided by InnoDB. If not, then MyISAM is up for consideration.
A more detailed discussion of differences is rather impractical (in this forum) absent a more detailed discussion of the problem space... how the application will use the database, how many tables, size of the tables, the transaction load, volumes of select, insert, updates, concurrency requirements, replication features, etc.

MYISAM:
1.    MYISAM supports Table-level Locking
2.    MyISAM designed for need of speed
3.    MyISAM does not support foreign keys hence we call MySQL with MYISAM is DBMS
4.    MyISAM stores its tables, data and indexes in diskspace using separate three different files. (tablename.FRM, tablename.MYD, tablename.MYI)
5.    MYISAM not supports transaction. You cannot commit and rollback with MYISAM. Once you issue a command it’s done.
6.    MYISAM supports fulltext search
7.    You can use MyISAM, if the table is more static with lots of select and less update and delete.

INNODB:
1.    InnoDB supports Row-level Locking
2.    InnoDB designed for maximum performance when processing high volume of data
3.    InnoDB support foreign keys hence we call MySQL with InnoDB is RDBMS
4.    InnoDB stores its tables and indexes in a tablespace
5.    InnoDB supports transaction. You can commit and rollback with InnoDB

 ==================================================================

How to convert all tables from MyISAM into InnoDB?

<?php

      // connectivity with your database here first

      //-------------------------------------------------

    $sql = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES

        WHERE TABLE_SCHEMA = 'your_database_name'

        AND ENGINE <> 'InnoDB'";

    $rs = mysql_query($sql);

    while($row = mysql_fetch_array($rs))

    {

        $tbl = $row[0];

        $sql = "ALTER TABLE $tbl ENGINE=INNODB";

        mysql_query($sql);

    }

?>



  

Monday, November 24, 2014

IP store in a File

keep IP  from visitors and place them on a file.


<?php
$file = fopen("ip.txt","a");
$ip=$_SERVER['REMOTE_ADDR'];
echo fwrite($file,$ip);
fclose($file);
?> 
this store in a file as name ip.txt
("ip.txt","a"); 
the second parameter can use "w" if you want only write mode 
"a" stands for append mode .

test

<pre class="brush: csharp">// Comment
public class Testing {
public Testing() {
}
 
public void Method() {
/* Another Comment
on multiple lines */
int x = 9;
}
}
</pre>

Upgrade Apache in Linux server

Upgrade Apache in Linux server

After the installation you have to enable SSL in httpd.conf. and generate server.crt and server.key file. Below the complete procedure :

1. Download Apache

cd /usr/src
wget http://www.apache.org/dist/httpd/httpd-2.4.7.tar.gz
tar xvf httpd-2.4.7.tar.gz

2. Download APR and APR-Util
cd /usr/src
wget https://centos.googlecode.com/files/apr-1.4.6.tar.gz
wget http://mirror.cogentco.com/pub/apache/apr/apr-util-1.5.3.tar.gz
tar xvf apr-1.4.6.tar.gz
tar xvf apr-util-1.5.3.tar.gz
Now put the APR and APR-Util you downloaded into your apache source files.
mv apr-1.4.6 /usr/src/httpd-2.4.7/srclib/apr
mv apr-util-1.5.3 /usr/src/httpd-2.4.7/srclib/apr-util

3.Compile
cd /usr/src/httpd-2.4.7
./configure --enable-so --enable-ssl --with-mpm=prefork --with-included-apr
make
make install
4. Enable SSL in httpd.conf
Apache configuration file httpd.conf is located under /usr/local/apache2/conf.
nano /usr/local/apache2/conf/httpd.conf
Uncomment the httpd-ssl.conf Include line and the LoadModule ssl_module line in the /usr/local/apache2/conf/httpd.conf file :
# LoadModule ssl_module modules/mod_ssl.so
# Include conf/extra/httpd-ssl.conf
View the httpd-ssl.conf to review all the default SSL configurations. For most cases, you don’t need to modify anything in this file.
nano /usr/local/apache2/conf/extra/httpd-ssl.conf
The SSL certificate and key are required before we start the Apache. The server.crt and server.key file mentioned in the httpd-ssl.conf needs to be created before we move forward.
cd /usr/local/apache2/conf/extra
egrep 'server.crt|server.key' httpd-ssl.conf

SSLCertificateFile "/usr/local/apache2/conf/server.crt"
SSLCertificateKeyFile "/usr/local/apache2/conf/server.key"
5. Generate server.crt and server.key file
First, Generate the server.key using openssl.
cd /usr/src
openssl genrsa -des3 -out server.key 1024
The above command will ask for the password. Make sure to remember this password. You need this while starting your Apache later.
Next, generate a certificate request file (server.csr) using the above server.key file.
openssl req -new -key server.key -out server.csr
Finally, generate a self signed ssl certificate (server.crt) using the above server.key and server.csr file.
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Copy the server.key and server.crt file to appropriate Apache configuration directory location.
cp server.key /usr/local/apache2/conf/
cp server.crt /usr/local/apache2/conf/
6. Start Apache
/usr/local/apache2/bin/apachectl start
If you are getting the below error message :
AH00526: Syntax error on line 51 of /usr/local/apache2/conf/extra/httpd-ssl.conf:
Invalid command 'SSLCipherSuite', perhaps misspelled or defined by a module not included in the server configuration
Make sure to uncomment the line shown below in httpd.conf :
vi /usr/local/apache2/conf/httpd.conf

# LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
Finally, this will prompt you to enter the password for your private key before starting up the apache. Verify that the Apache httpd process is running in the background.
ps -ef | grep http
You should see something like that :
root 29529 1 0 13:08 ? 00:00:00 /usr/local/apache2/bin/httpd -k start
charly 29530 29529 0 13:08 ? 00:00:00 /usr/local/apache2/bin/httpd -k start
charly 29531 29529 0 13:08 ? 00:00:00 /usr/local/apache2/bin/httpd -k start
charly 29532 29529 0 13:08 ? 00:00:00 /usr/local/apache2/bin/httpd -k start
root 29616 18260 0 13:09 pts/0 00:00:00 grep http
By default Apache SSL runs on 443 port. Open a web browser and verify that you can access your Apache using https://{your-ip-address}


GitHub repository using Git Bash command

  To add a project to a GitHub repository using Git Bash command line, you can follow these steps: Create a new repository on GitHub by logg...