Sunday, August 2, 2015

Introduction to Redis

Preface

I like to try new technologies in software development. Recently, I've needed to save monitoring stats of our Threat Analyzer software. I required a database which should be very fast and easy to use in any platforms. After researching for this requirement I found Redis. I've used it for monitoring engine and messaging framework.

Introduction to Redis

I created a presentation about Redis to introduce it to my colleagues in Datis Pars.
Its agenda is:
  • What is Redis?
  • Features
  • Persistence
  • Data types
  • Commands
  • Publish / Subscribe
  • Sort
  • Transactions
  • Replication
  • Cluster

Thursday, March 26, 2015

Reset MySQL root password

MySQL

Preface

In some circumstances you need to reset MySQL root without knowing current password of it. For example you forget the password. You can change the password of the root user easily. The following guide is tested on Ubuntu 12.04 based on MySQL 5.5.

Reset root password (without knowing the current password)

To do so, please follow the instructions below:

Step 1: Stop the MySQL Service

At first, you need to stop the MySQL service:
$ sudo /etc/init.d/mysql stop

Step 2: Start the MySQL daemon in safe mode with skipping grants

Please run the MySQL in safe mode with skipping grants parameter:
$ sudo mysqld_safe --skip-grant-tables &

Step 3: run the MySQL prompt as root user without password

Now, you can enter the MySQL command line as root user without password:
$ mysql -u root

Step 4: Update the password of root user

Run the following commands to update root user password. Please replace "NEW-ROOT-PASSWORD" with the desired password:
mysql> use mysql;
mysql> update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
mysql> flush privileges;
mysql> quit

Step 5: Restart the MySQL service

You should restart the MySQL service to check the new password:
$ sudo /etc/init.d/mysql stop
$ sudo /etc/init.d/mysql start

Step 6: Login with the new password

Now, login to the MySQL prompt with the new password:
$ mysql -u root -p

Saturday, February 7, 2015

MySQL and Java workshop

Saeid Zebardast at workshop
Me at workshop

Preface

A few weeks ago, there was a Ubuntu 14.10 release party in Tehran, Iran. I had a workshop about developing software with MySQL and Java. Nearly 70 people were attended.
The workshop had three part:
  1. MySQL for beginners
  2. Java for beginners
  3. Developing software with MySQL and Java
Also, I create cheat sheets for Java and MySQL for participants.  I'm going to publish the presentations and cheat sheets in this post.

MySQL for beginners

The agenda for this presentation is:
  • Introduction
  • Installation
  • Execute SQL Statements
  • SQL Language
  • Some of The Most Important SQL Commands
  • SQL Syntax
  • Data Types
  • Operators
  • Some exercises

Java for beginners

The agenda for this presentation is:
  • Introduction
  • JVM
  • Java Principles
  • Java History
  • Java Uses
  • Installation
  • Java Syntax
  • Data Types
  • Variables
  • Operators
  • Select Statements
  • Iteration Statements
  • Comments Syntax
  • Access modifiers
  • Methods
  • Classes
  • Inheritance
  • Interfaces
  • Abstract
  • Java File Structure
  • Simple exercise


Developing software with MySQL and Java

The agenda for this presentation is:

  • Requirements
  • MySQL Data Definition
  • Java Classes
  • Methods for PhonebookApp
  • Compile and Run

MySQL Cheat Sheet


Java Cheat Sheet


Photos

Saeid Zebardast - MySQL and Java workshop
Saeid Zebardast - MySQL and Java workshop

MySQL and Java workshop
MySQL and Java workshop

Saeid Zebardast - MySQL and Java workshop
Saeid Zebardast - MySQL and Java workshop

MySQL and Java workshop
MySQL and Java workshop

Ubuntu 14.10 Release Party
Ubuntu 14.10 Release Party

Wednesday, October 22, 2014

How to auto-load MySQL on startup on OSX 10.10 (Yosemite)

Problem
After upgrading to OSX Yosemite(10.10), MySQL stopped loading on startup.
The MySQL documentation says:
The Startup Item installation adds a variable MYSQLCOM=-YES- to the system configuration file /etc/hostconfig. If you want to disable the automatic startup of MySQL, change this variable to MYSQLCOM=-NO-.

So, I opened that file and it says:
# This file is going away

AFPSERVER=-NO-
AUTHSERVER=-NO-
TIMESYNC=-NO-
QTSSERVER=-NO-
MYSQLCOM=-YES-
As OSX mentioned this file is going away.

Solution
You need to create a Property List file (.plist) to start MySQL automatically on system startup.
First, create a new property list file:
sudo vim /Library/LaunchDaemons/com.mysql.mysql.plist
Add the following lines to it:
<!--?xml version="1.0" encoding="UTF-8"?-->
<plist version="1.0">
  <dict>
    <key>KeepAlive</key>
    <true />
    <key>Label</key>
    <string>com.mysql.mysqld</string>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/local/mysql/bin/mysqld_safe</string>
      <string>--user=mysql</string>
    </array>        
  </dict>
</plist>
Then update permissions and add it to launchctl:
sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist
sudo chmod 644 /Library/LaunchDaemons/com.mysql.mysql.plist
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist
That's it. Now the MySQL service will be started on OS X startup.