Anda di halaman 1dari 9

Bagi teman-teman yang sudah sering sekali menggunakan MySQL sebagai database server-nya

mungkin sudah tidak asing lagi dengan beberapa tips dan trik yang ada pada tulisan kali ini Tapi
kenapa saya menulis ini, karena saya sendiri sering lupa dan membuat saya sering googling lagi
untuk kasus yang sama Beberapa perintah atau tips dan trik yang sering membuat saya lupa yaitu
:
1. Mengganti Password Root di MySQL
2. Mereset Password Root MySQL
3. Melihat DataBase Engine yang Terinstall
4. Backup Data dengan Menggunakan Perintah mysqldump
5. Restore Data Pada MySQL
6. Backup Per Tabel Menggunakan Perintah SELECT INTO OUTFILE
7. Insert Data Menggunakan Perintah LOAD DATA INFILE
8. Melihat Struktur Tabel di MySQL

1 Mengganti Password Root di MySQL


Ada kalanya kita merasa bahwa password untuk user root MySQL kita susah untuk di
ingat, nah untuk mengganti password root tersebut kita dapat menggunakan perintah
mysqladmin -u root -p’password_sekarang’ password ‘password_baru’ dimana
‘password_sekarang’ adalah password user root sebelum dirubah dan
‘password_baru’ adalah password baru yang ingin digunakan. Dan jika kita
menjalankannya dari terminal, maka hasilnya akan seperti tampilan dibawah ini :
2 martinus@martinus-laptop:~$ mysqladmin -u root -p'admin'
password 'password_baru'
martinus@martinus-laptop:~$ mysql -u root -ppassword_baru
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 33
Server version: 5.0.75-0ubuntu10.2 (Ubuntu)

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


buffer.

mysql>

3
4 Mereset Password Root MySQL
Nah jika pada langkah pertama diatas, kita diasumsikan telah mengetahui password root
mysql. Sekarang bagaimana jika kita kelupaan dengan password root mysql tersebut ?
Wah merupakan bencana dong ? Hm.. jangan panik dahulu, untuk mereset password
root mysql langkah pertama yang harus kita lakukan yaitu matikan dahulu service
mysqld-nya. Kalau di Slackware, kita bisa gunakan perintah /etc/rc.d/rc.mysqld
stop dengan menggunakan akses root seperti dibawah ini :
5 root@martinusadyh:[~]# /etc/rc.d/rc.mysqld stop
STOPPING server from pid file /var/run/mysql/mysql.pid
100418 11:38:21 mysqld ended
root@martinusadyh:[~]#

6 Untuk mengecek apakah service mysqld masih berjalan atau tidak, sekarang jalankan
perintah ps aux | grep mysqld dan pastikan tidak ada output mysqld seperti
dibawah ini :
7 root@martinusadyh:[~]# ps aux | grep mysqld
root@martinusadyh:[~]#

8 Sekarang mari jalankan lagi service mysqld dengan menggunakan opsi --skip-
grant-tables seperti dibawah ini :
9 root@martinusadyh:[~]# /usr/bin/mysqld_safe --skip-grant-
tables
nohup: ignoring input and redirecting stderr to stdout
Starting mysqld daemon with databases from /var/lib/mysql

10 Bukalah terminal baru dengan menggunakan kombinasi tombol CTRL+SHIFT+TAB


kemudian login-lah ke mysql dengan menggunakan user root tanpa password seperti
dibawah ini :
11 martinus@martinusadyh:[/]$ mysql -u root mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.84 Source distribution

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


current input statement.

mysql>

12 Setelah berhasil login dengan menggunakan user root tanpa password, sekarang reset-lah
password root mysql dengan menjalankan perintah update user set
password=PASSWORD('password-baru') where user='root'; dimana
password-baru adalah password baru yang ingin anda ganti seperti dibawah ini :
13 mysql> update user set Password=PASSWORD('123') where
user='root';
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0

14 Password root mysql berhasil direset, sekarang coba matikan lagi service mysqld-nya
dengan menggunakan perintah kill dan jalankan lagi service mysqld-nya secara normal,
setelah service mysqld berjalan dengan normal maka coba loginlah dengan menggunakan
user root dan password yang telah diganti seperti dibawah ini :
15 martinus@martinusadyh:[/]$ mysql -u root -p123
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.84 Source distribution

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


current input statement.

mysql>

16
17 Melihat DataBase Engine yang Terinstall
Sebelum membuat sebuah tabel yang menggunakan engine tertentu, sebaiknya mari kita
cek dahulu apakah server MySQL kita sudah mempunyai dukungan atau belum pada
engine yang akan kita gunakan. Sedangkan untuk melihat engine apa saja yang sudah
didukung pada server MySQL, kita dapat menggunakan perintah show engines\G seperti
dibawah ini :
Pastikan dahulu bahwa anda sudah login pada server MySQL anda !!
18 mysql> show engines\g
+------------+----------
+----------------------------------------------------------
------+
| Engine | Support | Comment
|
+------------+----------
+----------------------------------------------------------
------+
| MyISAM | DEFAULT | Default engine as of MySQL 3.23
with great performance |
| MEMORY | YES | Hash based, stored in memory,
useful for temporary tables |
| InnoDB | YES | Supports transactions, row-level
locking, and foreign keys |
| BerkeleyDB | NO | Supports transactions and page-
level locking |
| BLACKHOLE | YES | /dev/null storage engine
(anything you write to it disappears) |
| EXAMPLE | NO | Example storage engine
|
| ARCHIVE | YES | Archive storage engine
|
| CSV | YES | CSV storage engine
|
| ndbcluster | DISABLED | Clustered, fault-tolerant,
memory-based tables |
| FEDERATED | DISABLED | Federated MySQL storage engine
|
| MRG_MYISAM | YES | Collection of identical MyISAM
tables |
| ISAM | NO | Obsolete storage engine
|
+------------+----------
+----------------------------------------------------------
------+
12 rows in set (0.00 sec)

mysql>

19
20 Backup Data dengan Menggunakan Perintah mysqldump
Proses backup database merupakan sebuah proses yang sangat penting sekali, maka
sebaiknya kita berteman dekat dengan perintah mysqldump Untuk proses backup ini
sendiri ada berbagai cara yaitu :
Backup Standart
Untuk melakukan proses backup standart, kita bisa menggunakan perintah
mysqldump -B nama_database -u root -p > hasil_backup.sql dimana -B
nama_database ini adalah nama database yang ingin anda backup. Hasil dari
perintah ini adalah kita akan mendapatkan seluruh database schema (struktur
table) beserta isinya seperti dibawah ini :
martinus@martinus-laptop:~$ mysqldump -B latibatis -u
root -padmin > cb.sql
martinus@martinus-laptop:~$ more cb.sql
--
-- Current Database: `latibatis`
--

CREATE DATABASE /*!32312 IF NOT EXISTS*/


`latibatis` /*!40100 DEFAULT CHARACTER SET latin1 */;

USE `latibatis`;

--
-- Table structure for table `LAT`
--

DROP TABLE IF EXISTS `LAT`;


SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `LAT` (
`id` int(11) NOT NULL auto_increment,
`item_cd` varchar(15) default NULL,
`name` varchar(15) default NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `item_cd_2` (`item_cd`),
KEY `item_cd` (`item_cd`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT
CHARSET=latin1;
SET character_set_client = @saved_cs_client;

--
-- Dumping data for table `LAT`
--

LOCK TABLES `LAT` WRITE;


/*!40000 ALTER TABLE `LAT` DISABLE KEYS */;
INSERT INTO `LAT` VALUES (1,'003.01','BESI BETON'),
(2,'003.02','BESI BAJA'),(3,'003.03','BESI TUA');
/*!40000 ALTER TABLE `LAT` ENABLE KEYS */;
UNLOCK TABLES;

--
--
Dump completed on 2009-08-28 19:16:48
martinus@martinus-laptop:~$

Backup Schema DataBase-nya saja


Jika kita ingin hanya struktur tabelnya saja (schema database) nya saja yang
dibackup, anda dapat menggunakan perintah mysqldump -B nama_database -u
root -p -d > schema_backup.sql dimana opsi -d adalah opsi untuk mengambil
statement CREATE TABLE saja. Dan hasilnya adalah seperti dibawah ini :
martinus@martinus-laptop:~$ mysqldump -B latibatis -u
root -padmin -d > schmea_cb.sql
martinus@martinus-laptop:~$ more schmea_cb.sql
--
-- Current Database: `latibatis`
--

CREATE DATABASE /*!32312 IF NOT EXISTS*/


`latibatis` /*!40100 DEFAULT CHARACTER SET latin1 */;

USE `latibatis`;

--
-- Table structure for table `LAT`
--

DROP TABLE IF EXISTS `LAT`;


SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `LAT` (
`id` int(11) NOT NULL auto_increment,
`item_cd` varchar(15) default NULL,
`name` varchar(15) default NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `item_cd_2` (`item_cd`),
KEY `item_cd` (`item_cd`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT
CHARSET=latin1;
SET character_set_client = @saved_cs_client;

martinus@martinus-laptop:~$

Backup Isi DataBase-nya saja


Sedangkan kalau kita hanya ingin mengambil isi tabelnya saja, kita bisa
menggunakan perintah mysqldump -B nama_database -u root -p -t >
isitable_cb.sql seperti dibawah ini :
martinus@martinus-laptop:~$ mysqldump -B latibatis -u
root -padmin -t > isitable_cb.sql
martinus@martinus-laptop:~$ more isitable_cb.sql
--
-- Current Database: `latibatis`
--

CREATE DATABASE /*!32312 IF NOT EXISTS*/


`latibatis` /*!40100 DEFAULT CHARACTER SET latin1 */;

USE `latibatis`;

--
-- Dumping data for table `LAT`
--

LOCK TABLES `LAT` WRITE;


/*!40000 ALTER TABLE `LAT` DISABLE KEYS */;
INSERT INTO `LAT` VALUES (1,'003.01','BESI BETON'),
(2,'003.02','BESI BAJA'),(3,'003.03','BESI TUA');
/*!40000 ALTER TABLE `LAT` ENABLE KEYS */;
UNLOCK TABLES;
-- Dump completed on 2009-08-28 19:30:00
martinus@martinus-laptop:~$
Backup Isi DataBase Sesuai Kolom
Jika kita ingin mengambil isi tabel sesuai kolomnya, kita dapat menambahkan
opsi –complete-insert pada perintah mysqldump menjadi seperti dibawah ini:
martinus@martinus-laptop:~$ mysqldump -B latibatis -u
root -padmin -t --complete-insert >
isitable_complete_insert_cb.sql
martinus@martinus-laptop:~$ more
isitable_complete_insert_cb.sql
--
-- Current Database: `latibatis`
--

CREATE DATABASE /*!32312 IF NOT EXISTS*/


`latibatis` /*!40100 DEFAULT CHARACTER SET latin1 */;

USE `latibatis`;

--
-- Dumping data for table `LAT`
--

LOCK TABLES `LAT` WRITE;


/*!40000 ALTER TABLE `LAT` DISABLE KEYS */;
INSERT INTO `LAT` (`id`, `item_cd`, `name`) VALUES
(1,'003.01','BESI BETON'),(2,'003.02','BESI BAJA'),
(3,'003.03','BESI TUA');
/*!40000 ALTER TABLE `LAT` ENABLE KEYS */;
UNLOCK TABLES;

-- Dump completed on 2009-08-28 20:00:42


martinus@martinus-laptop:~$

21 Restore Data Pada MySQL


Pada tips dan trik nomor 3 diatas, kita sudah belajar bagaimana cara backup database
menggunakan perintah mysqldump. Nah sekarang setelah mendapatkan hasil backup
dari database, maka kita perlu juga untuk melakukan proses resore. Sedangkan untuk
me-restore hasil backup yang telah dilakukan pada langkah nomor 3 di atas, kita dapat
menggunakan perintah seperti dibawah ini :
22 martinus@martinus-laptop:~$ mysql -u root -padmin < cb.sql
martinus@martinus-laptop:~$

23
24 Backup Per Tabel Menggunakan Perintah SELECT INTO OUTFILE
Ada kalanya kita hanya ingin membackup tidak 1 database penuh, tetapi hanya pada
tabel-tabel tertentu saja. Untuk keperluan ini, kita juga dapat menggunakan perintah
select * from tabel_name into outfile '/path/file/backup.sql'; seperti contoh dibawah
ini:
25 mysql> select * from LAT into outfile '/tmp/DATA_LAT.sql'
FIELDS TERMINATED BY ',';
Query OK, 3 rows affected (0.00 sec)

mysql> quit;
martinus@martinus-laptop:~$ more /tmp/DATA_LAT.sql
1,003.01,BESI BETON
2,003.02,BESI BAJA
3,003.03,BESI TUA

26
27 Insert Data Per Tabel Menggunakan Perintah LOAD DATA INFILE
Sedangkan untuk menginsert data, kita juga dapat menggunakan perintah LOAD DATA
INFILE seperti dibawah ini :
28 mysql> LOAD DATA INFILE '/tmp/DATA_LAT.sql' INTO TABLE LAT
FIELDS TERMINATED BY ',';
mysql> select * from LAT;
+----+---------+------------+
| id | item_cd | name |
+----+---------+------------+
| 1 | 003.01 | BESI BETON |
| 2 | 003.02 | BESI BAJA |
| 3 | 003.03 | BESI TUA |
+----+---------+------------+
3 rows in set (0.00 sec)

mysql>

29
30 Melihat Struktur Tabel di MySQL
Untuk melihat struktur tabel yang telah kita buat pada MySQL, kita dapat menggunakan
perintah show create table table_name\G dimana table_name adalah nama tabel yang
ingin dilihat. Sedangkan contohnya adalah sebagai berikut :
31 mysql> show create table LAT\G
*************************** 1. row
***************************
Table: LAT
CREATE TABLE `LAT` (
`id` int(11) NOT NULL auto_increment,
`item_cd` varchar(15) default NULL,
`name` varchar(15) default NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `item_cd_2` (`item_cd`),
KEY `item_cd` (`item_cd`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

mysql>

32 Langkah-langkah yang ditulis disini memang sangat sederhana dan mungkin masih ada
cara yang lebih canggih dan lebih elegan lagi Untuk lebih jelas dan lebih detailnya,
halaman manual MySQL sangat-sangat dianjurkan untuk selalu dibaca Nah jika sudah
menemukan cara yang lebih elegan, mungkin ada ketertarikan untuk membuat semuanya
menjadi sedikit lebih otomatis dengan bantuan berbagai macam script seperti disini dan
disana Nah klo sudah membuat script otomatis, boleh donk di bagi-bagi disini :malu:
33
34 http://martinusadyh.web.id/2009/08/31/mysql-tips-n-trik/

Anda mungkin juga menyukai