1. Login ke mysql dari terminal
    # mysql -u root -p
  2. Memilih database
    > USE MYSQL;
  3. Membuat user baru
    > CREATE USER 'userbaru'@'localhost' IDENTIFIED BY 'password';
  4. Lihat nama user yang ingin diubah aksesnya
    > SELECT USER,HOST FROM mysql.user;
  5. Update datanya menjadi yang diinginkan
    > UPDATE USER SET HOST = '%' WHERE USER='user';
  6. Mengaktifkan perubahan
    > FLUSH PRIVILEGES;
  7. Cek database sekarang atau user sekarang (yang sedang aktif)
    > SELECT [ database() ]; [ user() ]
  8. Mengubah password user mysql
    > SET PASSWORD FOR 'user'@'localhost' = PASSWORD('password');
    • Tanda % memastikan bahwa user dapat mengakses database via remote (any ip address).
  9. Mengizinkan (grant) user untuk database tertentu
    > GRANT ALL PRIVILEGES ON namaDatabase.* TO 'username'@'localhost';
    • localhost bisa diganti dengan ip address atau % tergantung user tersebut akan mengakses database dari host mana.
    • Untuk ‘ALL PRIVILEGES’ bisa diganti dengan opsi select, create, delete dsb.
    • contoh sintaksnya GRANT [type of permission] ON [database name].[table name] TO '[username]'@'localhost';
  10. Untuk melihat hasil privileges
    > SHOW GRANTS FOR 'user'@'localhost';
  11. Export database (dump database)
    # mysqldump -u (user) -p (nama_database) > namafile.sql
  12. Import database (.sql)
    # mysql -u (username) -p (new_database) < namafile.sql
  13. Import database yang terkompres. File database yang terkompres biasanya dalam bentuk xxx.sql.gz, untuk mengimpornya gunakan perintah berikut
    # zcat namadatabase.sql.gz | mysql -u root -p namaDatabase
  14. Melihat izin dari salah satu user mysql
    > SHOW GRANTS;
    > SHOW GRANTS FOR CURRENT_USER;
    > SHOW GRANTS FOR CURRENT_USER();
    > SHOW GRANTS FOR '[username]'@'localhost';
  15. Menghapus izin user dari database
    > REVOKE [type of permission] ON [database name].[table name] FROM '[username]'@'localhost';
  16. Menghapus user dari database
    > DROP USER '[username]'@'localhost';
  17. Menambah izin tertentu pada database
    > CREATE USER 'user'@'%' IDENTIFIED BY 'password';
    > CREATE DATABASE dbtes;
    > GRANT INSERT,SELECT ON dbtes.* TO 'user'@'%';

Mengganti password user mysql

Untuk mengganti password mysql dapat menggunakan perintah

> ALTER USER 'userName'@'nama-host' IDENTIFIED BY 'Password-Baru';
atau bisa dengan sintaks berikut
> UPDATE mysql.user SET Password=PASSWORD('Password-Baru') WHERE USER='userName' AND Host='nama-host';
Sintaks di atas dapat digunakan untuk mysql versi 5.7.6 ke atas. Untuk versi ke bawah dapat menggunakan sintaks berikut
> SET PASSWORD FOR 'userName'@'nama-host' = PASSWORD('Password-Baru');
Ingat untuk selalu flush privileges setelah selesai konfigurasi

Melihat password user root mysql

Untuk dapat melihat password root mysql dapat dilakukan dengan 2 cara yaitu pertama

# grep password /root/.my.cnf
atau..
# grep 'password' /var/log/mysqld.log
Cara pertama hanya berlaku pada pengaturan aplikasi tertentu seperti centos web panel atau sejenisnya. Untuk cara kedua dapat melihat di direktori user tersebut yang sedang login dan lihat history file nya
# cd ~
# ls -al
Kemudian cari file yang berkaitan dengan mysql cek dengan perintah cat

Menambahkan maksimal koneksi di Mysql

Biasanya pada saat develop aplikasi terdapat error seperti ini

Solusinya kita dapat menambahkan max_connectionsmenjadi contoh 200 pada file /etc/mysql/my.cnf

Melihat versi Mysql

Dari terminal

$ mysqld --version
# atau..
$ mysqladmin -V
# atau..
$ mysql -V

Dari mysql
> SHOW VARIABLES LIKE "%version%";

Troubleshoot Mysql

Pesan error

ERROR 1682 (HY000): Native table 'performance_schema'.'session_variables' has the wrong structure
Biasanya error tersebut terjadi ketika telah upgrade mysql.
Solusinya dengan restart service mysql.

Menambahkan Super Privileges

Menambahkan super privileges terhadap salah satu user.

> UPDATE mysql.user SET Super_Priv='Y' WHERE user='userA' AND host='%';