Mysql: Difference between revisions

From Network Security Wiki
Content added Content deleted
Line 129: Line 129:
mysql> SET GLOBAL general_log = 'ON';
mysql> SET GLOBAL general_log = 'ON';


= Misc =
= Inserting Image to DB =
*To avoid password prompt create ~/.my.cnf file as follows:
Source code can be found at my GIT Hub:

nano ~/.my.cnf

<pre>
[client]
# for local server use localhost
#host=localhost
host=10.0.1.100
user=root
password=pwd@123
[mysql]
pager=/usr/bin/less
</pre>

* Running query from Shell directly:
mysql -u root -ppwd@123 -e 'select * from MasterDB where sr='71111121';' codered

*Inserting Image to DB, source code can be found at my GIT Hub:
https://github.com/amanjosan2008/ImageDB
https://github.com/amanjosan2008/ImageDB



Revision as of 20:33, 10 October 2017



Installation

For Ubuntu:

sudo apt-get install mysql-server

Login as root

mysqladmin -u root -p

Playing with Databases

Creating Databases

Create a Database:

mysqladmin -u root -p create testdb

Or

create database testdb;

Check Databases:

mysql -u root -p
show databases;

Select a Database and check its tables:

use testdb;
show tables;

Checking Table contents:

show columns from column_name;

Creating Tables

Generic SQL syntax to create a MySQL table

CREATE TABLE table_name (column_name column_type);
 CREATE TABLE book_tbl(
 book_id INT NOT NULL AUTO_INCREMENT,
 book_title VARCHAR(100) NOT NULL,
 book_author VARCHAR(40) NOT NULL,
 submission_date DATE,
 PRIMARY KEY ( book_id )
 );

Inserting Data

 INSERT INTO book_tbl
 (book_title, book_author, submission_date)
 VALUES
 ("Learn MySQL", "Aman", NOW());

Fetching Data

SELECT * from book_tbl;
SELECT * from book_tbl WHERE tutorial_author = 'Aman';
SELECT * from book_tbl WHERE tutorial_author LIKE '%man';

Updating Data

 UPDATE book_tbl 
   SET book_title = 'Learning JAVA' 
   WHERE book_id = 3;

Sorting Data

SELECT * from book_tbl ORDER BY book_author ASC

User Administration

Creating a user:

CREATE USER test IDENTIFIED BY 'test123';

Grant access to a DB to a user created on fly:

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON testdb.* TO 'guest'@'localhost' IDENTIFIED BY 'guest123';

Connecting to a database directly:

mysql testdb -u guest -pguest123

Access Control

Allows the user guest to connect to the database.

grant usage on . to guest@localhost identified by 'guest123';

Allows the user guest from the localhost full access to testdb:

grant all privileges on testdb.* to mguest@localhost;

Dumping Databases

Export DB

mysqldump testdb > testdb.sql -p

Import DB

mysql testdb < /var/www/html/test.com/testdb.sql -p

External Connections

The default port of the database server is 3306 If you are unable to connect to the database, try disabling the IPTables:

iptables -F

PHPMySQL

Installation

sudo apt-get install phpmyadmin php-mbstring php-gettext

Enable the PHP extensions:

sudo phpenmod mcrypt
sudo phpenmod mbstring

Restart apache service:

sudo systemctl restart apache2

Access the application:

https://10.1.1.1/phpmyadmin

Run below command if you get Not Found error:

sudo ln -s /usr/share/phpmyadmin /var/www/html/

Query Log

TO figure out the query being sent to mysql server:

mysql -u root -p
mysql> SET GLOBAL log_output = "FILE";
mysql> SET GLOBAL general_log_file = "/var/log/mysql/query.log";
mysql> SET GLOBAL general_log = 'ON';

Misc

  • To avoid password prompt create ~/.my.cnf file as follows:
nano ~/.my.cnf
[client]
# for local server use localhost
#host=localhost
host=10.0.1.100
user=root
password=pwd@123
[mysql]
pager=/usr/bin/less
  • Running query from Shell directly:
mysql -u root -ppwd@123 -e 'select * from MasterDB where sr='71111121';' codered
  • Inserting Image to DB, source code can be found at my GIT Hub:
https://github.com/amanjosan2008/ImageDB



References





{{#widget:DISQUS |id=networkm |uniqid=Mysql |url=https://aman.awiki.org/wiki/Mysql }}