উবুন্টুতে মাইসিকুয়েলের রুট পাসওয়ার্ড রিসেট করা

মাঝে মাঝেই এমন হয় যে মাইসিকুয়েলের রুট পাসওয়ার্ড খুজেঁ পাওয়া যাচ্ছে না । বেশীরভাগ ক্ষেত্রেই দেখা যায় সার্ভার প্রথমবার সেটাপ করার সময় বেশ শক্ত পোক্ত রুট পাসওয়ার্ড সেট করা হয়, এরপর নিজের এ্যাপ্লিকেশন এর জন্য নতুন মাইসিকুয়েল ইউজার তৈরি করে নেই । রুট পাসওয়ার্ডটা কোথাও নোট করে না রাখলে পরবর্তীতে ওটা আর মনে করতে পারি না । এরকম পরিস্থিতিতে রুট ইউজারের পাসওয়ার্ডটা রিসেট করা ছাড়া কোন উপায় থাকে না ।

এই ব্লগ পোস্টে আমরা দেখবো কিভাবে আমরা সহজেই উবুন্টুতে মাইসিকুয়েলের পাসওয়ার্ড রিসেট করে নিতে পারি । যদিও উবুন্টুর জন্য কমান্ড গুলো লেখা, এগুলো ডেবিয়ান লিনাক্সেও কাজ করার কথা । আর অন্য কোন ডিস্ট্রোর ক্ষেত্রে সামান্য পরিবর্তন করা লাগতে পারে ।

মাইসিকুয়েল সার্ভিস বন্ধ করা

রুট পাসওয়ার্ড রিসেট করতে গেলে আমাদের প্রথমেই মাইসিকুয়েল এর সার্ভিস বন্ধ করতে হবে । উবুন্টুর জন্য:

অথবা, ডেবিয়ান এবং উবুন্টু দুটোতেই কাজ করবে এই কমান্ডটি:

গ্রান্ট টেবিল ছাড়াই মাইসিকুয়েল রান করা

এবার আমাদের যেটা করতে হবে তা হলো মাইসিকুয়েল এর পাসওয়ার্ড চেক করা হয় যেই টেবিলটা থেকে, সেটিকে স্কিপ করে মাইসিকুয়েল চালু করা। এটা স্কিপ করলে মাইসিকুয়েল আর পাসওয়ার্ড চেক করবে না আগের মত করে। ফলে মাইসিকুয়েল এ আমরা রুট এ্যাকাউন্ট এ এ্যাক্সেস করতে পারবো কোন পাসওয়ার্ড ছাড়াই ।

পাসওয়ার্ড রিসেট করা

এইবার এই কমান্ডটি রান করি:

এই কমান্ডটি মাইসিকুয়েল সার্ভারে কানেক্ট করবে এবং mysql ডাটাবেইজটি ব্যবহার করার জন্য সিলেক্ট করবে ।

এইবার পাসওয়ার্ড পরিবর্তন করার পালা । এটার জন্য আমরা এই মাইসিকুয়েল কুয়েরিটা চালাবো:

এই কুয়েরি আমাদের রুট ইউজারের জন্য নতুন পাসওয়ার্ড (এক্ষেত্রে NEW_PASSWORD) এ্যাসাইন করবে, প্রিভিলেজ ফ্লাশ করবে (সহজ ভাষায় পার্মিশন রিলোড করবে) এবং মাইসিকুয়েল সার্ভার থেকে ডিসকানেক্ট করবে ।

পুনরায় মাইসিকুয়েল স্বাভাবিকভাবে রান করা

আমরা মাইসিকুয়েলের পার্মিশন চেক কে ফাকি দিয়ে রুট ইউজারের জন্য নতুন পাসওয়ার্ড সেট করে দিয়েছি । এখন আমরা নরমালি মাইসিকুয়েল সার্ভার চালালেই নতুন পাসওয়ার্ড কাজ করবে । এজন্য আমরা আমাদের একটু আগে রান করা mysqld প্রসেসটি টার্মিনেট করে মাইসিকুয়েল রিস্টার্ট দিবো ।

ব্যাস, এখন আমাদের নতুন সেট করে দেওয়া পাসওয়ার্ডই কাজ করবে!

Mac OS X Lion: Homebrew, PHP54, MySQL and PEAR

In one of my old posts, I noted short documentation on how to get started with the AMP stack on Mac OS X Lion. In that setup, I was using the default PHP and downloaded MySQL from the mysql website. In this post, I am going to describe how I used homebrew to setup my AMP environment with ease!

The Homebrew Magic
Homebrew is a cool tool for Mac OS users. Written in Ruby, this beautiful tool works as a package manager for Mac OS. Unlike Mac Ports or Fink, homebrew takes less space, uses the default os x tools to compile everything to a custom location. This makes life suck less and clutter free!

To install PHP 5.4 branch using homebrew, just issue this command:

PS: If you want to customize the installation (like installing the mysql module by default) add necessary configuration options. Using the “bash-completion” formula from brew, you can hit tabs to see available installation options.

To view information on your PHP 5.4 installation via brew, type in:

Seperate MySQL Installation: Where is the ctl?
I have installed MySQL separately. I added the mysql and mysqldmin to my bash_profile like this:

And to start/stop/restart mysql server, I added:

That allows me to do:

Using PEAR
Homebrew installs all the PEAR packages to “/usr/local/Cellar/php54/5.4.3/lib/php”. So, I added it to my php include_path.

For PEAR to work correctly, we need sudo. If there are tools involved in the pear setup which can be run from command line (eg. phpunit), the binary files are stored in: “/usr/local/Cellar/php54/5.4.3/bin”.

I added the above path to my .bash_profile for convenience 🙂

Getting started with AMP stack on Mac OS X Lion

The other day, I got myself a Macbook Pro which runs OS X Lion. Coming from the Linux world where everything is available at finger tips via package managers, I was at first lost. I tried MAMP and Zend Server CE. I had some issues with Zend Server CE and custom virtual hosts – mostly because I couldn’t figure out which bits to be changed. MAMP worked out pretty well. But I wanted to use the native builds of the AMP stack. I know about macports and homebrew but wanted to do things myself!

(1) Mac OS X ships with built in apache. I enabled “Web Sharing” from System Preference > Sharing. It turned on viewing of my ~/Sites directory at http://localhost/~masnun/. It works but not pretty helpful.

(2) I edited /etc/apache2/httpd.conf to change the document root to ~/Sites. Now I could see my home page on localhost.

(3) I tried creating virtual hosts at ~/VirtualHosts – this worked with MAMP but with the built in Apache, it can not load the virtualhosts from that location because of permission issues. So instead, I reinstated the default location for vhosts inside the “extra” directory. I appended all my virtualhosts in one file. It works!

(4) “NameVirtualHosts *” and a separate virtual host for localhost is must.

(5) Mac OS X has a built in PHP. I just created the default php configuration file at /etc/php.ini

(6) I downloaded MySQL from their website. Installed the packages and imported my existing databases.

(7) PHP by default expects the mysql unix socket to be in /var/mysql/mysql.sock but the package from mysql creates the socket at /tmp/mysql.sock. So I had to edit the socket for mysql, pdo-mysql and mysqli. I needed to change them all because WP uses mysql, phpmyadmin uses mysqli and ZF uses pdo.

(8) I ran the pear installer (as a phar file inside /usr/lib/php) to install pear and pecl.

(9) To install mcrypt extension, I downloaded libmcrypt and source of PHP 5.3.10. I changed directory to PHP’s mcrypt extension directory. Ran “phpize”, “make” and “sudo make install”. Copied the generated extension to my custom extensions directory.

(10) Restarted apache at every step. It’s now working fine 🙂

Import SQL Script to MySQL using the Command Line

Summary: We have acquired a large databse dump which we need to import into our local system. Since the database size is large, phpmyadmin can’t help. MySQL command line tool comes to our rescue 🙂


Change directory to where our SQL script is:

First login to mysql:

Change database to our target database:

Execute the SQL Script: