Something DB Admin Need to Know About MySQL


Pertamanya, aku teruja lama sangat dah tak menaip blog ICT aku ni...hehe

Ok aku nak share pengalaman aku utk resolve beberapa masalah tentang MySQL yang pernah aku hadapi.


---------------------------------------------------------------------------------------------
OS : RHEL 5 & CentOS 5.x
---------------------------------------------------------------------------------------------
Isu # 1 : Password root terlupa...biasa bagi admin yang mungkin nyanyuk atau terlalu byk variasi password yang dicipta sampaikan lupe..

Caranya :
1) Memula stop dulu mysql
> /etc/init.d/mysqld stop

OUTPUT :
Stopping MySQL database server: mysqld.
 
2) Seterusnya start mysql dalam safe mode
> mysqld_safe --skip-grant-tables

OUTPUT :
[1] 5988
Starting mysqld daemon with databases from /var/lib/mysql
mysqld_safe[6025]: started

3) Kendian, anda boleh login user root tanpa password
> mysql --user=root mysql

OUTPUT :
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.1.15-Debian_1-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
 

4) Lepas te taip la command berikut
mysql > update user set Password=PASSWORD('new-password') where user='root'; [ENTER]
mysql > flush privileges; [ENTER]
mysql > exit; [ENTER]

5) Lepas tu stop mysqld safe mode tadi
> /etc/init.d/mysqld stop

OUTPUT :
Stopping MySQL database server: mysqld
STOPPING server from pid file /var/run/mysqld/mysqld.pid
mysqld_safe[6186]: ended

[1]+  Done                    mysqld_safe --skip-grant-tables
 

6) Seterusnya start semula mysqld anda
> /etc/init.d/mysqld start

7) Selesai dah reset password root anda. Cuba test.
# mysql -u root -p
 
Ingat2 le lepas ni..

---------------------------------------------------------------------------------------------

Isu # 2 : Anda tergatal tangan terdelete abis satu folder default data dan file apps mysql, tapi anda selamat sebab ada backup data..

* Jangan lupa buat backup /etc/my.cnf sebelum ikut step di bawah

Caranye :

1) Anda kena buangkan dulu mysql sedia ada yang dah diinstall dalam server untuk elakkan kekeliruan :
# yum remove mysql*

2) Kendian install mysql baru
# yum install mysql-server mysql
 
3) Lepas dah siap install tu run command ni pulak
# chkconfig mysqld on
# /etc/init.d/mysqld start


4) Sekarang kita anggap root user anda belum ada password
# mysqladmin -u root password NEWPASSWORD


Kalau dah ada root password dan nak tukar password baru, gini lak caranya nak change
# mysqladmin -u root -p'oldpassword' password newpass

5)  So skang ni aku tanak tunjuk cara nak restore DATA guna phpmyadmin sebab rasanya semua org dah tau. Aku akan tunjukkan cara untuk restore data guna command line. Memula make sure data backup tu dah ada dalam mana2 folder dalam server tadi.
# mysqladmin -u root -p
mysql > CREATE TABLE zorro;
mysql > exit;
# mysql -u root -p zorro < /data/backup/zorro.sql

6) Data anda mungkin melibatkan saiz yang teramat besar dan mungkin sampai beratus MB. Apabila try nak import file .sql yang bersaiz besar beratus MB ni, error berikut akan keluar :
(* lebih kurang) packet too large

So anda kena ubah file my.cnf bagi membolehkan import packet besar. Saiz packet paling besar leh transfer ke MySQL 5 hanyalah 1GB sahaja. Defaultnya hanya 16MB. Tapi rasanya dah mencukupi dengan saiz 1GB tu...
# nano /etc/my.cnf
copy dulu apa yang ada dalam my.cnf backup tadi ke dalam file tu.
Kendian tambah row ni kat bawah label sedia ada :
[mysqld]

set-variable = max_allowed_packet=32M

7) Restart mysql
# /etc/init.d/mysqld restart

8) Sekarang anda dah boleh import backup data yang bersaiz besau ratusan MB tu. Jika besar lagi, besarkan saiz packet allowed tu dalam my.cnf dan jgn lupa restart semula mysqld.

---------------------------------------------------------------------------------------------

Selamat berjaya!


~ Be a Creator Not a User ~
http://muzzotechspot.blogspot.com
http://muzzoshah.blogspot.com

Ulasan