MySQL adalah sistem manajemen basis data populer yang digunakan untuk aplikasi web dan server. Namun, MySQL tidak lagi dalam repositori CentOS dan MariaDB telah menjadi sistem database default yang ditawarkan. MariaDB dianggap sebagai pengganti adrop-in untuk MySQL dan akan cukup jika Anda hanya membutuhkan sistem database secara umum. Lihat panduan MariaDB di CentOS 7 kami untuk petunjuk penginstalan.
Jika Anda lebih suka MySQL, panduan ini akan memperkenalkan cara menginstal, mengkonfigurasi, dan mengelolanya di Linode yang menjalankan CentOS 7.
Database MySQL yang besar membutuhkan memori yang cukup besar. Untuk alasan ini, kami merekomendasikan penggunaan High Memory Linode untuk pengaturan tersebut.
Catatan Panduan ini ditulis untuk pengguna non-root. Perintah yang memerlukan hak istimewa yang lebih tinggi diawali dengansudo
. Jika Anda tidak terbiasa dengansudo
perintah, Anda dapat memeriksa panduan Pengguna dan Grup kami.
Sebelum Anda Mulai
-
Pastikan Anda telah mengikuti panduan Memulai dan Mengamankan Server Anda, dan nama host Linode telah disetel.
Untuk memeriksa nama host Anda, jalankan:
hostname hostname -f
Perintah pertama harus menunjukkan nama host pendek Anda, dan perintah kedua harus menunjukkan nama domain yang sepenuhnya memenuhi syarat (FQDN).
-
Perbarui sistem Anda:
sudo yum update
-
Anda membutuhkan
wget
untuk menyelesaikan panduan ini. Itu dapat diinstal sebagai berikut:yum install wget
Instal MySQL
MySQL harus diinstal dari repositori komunitas.
-
Unduh dan tambahkan repositori, lalu perbarui.
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm yum update
-
Instal MySQL seperti biasa dan mulai layanan. Selama instalasi, Anda akan ditanya apakah Anda ingin menerima hasil dari verifikasi GPG file .rpm. Jika tidak terjadi kesalahan atau ketidakcocokan, masukkan
y
.sudo yum install mysql-server sudo systemctl start mysqld
MySQL akan mengikat ke localhost (127.0.0.1) secara default. Silakan merujuk ke panduan akses jarak jauh MySQL kami untuk informasi tentang menghubungkan ke database Anda menggunakan SSH.
Catatan Mengizinkan akses tak terbatas ke MySQL pada IP publik tidak disarankan tetapi Anda dapat mengubah alamat yang didengarkannya dengan memodifikasibind-address
parameter di/etc/my.cnf
. Jika Anda memutuskan untuk mengikat MySQL ke IP publik Anda, Anda harus menerapkan aturan firewall yang hanya mengizinkan koneksi dari alamat IP tertentu.
Perkuat Server MySQL
-
Jalankan
mysql_secure_installation
script untuk mengatasi beberapa masalah keamanan dalam instalasi MySQL default.sudo mysql_secure_installation
Anda akan diberikan pilihan untuk mengubah kata sandi root MySQL, menghapus akun pengguna anonim, menonaktifkan login root di luar localhost, dan menghapus database pengujian. Anda disarankan untuk menjawab yes
untuk opsi ini. Anda dapat membaca lebih lanjut tentang skrip di Manual Referensi MySQL.
CatatanJika MySQL 5.7 telah diinstal, Anda akan memerlukan kata sandi sementara yang dibuat selama instalasi. Kata sandi ini dicatat dalam
/var/log/mysql.log
file, dan dapat ditemukan dengan cepat menggunakan perintah berikut.sudo grep 'temporary password' /var/log/mysqld.log
Menggunakan MySQL
Alat standar untuk berinteraksi dengan MySQL adalah mysql
klien yang menginstal dengan mysql-server
kemasan. Klien MySQL digunakan melalui terminal.
Login Root
-
Untuk masuk ke MySQL sebagai pengguna root:
mysql -u root -p
-
Saat diminta, masukkan kata sandi root yang Anda tetapkan saat skrip mysql_secure_installation dijalankan.
Anda kemudian akan disajikan dengan header selamat datang dan prompt MySQL seperti yang ditunjukkan di bawah ini:
mysql>
-
Untuk membuat daftar perintah untuk prompt MySQL, masukkan
\h
. Anda kemudian akan melihat:List of all MySQL commands: Note that all text commands must be first on line and end with ';' ? (\?) Synonym for `help'. clear (\c) Clear command. connect (\r) Reconnect to the server. Optional arguments are db and host. delimiter (\d) Set statement delimiter. NOTE: Takes the rest of the line as new delimiter. edit (\e) Edit command with $EDITOR. ego (\G) Send command to mysql server, display result vertically. exit (\q) Exit mysql. Same as quit. go (\g) Send command to mysql server. help (\h) Display this help. nopager (\n) Disable pager, print to stdout. notee (\t) Don't write into outfile. pager (\P) Set PAGER [to_pager]. Print the query results via PAGER. print (\p) Print current command. prompt (\R) Change your mysql prompt. quit (\q) Quit mysql. rehash (\#) Rebuild completion hash. source (\.) Execute an SQL script file. Takes a file name as an argument. status (\s) Get status information from the server. system (\!) Execute a system shell command. tee (\T) Set outfile [to_outfile]. Append everything into given outfile. use (\u) Use another database. Takes database name as argument. charset (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets. warnings (\W) Show warnings after every statement. nowarning (\w) Don't show warnings after every statement. For server side help, type 'help contents' mysql>
Buat Pengguna dan Database MySQL Baru
-
Pada contoh di bawah ini,
testdb
adalah nama database,testuser
adalah pengguna, danpassword
adalah kata sandi pengguna.create database testdb; create user 'testuser'@'localhost' identified by 'password'; grant all on testdb.* to 'testuser' identified by 'password';
Anda dapat mempersingkat proses ini dengan membuat pengguna sementara menetapkan izin basis data:
create database testdb; grant all on testdb.* to 'testuser' identified by 'password';
-
Kemudian keluar dari MySQL.
exit
Buat Tabel Contoh
-
Masuk kembali sebagai
testuser
.mysql -u testuser -p
-
Buat tabel contoh yang disebut pelanggan . Ini membuat tabel dengan bidang ID pelanggan bertipe INT untuk bilangan bulat (bertambah otomatis untuk catatan baru, digunakan sebagai kunci utama), serta dua bidang untuk menyimpan nama pelanggan.
use testdb; create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
-
Kemudian keluar dari MySQL.
exit
Setel Ulang Kata Sandi Root MySQL
Jika Anda lupa kata sandi root MySQL Anda, itu dapat direset.
-
Hentikan instance server MySQL saat ini, lalu mulai ulang dengan opsi untuk tidak meminta kata sandi.
sudo systemctl stop mysqld sudo mysqld_safe --skip-grant-tables &
-
Hubungkan kembali ke server MySQL dengan akun root MySQL.
mysql -u root
-
Gunakan perintah berikut untuk mengatur ulang kata sandi root. Ganti
password
dengan kata sandi yang kuat.use mysql; update user SET PASSWORD=PASSWORD("password") WHERE USER='root'; flush privileges; exit
-
Kemudian restart MySQL.
sudo systemctl start mysqld
Tune MySQL
MySQL Tuner adalah skrip Perl yang terhubung ke instance MySQL yang sedang berjalan dan memberikan rekomendasi konfigurasi berdasarkan beban kerja. Idealnya, instance MySQL harus telah beroperasi setidaknya selama 24 jam sebelum menjalankan tuner. Semakin lama instance berjalan, semakin baik saran yang akan diberikan oleh MySQL Tuner.
-
Unduh MySQL Tuner ke direktori home Anda.
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl
-
Untuk menjalankannya:
perl ./mysqltuner.pl
Anda akan dimintai nama dan kata sandi pengguna root MySQL. Keluaran akan menunjukkan dua bidang minat:Rekomendasi umum dan Variabel untuk disesuaikan.
MySQL Tuner adalah titik awal yang sangat baik untuk mengoptimalkan server MySQL tetapi akan lebih bijaksana untuk melakukan penelitian tambahan untuk konfigurasi yang disesuaikan dengan aplikasi yang menggunakan MySQL di Linode Anda.
Masih ada beberapa pertanyaan?Bergabunglah dengan Komunitas kami dan kirimkan pertanyaan Anda untuk penggemar Linode dan Linux lainnya untuk membantu Anda.
Pertanyaan Terkait:
- Cara menginstal phpMyAdmin di Centos7
- Bagaimana cara menyiapkan tumpukan LAMP/LEMP di Linode saya?
- Bagaimana cara menjalankan MySQL dan MongoDB?
Informasi Lebih Lanjut
Anda mungkin ingin berkonsultasi dengan sumber daya berikut untuk informasi tambahan tentang topik ini. Meskipun ini disediakan dengan harapan dapat bermanfaat, harap perhatikan bahwa kami tidak dapat menjamin keakuratan atau ketepatan waktu materi yang dihosting secara eksternal.
- Panduan Referensi MySQL 5.6
- Manual PHP MySQL
- Contoh Perl DBI untuk DBD::mysql
- Panduan Pengguna MySQLdb
- Tutorial Penyetel MySQL