Install MySQL Server on the Ubuntu operating system
Install MySQL
Install MySQL server menggunakan terminal
sudo apt-get update
sudo apt-get install mysql-server
Pemasang menginstal MySQL dan semua dependensi.
Jika utilitas instalasi aman tidak diluncurkan secara otomatis setelah instalasi selesai, masukkan perintah berikut:
sudo mysql_secure_installation utility
Utilitas ini meminta Anda untuk menentukan kata sandi root mysql dan opsi terkait keamanan lainnya, termasuk menghapus akses jarak jauh ke pengguna root dan mengatur kata sandi root.
Izinkan remote access
Jika Anda mengaktifkan iptables dan ingin terhubung ke database MySQL dari komputer lain, Anda harus membuka port di firewall server Anda (port default adalah 3306). Anda tidak perlu melakukan ini jika aplikasi yang menggunakan MySQL berjalan di server yang sama.
Jalankan perintah berikut untuk mengizinkan akses jarak jauh ke server mysql:
sudo ufw enable
sudo ufw allow mysql
Start MySQL service
Setelah instalasi selesai, Anda dapat memulai layanan database dengan menjalankan perintah berikut. Jika layanan sudah dimulai, sebuah pesan memberitahu Anda bahwa layanan sudah berjalan:
sudo systemctl start mysql
Luncurkan saat reboot
Untuk memastikan bahwa server database diluncurkan setelah reboot, jalankan perintah berikut:
sudo systemctl enable mysql
Konfigurasikan antarmuka
MySQL, secara default tidak lagi terikat (mendengarkan) antarmuka yang dapat diakses dari jarak jauh. Edit “bind-address” langsung di nano/etc/mysql/mysql.conf.d/mysqld.cnf:
bind-address = 127.0.0.1 ( The default. )
bind-address = XXX.XXX.XXX.XXX ( The ip address of your Public Net interface. )
bind-address = ZZZ.ZZZ.ZZZ.ZZZ ( The ip address of your Service Net interface. )
bind-address = 0.0.0.0 ( All ip addresses. )
Restart the mysql service.
sudo systemctl restart mysql
Mulai shell mysql
Ada lebih dari satu cara untuk bekerja dengan server MySQL, tetapi artikel ini berfokus pada pendekatan yang paling dasar dan kompatibel, shell mysql.
Pada prompt perintah, jalankan perintah berikut untuk meluncurkan shell mysql dan masukkan sebagai pengguna root
/usr/bin/mysql -u root -p
Saat Anda dimintai kata sandi, masukkan kata sandi yang Anda atur pada waktu penginstalan, atau jika Anda belum menyetelnya, tekan Enter untuk mengirimkan tanpa kata sandi.
Prompt mysql shell berikut akan muncul:
mysql>
Set root password
Jika Anda masuk dengan memasukkan kata sandi kosong, atau jika Anda ingin mengubah kata sandi root yang Anda atur, Anda dapat membuat atau mengubah kata sandi tersebut.
Untuk versi lebih lama dari MySQL 5.7, masukkan perintah berikut di shell mysql, ganti kata sandi dengan kata sandi baru Anda:
UPDATE mysql.user SET Password = PASSWORD('password') WHERE User = 'root';
Untuk versi MySQL 5.7 dan yang lebih baru, masukkan perintah berikut di shell mysql, ganti kata sandi dengan kata sandi baru Anda:
UPDATE mysql.user SET authentication_string = PASSWORD('password') WHERE User = 'root';
Agar perubahan diterapkan, muat ulang informasi pengguna yang disimpan dengan perintah berikut:
FLUSH PRIVILEGES;
Catatan: saya menggunakan huruf besar semua untuk perintah SQL. Jika Anda mengetikkan perintah itu dalam huruf kecil, itu akan berfungsi. Dengan konvensi, perintah ditulis dalam huruf besar semua untuk membuatnya menonjol dari nama bidang dan data lain yang sedang dimanipulasi.
Jika Anda perlu mengatur ulang kata sandi root nanti, lihat Mengatur ulang kata sandi root MySQL.
Lihat pengguna
MySQL menyimpan informasi pengguna dalam databasenya sendiri. Nama databasenya mysql. Di dalam database itu, informasi pengguna ada dalam tabel, kumpulan data, bernama pengguna. Jika Anda ingin melihat pengguna apa yang diatur di tabel pengguna MySQL, jalankan perintah berikut:
SELECT User, Host, authentication_string FROM mysql.user;
Daftar berikut menjelaskan bagian-bagian dari perintah :
SELECT memberitahu MySQL bahwa Anda meminta data.
User, Host, authentication_string memberi tahu MySQL bidang apa yang Anda inginkan untuk dilihat. Bidang adalah kategori untuk data dalam tabel. Dalam hal ini, Anda mencari nama pengguna, host yang terkait dengan nama pengguna, dan entri kata sandi terenkripsi.
FROM mysql.user " memberitahu MySQL untuk mendapatkan data dari database mysql dan tabel pengguna.
simbol titik koma (;) mengakhiri perintah.
Catatan: Semua kueri SQL diakhiri dengan titik koma. MySQL tidak memproses kueri sampai Anda mengetik titik koma.
Host pengguna
Contoh berikut adalah output untuk kueri sebelumnya:
SELECT User, Host, authentication_string FROM mysql.user;
+------------------+-----------+-------------------------------------------+
| User | Host | authentication_string |
+------------------+-----------+-------------------------------------------+
| root | localhost | *756FEC25AC0E1823C9838EE1A9A6730A20ACDA21 |
| mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| debian-sys-maint | localhost | *27E7CA2445405AB10C656AFD0F86AF76CCC57692 |
+------------------+-----------+-------------------------------------------+
Pengguna dikaitkan dengan sebuah host, khususnya, host dari mana mereka terhubung. Pengguna root dalam contoh ini didefinisikan untuk localhost, untuk alamat IP localhost, dan nama host server. Anda biasanya perlu menetapkan pengguna hanya untuk satu host, yang biasanya Anda sambungkan.
Jika Anda menjalankan aplikasi di komputer yang sama dengan server MySQL, host yang terhubung secara default adalah localhost. Setiap pengguna baru yang Anda buat harus memiliki localhost di bidang host mereka.
Jika aplikasi Anda terhubung dari jarak jauh, entri host yang dicari MySQL adalah alamat IP atau nama host DNS dari komputer jarak jauh (yang berasal dari klien).
Pengguna anonim
Dalam output contoh, satu entri memiliki nilai host tetapi tidak ada nama pengguna atau kata sandi. Itu adalah pengguna anonim. Saat klien terhubung tanpa nama pengguna yang ditentukan, klien mencoba terhubung sebagai pengguna anonim.
Anda biasanya tidak menginginkan pengguna anonim, tetapi beberapa instalasi MySQL menyertakannya secara default. Jika Anda melihatnya, Anda harus menghapus pengguna tersebut (lihat nama pengguna dengan tanda kutip kosong, seperti ' ') atau tetapkan kata sandi untuknya.
Buat database
Ada perbedaan antara database server dan database, meskipun istilah tersebut sering digunakan secara bergantian. MySQL adalah server basis data, artinya ia melacak basis data dan mengontrol akses ke sana. Basis data menyimpan data, dan basis data inilah yang coba diakses oleh aplikasi ketika mereka berinteraksi dengan MySQL.
Beberapa aplikasi membuat database sebagai bagian dari proses penyiapannya, tetapi yang lain mengharuskan Anda untuk membuat database sendiri dan memberi tahu aplikasi tentang hal itu.
Untuk membuat database, masuk ke shell mysql dan jalankan perintah berikut, ganti demodb dengan nama database yang ingin Anda buat:
CREATE DATABASE demodb;
Setelah database dibuat, Anda dapat memverifikasi pembuatannya dengan menjalankan kueri untuk membuat daftar semua database. Contoh berikut menunjukkan kueri dan contoh keluaran:
SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| demodb |
| mysql |
+--------------------+
3 rows in set (0.00 sec)
Add database user
Ketika aplikasi terhubung ke database menggunakan pengguna root, mereka biasanya memiliki lebih banyak hak istimewa daripada yang mereka butuhkan. Anda dapat menambahkan pengguna yang dapat digunakan aplikasi untuk terhubung ke database baru. Dalam contoh berikut, pengguna bernama demouser dibuat.
Untuk membuat pengguna baru, jalankan perintah berikut di shell mysql:
INSERT INTO mysql.user (User,Host,authentication_string,ssl_cipher,x509_issuer,x509_subject)
VALUES('demouser','localhost',PASSWORD('demopassword'),'','','');
Saat Anda membuat perubahan pada tabel pengguna di database mysql, beri tahu MySQL untuk membaca perubahan dengan menghapus hak istimewa, sebagai berikut:
FLUSH PRIVILEGES;
Verifikasi bahwa pengguna dibuat dengan menjalankan kueri SELECT lagi:
SELECT User, Host, authentication_string FROM mysql.user;
+------------------+-----------+-------------------------------------------+
| User | Host | Password |
+------------------+-----------+-------------------------------------------+
| root | localhost | *756FEC25AC0E1823C9838EE1A9A6730A20ACDA21 |
| mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| debian-sys-maint | localhost | *27E7CA2445405AB10C656AFD0F86AF76CCC57692 |
| demouser | localhost | *0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6 |
+------------------+-----------+-------------------------------------------+
Berikan izin pengguna basis data
Tepat setelah Anda membuat pengguna baru, ia tidak memiliki hak istimewa. Pengguna dapat masuk, tetapi tidak dapat digunakan untuk membuat perubahan basis data apa pun.
Berikan izin penuh kepada pengguna untuk database baru Anda dengan menjalankan perintah berikut:
GRANT ALL PRIVILEGES ON demodb.* to demouser@localhost;
Siram hak istimewa untuk membuat perubahan resmi dengan menjalankan perintah berikut:
FLUSH PRIVILEGES;
Untuk memverifikasi bahwa hak istimewa tersebut telah disetel, jalankan perintah berikut:
SHOW GRANTS FOR 'demouser'@'localhost';
2 rows in set (0.00 sec)
MySQL mengembalikan perintah yang diperlukan untuk mereproduksi izin pengguna itu jika Anda ingin membangun kembali server. PENGGUNAAN pada \*.\* berarti pengguna tidak mendapatkan hak istimewa apa pun secara default. Perintah itu ditimpa oleh perintah kedua, yang merupakan hibah yang Anda jalankan untuk database baru.
+-----------------------------------------------------------------------------------------------------------------+
| Grants for demouser@localhost |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'demouser'@'localhost' IDENTIFIED BY PASSWORD '*0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6' |
| GRANT ALL PRIVILEGES ON `demodb`.* TO 'demouser'@'localhost' |
+-----------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
Ringkasan
Jika Anda baru saja membuat database dan pengguna, Anda selesai. Konsep yang dibahas di sini akan memberi Anda awal yang kuat untuk mempelajari lebih lanjut.