Instalasi manual MySQL pada Windows. Dasar-Dasar Administrasi MySQL Menggunakan Baris Perintah Menghentikan Server mysql dari Baris Perintah




Untuk Win 32, pilih distribusi: Windows (x86, 32-bit), Arsip zip.

Untuk Win 64: Windows (x86, 64-bit), Arsip zip.

Setelah mengklik tombol Unduh, Anda akan melihat formulir pendaftaran, Anda dapat melewatinya dengan mengklik tautan di bawah - Tidak, terima kasih, bawa saja saya ke unduhan.

2. Buat folder instalasi. Misalnya . Dan bongkar isi arsip ke dalamnya sehingga menjadi folder bin, data, dokumen, dan lainnya berada di root folder instalasi.

3. Mari beralih ke membuat file konfigurasi (my.ini). Kami mengambil salah satu file biasa sebagai dasar:

  • my-small.ini - cocok untuk mereka yang menggunakan MySQL dari waktu ke waktu dan tidak ingin server memakan banyak sumber daya.
  • my-medium.ini juga merupakan konfigurasi yang ringan, tetapi cocok untuk mereka yang menggunakan MySQL secara reguler (pilihan yang bagus untuk server web rumahan).
  • my-large.ini dan my-huge.ini adalah untuk sistem yang digunakan sebagai server MySQL khusus. Namun, my-large.ini dapat digunakan untuk server rumahan jika Anda membutuhkan kinerja tambahan MySQL (RAM 512 MB tidak sebanyak sekarang ini).
  • my-innodb-heavy-4G - untuk server khusus dengan RAM 4 GB dan hanya menggunakan tabel InnoDB.

Dalam contoh ini, saya memilih my-medium.ini sebagai dasarnya. Ubah namanya menjadi my.ini dan letakkan di root folder instalasi ( C:\Program Files\MySQL\MySQL Server 5.5).

Buka untuk diedit (di Notepad biasa) dan segera setelah baris tambahkan dua parameter:

basedir=C:/Program Files/MySQL/MySQL Server 5.5 datadir=C:/Program Files/MySQL/MySQL Server 5.5/data

Perhatikan bahwa jalur menggunakan garis miring ke depan (/) dan bukan garis miring terbalik (\).

basedir adalah jalur ke folder instalasi.

datadir - jalur ke folder data (tempat semua basis data disimpan). Terkadang masuk akal untuk meletakkan data pada drive terpisah untuk meningkatkan kinerja atau memastikan keandalan.

Untuk berjaga-jaga, ini adalah fragmen dari file konfigurasi, setelah melakukan perubahan:

# Berbasis server MySQL=C:/Program Files/MySQL/MySQL Server 5.5 datadir=C:/Program Files/MySQL/MySQL Server 5.5/data port = 3306 socket = /tmp/mysql.sock skip-external-locking key_buffer_size = 16M max_allowed_packet = 1M table_open_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K InnoDB_sort_buffer_size = 8M

4. Langkah selanjutnya adalah menambahkan jalur C:\Program Files\MySQL\MySQL Server 5.5\bin ke variabel lingkungan PATH untuk mempermudah memulai MySQL dari baris perintah. Untuk melakukan ini, buka System Properties -> Advanced System Settings -> pada tab Advanced di bagian paling bawah, tombol "Variabel Lingkungan ...". Di jendela yang terbuka, gulir melalui variabel sistem hingga kami menemukan Path. Sorot baris ini dan klik "Edit...". Di akhir baris, tambahkan jalur Anda, pertahankan parameter yang ada:

Perhatikan bahwa jalur dipisahkan oleh titik koma. Pastikan Anda menyertakan titik koma di awal dan akhir jalur Anda.

5. Sebelum menjalankan uji coba, buka port masuk TCP 3306 di firewall Windows:


Jika Anda memiliki firewall opsional yang terinstal di sistem Anda, Anda juga harus membuka port TCP 3306 di firewall tersebut untuk koneksi masuk.

6. Sekarang kami sedang melakukan uji coba. Dalam prompt perintah yang dijalankan sebagai administrator (ini diperlukan jika UAC diaktifkan di Seven atau Vista), kami menjalankan:

mysqld --console

Beberapa baris akan ditampilkan di layar. Jika peluncuran berhasil, baris terakhir akan terlihat seperti ini:

Versi: "5.5.9-log" soket: "" port: 3306 MySQL Community Server (GPL)

Biarkan jendela ini terbuka, dan buka jendela baris perintah lain, tempat kami masuk:

MySQL -u akar

Jika koneksi berhasil, Anda akan melihat prompt baris perintah: mysql>

Mari kita lihat basis apa yang kita miliki:

tampilkan database;

Titik koma di akhir kueri SQL WAJIB!

Tanggapan tim:


Sekarang kami akhirnya yakin bahwa server berfungsi.

7. Pindah ke langkah berikutnya, Anda perlu mengatur kata sandi administrator MySQL (pengguna root). Secara default, kata sandi tidak disetel, dan ini harus diperbaiki. Di jendela MySQL yang sama, masukkan perintah berikut:

Gunakan mysql UPDATE pengguna SET password = PASSWORD("your_password") WHERE user = "root";

Memeriksa hasilnya:

PILIH pengguna, host, kata sandi DARI pengguna;

Seperti yang Anda lihat di tangkapan layar, kolom kata sandi diisi, yang berarti kata sandi sudah diatur.

Sebelum keluar, jalankan perintah:

HAK ISTIMEWA FLUSH;

Sekarang, saat menghubungkan, Anda harus memasukkan kata sandi. Untuk melakukan ini, gunakan tombol -p:

MySQL -u akar -p

Untuk mematikan operasi MySQL:

mysqladmin -u root -p shutdown

8. Langkah terakhir adalah memulai MySQL sebagai layanan sistem Windows.

Pastikan tidak ada proses MySQL yang aktif di sistem.

Pada prompt perintah, jalankan sebagai administrator, jalankan:

"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld" --instal

Path ke mysqld harus ditentukan secara lengkap (meskipun dalam PATH)!

Untuk memulai layanan, buka "Manajemen Komputer", dan mulai layanan MySQL secara manual:


Atau lebih mudah melalui baris perintah:

mulai bersih mysql

Untuk menghapus layanan, hentikan terlebih dahulu:

berhenti bersih mysql

dan jalankan:

"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld" --hapus

Teman-teman sering menanyakan pertanyaan tertentu tentang administrasi, dan saya berpikir, mengapa tidak menulis artikel-catatan seperti itu di situs daripada menjelaskan hal yang sama 100 kali? Selain itu, ini adalah kesempatan besar, dalam hal ini, untuk menggunakan catatan seperti itu sendiri, karena Anda sendiri tahu bahwa terkadang tidak mungkin untuk mengingat semuanya dan dengan satu atau lain cara terkadang Anda harus beralih ke buku referensi, jadi biarkan salah satu bagian dari situs ini menjadi buku seperti itu. Hari ini kita akan berbicara tentang cara bekerja dengan DBMS MySQL dari baris perintah, ya, seseorang akan berkata - “Nakoy? Lagi pula, ada phpMyAdmin, ”jawab saya - mengapa menyia-nyiakan sumber daya server yang berharga dengan menginstal semua jenis sampah seperti WebMin, phpMyAdmin, dll., jika semuanya dapat dengan mudah dilakukan dengan alat yang andal dan terbukti. Menyiapkan dari terminal melalui terowongan SSH adalah pilihan kami!

Baiklah, mari kita mulai. Kami terhubung ke server melalui SSH, misalnya, melalui PuTTY (Klien Telnet / SSH Gratis) yang terkenal. Sekarang mari langsung ke deskripsi perintah.

Login ke server MySQL dengan program mysql:

mysql -u root -h localhost -p

Opsi -u menentukan pengguna yang akan masuk. Opsi -h menentukan host. Ini biasanya localhost jika Anda menyiapkan server non-jarak jauh. Terakhir, -p memberi tahu program klien mysql untuk memasukkan kata sandi untuk mengakses database. Perhatikan prompt mysql>. Di sinilah Anda akan memasukkan semua perintah Anda. Sekarang, berada di lingkungan mysql sebagai pengguna root, kita dapat mulai menyiapkan database.

Kami masuk dan prompt mysql ada di layar. Pertama, mari kita lihat daftar database yang ada. Untuk melakukan ini, masukkan perintah SHOW DATABASES.

Responsnya menjelaskan bahwa perintah selesai tanpa kesalahan. Dalam hal ini, satu baris telah berubah. Ini mengacu pada database mysql utama yang berisi daftar semua database. Tetapi Anda tidak perlu terlalu khawatir tentang detail kecil. Angka terakhir menunjukkan waktu eksekusi kueri. Kami dapat memverifikasi bahwa database telah dibuat dengan menjalankan perintah SHOW DATABASES lagi.

Untuk mulai membuat tabel di database pengujian baru, kita perlu mengaturnya sebagai database saat ini. Untuk melakukan ini, gunakan perintah USE. Parameter dari perintah ini menentukan nama database yang akan dibuat saat ini. Anda juga dapat mengatur database saat ini pada baris perintah dengan menentukan namanya setelah parameter -D. Mari lanjutkan dan beralih ke database pengujian.
Perpindahan basis data:

uji GUNAKAN;

Keistimewaan di MySQL

Berikan Hak Istimewa dengan Perintah MENGANUGERAHKAN.
Hak istimewa menentukan bagaimana pengguna dapat mengakses database, tabel... hampir semuanya. Saat ini, hanya superuser root MySQL yang dapat mengakses database pengujian, dengan izin yang diberikan. Mari buat pengguna lain, misalnya, admin (administrator), yang akan mengakses database pengujian dan bekerja dengan informasi darinya. Namun sebelum kita mulai, mari kita lihat format perintah GRANT yang sedikit disederhanakan.

Catatan: Perintah GRANT dianggap sebagai cara untuk membuat pengguna. Namun, versi MySQL yang lebih baru juga berisi fungsi CREATE_USER, meskipun GRANT masih lebih disukai.
Sekarang kita membutuhkan hak istimewa yang dapat diberikan. Dengan menggunakan semua hal di atas, Anda dapat mengatur hak istimewa berikut:

Catatan: Jika Anda menggunakan MySQL untuk berkomunikasi dengan aplikasi web, maka hak istimewa CREATE, SELECT, INSERT yang dijelaskan di sini, serta hak istimewa DELETE dan UPDATE (dijelaskan dalam manual MySQL, bagian Sintaks GRANT dan REVOKE) adalah satu-satunya yang mungkin diperlukan. Banyak orang membuat kesalahan dengan memberikan semua hak istimewa ketika mereka benar-benar tidak membutuhkannya. Periksa dengan pengembang aplikasi untuk mengetahui apakah izin tersebut benar-benar akan menimbulkan masalah kinerja.

Buat pengguna admin:

Jadi pengguna dibuat; sekarang mari kita uji mereka. Pertama, keluar dari mysql dengan mengetikkan quit pada prompt:

Pilihannya dijelaskan di bagian perintah GRANT. Dan sekarang kami akan menolak akses pengguna apa pun. Katakanlah kita mengetahui bahwa akun admin menyebabkan masalah keamanan. Kami memutuskan untuk mencabut semua hak. Kami pergi sebagai root dan melakukan yang diperlukan.
Cabut izin untuk pengguna admin:

REVOKE ALL ON test.* DARI "admin" @"localhost" ;

Catatan: Dalam hal ini, akses pengguna sederhana, jadi mencabut hak atas satu database tidak menjadi masalah. Tapi biasanya Anda kemungkinan besar perlu menggunakan *.* daripada test.* untuk juga mencabut akses pengguna ke semua database lainnya.

Sekarang mari kita lihat cara menghapus akun sepenuhnya dengan perintah DELETE dan lihat tabel pengguna MySQL.

Menghapus akun dengan perintah MENGHAPUS.
Tabel pengguna MySQL adalah daftar pengguna dan informasi tentang mereka. Pastikan Anda login sebagai root. Gunakan database utama MySQL.

Menggunakan database mysql utama:

Tabel pengguna adalah yang Anda butuhkan. Ini memiliki 30 bidang berbeda dan sulit dibaca. Untuk kemudahan membaca, kami menggunakan bentuk ketiga dari perintah SELECT. Bidang yang wajib diisi adalah Host (host) dan Pengguna (pengguna).
Menemukan pengguna admin di tabel pengguna:

Sekarang setelah kami memiliki informasinya, kami dapat menyingkirkan pengguna admin. Ini dilakukan dengan perintah DELETE; berikut adalah sintaksnya:

Anda mungkin memperhatikan bahwa format DELETE agak mirip dengan format SELECT. Tentukan bidang Pengguna dan nilai admin. Ini akan menghapus entri dari tabel pengguna tempat pengguna adalah admin, menghapus akun kami. Mari kita lakukan:
Menghapus pengguna admin:

Perintah FLUSH PRIVILEGES diperlukan untuk memperbarui izin.

Itu saja untuk hari ini. Setuju, semuanya sederhana! ;)

Selamat siang rekan-rekan 🙂

Ya, tepatnya rekan, karena baris perintah MySQL (atau MySQL Shell, sebagaimana pengembang suka menyebutnya), serta bekerja dengan MySQL di konsol, sepertinya tidak akan berguna bagi manusia biasa.

Agar topik ini menarik, Anda setidaknya harus menjadi administrator sistem pemula yang pada prinsipnya tidak menggunakan phpMyAdmin dan antarmuka lainnya.

Secara pribadi, saya sendiri lebih suka menggunakan phpMyAdmin sebagai yang utama untuk bekerja dengan MySQL, karena. Saya pada dasarnya adalah orang yang visual. Namun, terkadang dalam praktiknya ada situasi ketika pengetahuan tentang baris perintah MySQL dan kemampuan untuk bekerja dengan MySQL di konsol server sangat diperlukan.

Saat ini saya memiliki tiga di antaranya:

  1. Untuk pertama kalinya, saya menemukan pekerjaan di konsol MySQL ketika saya perlu mengimpor dump database yang besar. Melalui phpMyAdmin, itu tidak dimuat seluruhnya, karena. jatuh di suatu tempat di tengah dalam hal waktu tunggu, meskipun mengubah pengaturan untuk waktu eksekusi operasi dan ukuran file yang diunduh. Pada prinsipnya, adalah mungkin untuk memilih nilai yang diinginkan, tetapi menurut saya prosesnya terlalu lama.
  2. Lain kali saya harus bekerja dengan MySQL melalui baris perintah adalah menonaktifkan pemeriksaan kunci asing ketika diperlukan untuk menghapus data dari tabel yang dikaitkan dengan orang lain menggunakan kunci. Di phpMyAdmin, saya tidak menemukan cara melakukan ini.
  3. Di perusahaan yang serius, hanya konsol yang digunakan untuk bekerja dengan MySQL tanpa phpMyAdmins. Saya tidak tahu mengapa secara khusus, tetapi orang yang berpengetahuan mengatakan bahwa itu ada hubungannya dengan keamanan. Akibatnya, semua orang harus bekerja dengan baris perintah MySQL, termasuk saya 🙂

Tapi, sekali lagi, bekerja dengan MySQL di konsol dan baris perintah cukup cocok untuk penggunaan sehari-hari. Semua program visual yang dikenal untuk bekerja dengan database masih berfungsi berdasarkan perintah konsol MySQL. Karena itu, siapa pun yang menyukainya 🙂

Menjalankan konsol di OS yang berbeda

Karena saya akan mendemonstrasikan baris perintah MySQL di konsol server, sebaiknya mulai terlebih dahulu.

Tindakannya sederhana, akrab bagi banyak orang, yang cukup memiliki pengetahuan tentang "tombol pintas".

Meluncurkan Konsol di Windows:

  • Win+R untuk membuka prompt perintah Windows dengan hak administrator;
  • Kami memasukkan perintah cmd
  • Klik Memasuki di keyboard

Meluncurkan konsol di distribusi Linux (terminal): di Ubuntu yang saya gunakan, kombinasi tombol sistem sudah cukup Ctrl+Alt+T. Saya tidak bisa mengatakan apa-apa tentang sistem operasi berbasis Linux lainnya.

Meluncurkan konsol di MacOS: Saya sendiri tidak melakukan ini, karena. Saya belum memiliki Mac dan sepertinya tidak perlu, tetapi sejauh yang saya tahu, tidak ada "hot key" untuk memanggil terminal di OS ini. Jadi jika Anda adalah pengguna produk "apel", luncurkan konsol melalui antarmuka OS, untungnya, ada banyak manual di jaringan.

Agak memalukan bahkan untuk mempublikasikan informasi seperti itu jika beberapa administrator sistem profesional dengan pengalaman berjanggut secara tidak sengaja menemukan artikel ini. dia akan berpikir: "Penulis menganggap pembacanya sebagai programmer, tetapi pada saat yang sama dia mengajarkan cara menjalankan konsol ... Beberapa gila :-)".

Ya, ini cukup logis 🙂 Tapi saya hanya memperhitungkan situasi yang bersama dengan pengembang profesional, pemula juga bisa sampai di sini. Oleh karena itu, saya mencoba membuat informasi lengkap dan dapat diakses oleh semua kategori pengguna, seperti yang telah saya sebutkan.

Perintah Dasar Konsol MySQL

Jadi, pertama-tama, kita perlu mengakses baris perintah MySQL di konsol. Untuk melakukan ini, buka konsol server dan, jika Anda menginstal MySQL secara global sebagai layanan, maka untuk "memeriksa koneksi" kami menulis yang berikut:

MySQL-V

Perintah konsol mysql memungkinkan kita menjalankan utilitas dengan nama yang sama, yaitu baris perintah MySQL.

Ini akan memungkinkan kami untuk mengetahui versi MySQL yang diinstal di komputer dan memastikan bahwa itu diinstal sebagai layanan sama sekali. Jika demikian, maka sebagai respons terhadap konsol Anda akan melihat sesuatu seperti teks berikut: .

Ya, saya bukan "benar-benar pembuat kode", karena saya duduk di bawah Windows 🙂 Tapi bukan itu intinya. Pada sistem Unix, prosedurnya sama.

Jika tiba-tiba MySQL tidak diinstal secara global di komputer Anda atau Anda perlu bekerja dengan beberapa versi MySQL yang hanya berisi direktori dengan file dan pustaka MySQL, maka memulai MySQL melalui konsol akan terlihat seperti ini.

Di konsol, buka direktori tempat file eksekusi MySQL berada (setidaknya di Windows, mysql.exe) dengan perintah berikut:

Cd C:\OpenServer\modules\database\MySQL-5.7-x64\bin

Jalur menuju kit distribusi, tentu saja, mungkin berbeda untuk Anda. Sebagai contoh, saya memutuskan untuk menjalankan salah satu versi MySQL yang disertakan dengan OpenServer.

Dan kami memulai MySQL, memeriksa versinya di sepanjang jalan:

Mysql.exe -V

Akibatnya, pesan yang mirip dengan kasus pertama seharusnya ditampilkan di konsol mysql Ver 14.14 Distrib 5.7.16, untuk Win64 (x86_64).

Itu saja, dengan peluncuran baris perintah MySQL melalui konsol server, kami mengetahuinya, sekarang kami akan terhubung langsung ke server MySQL.

Menghubungkan ke Server MySQL di Konsol

Server MySQL mungkin tidak harus berada di mesin yang sama dengan yang Anda coba akses dari konsol. Oleh karena itu, untuk memungkinkan koneksi ke server MySQL jarak jauh melalui konsol, utilitas mysql memiliki banyak parameter yang dapat digunakan untuk menentukan pengaturan yang diperlukan.

Untuk menjalankan baris perintah MySQL di konsol, kita hanya perlu menulis yang berikut di konsol server:

Namun, dalam hal ini Anda akan mendapatkan kesalahan berikut: GALAT 1045 (28000): Akses ditolak untuk pengguna 'ODBC'@'localhost' (menggunakan kata sandi: NO). Beginilah tampilan pesan kesalahan di Windows saya. Jika Anda menggunakan Linux, alih-alih ODBC akan ada nama pengguna sistem Anda, di mana Anda melakukan tindakan dalam sistem.

Semua ini karena secara default, saat menghubungkan ke server MySQL, konsol menggunakan pengguna ODBC di Windows tanpa kata sandi dan pengguna sistem di Linux dengan kata sandinya sendiri. Host default adalah localhost, mis. pengguna ini hanya dapat terhubung dari mesin lokal.

Oleh karena itu, Anda memiliki dua opsi: menggunakan pengguna lain untuk masuk ke baris perintah MySQL, atau membuat pengguna MySQL dengan akun yang diinginkan. Tetapi untuk metode kedua, kami masih tidak dapat melakukannya tanpa yang pertama 🙂 Oleh karena itu, pertama-tama kami terhubung ke server MySQL di bawah pengguna standar akar, yang dibuat saat MySQL diinstal di komputer dan yang aksesnya dari localhost diizinkan secara default:

MySQL -u akar -p

Saat diminta memasukkan kata sandi, cukup tekan Enter (jika Anda tidak memasukkannya, tentunya saat menginstal MySQL). Setelah itu, Anda akan terhubung ke server MySQL, diberi ID koneksi dan diberi akses ke baris perintah MySQL.

Jika Anda ingin terhubung ke server MySQL yang memiliki nama host atau IP tertentu, atau ingin masuk sebagai pengguna lain, gunakan perintah dalam format berikut:

Mysql -u nama pengguna -p kata sandi pengguna -h MySQL_server_Host_or_IP

Alih-alih karakter Cyrillic dengan garis bawah, tentunya Anda harus memasukkan data Anda dalam bahasa Latin. Omong-omong, jika mau, Anda dapat menulis perintah ini dalam format yang sedikit berbeda:

Mysql --user=user_name --password=user_password --Host=MySQL_server_Host_or_IP

Jika karena alasan tertentu Anda tidak ingin kata sandi koneksi MySQL Anda ditampilkan di konsol (yang sebenarnya benar), Anda dapat menggunakan perintah berikut:

Mysql -u nama pengguna -h MySQL_server_Host_or_IP -p

Karena kata sandi tidak ditentukan secara eksplisit, Anda akan diminta memasukkannya di langkah berikutnya. Apalagi karakter yang Anda masukkan tidak akan ditampilkan meski dalam bentuk tanda bintang (wildcard), melainkan hanya berupa string kosong.

Selain pengaturan koneksi yang ditentukan, dimungkinkan untuk menggunakan parameter berikut, yang nilainya akan ditentukan dengan cara yang sama seperti yang tercantum di atas:

  1. --port atau -P - untuk menentukan port koneksi ke server MySQL;
  2. --protocol — protokol yang digunakan untuk menghubungkan (opsi yang memungkinkan: TCP untuk Windows dan Linux, SOCKET untuk Linux, PIPE dan MEMORY untuk Windows);
  3. --socket atau -S - parameter ini berguna jika Anda ingin terhubung melalui soket, oleh karena itu, nilai parameternya adalah soket;
  4. -pipe atau -W - parameter diperlukan jika Anda ingin menggunakan nama "pipelines" atau "pipes" untuk koneksi;
  5. --shared-memory-base-name - parameter ini berguna untuk koneksi MEMORY melalui memori bersama di Windows;

Jelas bahwa daftar semua parameter koneksi server MySQL tidak terbatas pada ini. Kenyataannya, masih banyak lagi.

Jika karena alasan tertentu opsi standar dengan menentukan host, pengguna, dan kata sandi tidak cocok untuk Anda, maka informasi berikut akan berguna bagi Anda untuk mengetahui daftar lengkap parameter koneksi - https://dev.mysql.com/doc /refman/5.7/en/ menghubungkan.html

Cara membuat database di konsol MySQL

Setelah kami terhubung ke server MySQL dan meluncurkan baris perintah MySQL, saatnya untuk memulai siklus hidup database situs kami, yang dimulai dengan pembuatannya. Untuk membuat database MySQL melalui baris perintah, masukkan perintah berikut:

BUAT DATABASE database_name;

Tindakan yang sama dapat dilakukan dengan menggunakan utilitas MySQL khusus mysqladmin. Ini berjalan secara terpisah dari baris perintah MySQL, mis. untuk menggunakannya, Anda harus keluar atau membuka konsol server baru.

Dan kemudian panggil perintah berikut:

mysqladmin membuat nama_database;

Omong-omong, dengan menggunakan utilitas mysqladmin, Anda tidak hanya dapat membuat dan menghapus database tanpa masuk ke konsol MySQL, tetapi juga mengelola konfigurasi server, proses MySQL, mengelola replikasi, melakukan ping server, dan melakukan banyak hal menarik lainnya.

Cara membuat pengguna MySQL di baris perintah

Tidak sering, tetapi terkadang perlu membuat pengguna MySQL baru. Dan dalam mode konsol.

Pada baris perintah MySQL, ini dilakukan sebagai berikut:

BUAT PENGGUNA "username"@"host_or_machine_ip" DIIDENTIFIKASI OLEH "user_password";

Pengguna telah dibuat. Parameter host_atau_IP_machine berarti bahwa saat membuat pengguna, Anda perlu menentukan IP dari mana dia dapat terhubung ke server, atau nama host (nama domain dari mesin yang bekerja di jaringan cocok).

Omong-omong, saat menentukan host untuk terhubung ke server MySQL, Anda dapat menggunakan simbol persen - % , yang berarti bahwa pengguna yang dibuat dapat terhubung ke server MySQL dari alamat IP atau host apa pun.

Perlu diperhatikan bahwa dalam hal ini, localhost tidak termasuk dalam daftar alamat yang ditentukan menggunakan %, karena localhost menunjukkan koneksi soket UNIX, bukan TCP/IP standar. Itu. jika pengguna MySQL yang dibuat terhubung ke server tidak menggunakan soket, tetapi menggunakan protokol berbeda yang ditentukan saat menghubungkan ke server MySQL di konsol, maka dia perlu membuat dua akun pengguna:

BUAT PENGGUNA "username"@"%" DIIDENTIFIKASI DENGAN "password"; BUAT PENGGUNA "username"@"localhost" DIIDENTIFIKASI DENGAN "password";

Kami menemukan cara membuat pengguna MySQL di konsol. Sekarang mari atur hak pengguna untuk melakukan tindakan apa pun dengan database yang baru kita buat dengan perintah berikut:

BERIKAN SEMUA PRIVILEG PADA database_name.* KE "username"@"host_or_machine_ip";

Pilihan SEMUA, seperti yang Anda pahami, cukup tunjukkan bahwa pengguna diizinkan untuk melakukan tindakan apa pun dengan database tertentu. Daftar lengkap hak yang dapat diberikan kepada pengguna menggunakan perintah MENGANUGERAHKAN, dapat ditemukan di sini (walaupun deskripsi parameternya dalam bahasa Inggris) - https://dev.mysql.com/doc/refman/5.7/en/grant.html#grant-privileges

Omong-omong, Anda dapat menggunakan beberapa parameter hak istimewa dengan menentukannya saat memanggil perintah, dipisahkan dengan koma.

Jika Anda ingin membuat pengguna super, mis. memiliki hak istimewa global untuk melakukan berbagai tindakan dengan semua database di server, kemudian gunakan panggilan perintah berikut:

GRANT ALL ON *.* TO "username"@"host_or_machine_IP";

Omong-omong, tidak akan berlebihan untuk menghapus cache server MySQL setelah mengatur hak istimewa. Jika Anda mengubahnya, jangan lupa juga untuk melakukan ini dengan memanggil perintah berikut:

HAK ISTIMEWA FLUSH;

Dan jika Anda ingin mengubah izin pengguna, pertama-tama gunakan perintah berikut untuk mengatur ulang semua izin:

BATALKAN SEMUA PRIVILEGES PADA *.* DARI "username"@"host_or_machine_IP";

Dan kemudian instal dengan MENGANUGERAHKAN, seperti yang dijelaskan sebelumnya.

Jika Anda perlu mengubah kata sandi pengguna MySQL di masa mendatang, jalankan saja perintah berikut di MySQL Shell:

SET PASSWORD UNTUK "username"@"host_or_machine_IP" = PASSWORD("new_password"); HAK ISTIMEWA FLUSH;

Menyetel ulang cache privilege server MySQL diperlukan untuk tujuan yang sama seperti saat mengubah hak - tanpa tindakan ini, mengubah kata sandi pengguna MySQL mungkin tidak dihitung, jadi jangan malas menggunakannya 🙂

Omong-omong, Internet penuh dengan contoh penggunaan perintah berikut untuk mengatur ulang kata sandi MySQL pengguna:

UPDATE mysql.user SET Password=PASSWORD("password") WHERE User="username";

Tetapi opsi ini tidak berfungsi untuk saya di MySQL 5.7, memberikan kesalahan ERROR 1054 (42S22): Kolom 'Kata Sandi' tidak dikenal di 'daftar bidang'. Penyebabnya adalah tidak adanya field Password pada tabel mysql.user.

Dari mana kita dapat berasumsi bahwa opsi ini hanya berfungsi untuk versi MySQL yang lebih lama, di mana bidang ini ada di tabel pengguna. Oleh karena itu, untuk memastikannya, gunakan opsi pertama saya, kecuali, tentu saja, Anda terpaksa bekerja dengan perangkat lunak kuno tanpa kemampuan untuk memperbarui versi :)

Ini menyelesaikan pembuatan pengguna MySQL baru dan peninjauan tindakan dengan hak dan kata sandinya. Mari melangkah lebih jauh.

Memilih database saat bekerja dengan MySQL melalui baris perintah

Sekarang, setelah membuat pengguna di MySQL Shell dan memberinya hak untuk bekerja dengan database, kita perlu memilih database ini agar kita dapat mengoperasikan database itu sendiri dan data yang disimpan di dalamnya.

Untuk melakukannya, gunakan perintah berikut di konsol MySQL:

GUNAKAN nama_database;

Jika semuanya berjalan dengan baik, sebuah pesan akan ditampilkan di konsol basis data berubah, yang akan menandakan bahwa kita telah masuk ke database MySQL melalui konsol. Ngomong-ngomong, saat menghubungkan ke server MySQL, awalnya Anda dapat menentukan database yang akan digunakan untuk bekerja. Untuk melakukannya, masukkan perintah berikut di konsol server:

Mysql --user=user_name --password=user_password --Host=MySQL_server_Host_or_IP --database=nama_database

Atau sama saja, hanya meminta kata sandi pengguna MySQL:

mysql -u nama pengguna -h host_or_ip_mysql_server_database_name -p

Itu saja. Saya pikir sekarang Anda tidak akan mengalami kesulitan untuk menghubungkan ke database MySQL melalui konsol 🙂

Bekerja dengan tabel MySQL melalui konsol MySQL

Jadi, kami membuat database MySQL melalui konsol. Sekarang alangkah baiknya untuk mempelajari cara bekerja dengannya jika baris perintah MySQL akan menjadi satu-satunya cara untuk mengakses data yang disimpan di server (seperti yang terjadi pada saya, yang saya bicarakan di awal artikel ).

Seperti yang Anda ketahui, ini terdiri dari tabel-tabel, di dalamnya sudah tersimpan informasi dalam bentuk record dengan beberapa field. Oleh karena itu, mengikuti hirarki penempatan informasi, pertama kita akan belajar bagaimana melakukan operasi CRUD dengan tabel.

Operasi CRUD, jika seseorang tidak mengetahuinya, adalah operasi untuk membuat, membaca, memperbarui, dan menghapus data dari bahasa Inggris. "Buat, Baca, Perbarui, Hapus" (Anda mungkin memerlukan ini dalam wawancara).

Saya mengingatkan Anda bahwa untuk melakukan tindakan dengan tabel, Anda harus terlebih dahulu terhubung ke database MySQL menggunakan perintah MENGGUNAKAN.

Jadi, agenda pertama kita adalah perintah untuk membuat tabel MySQL di database melalui baris perintah, yang terlihat seperti ini:

CREATE TABLE table_name (field_name_1 field_type_1, field_name_2 field_type_2(field_size_2), INDEX(field_name_1), ...);

Seperti yang Anda pahami, bidang bisa sebanyak yang Anda suka, jenisnya bisa berbeda, serta keberadaan indeks dan kunci adalah opsional.

Omong-omong, jika Anda ingin menyalin tabel ke database lain atau hanya membuat salinan di database saat ini, perintah berikut akan membantu Anda:

BUAT TABEL nama_tabel_baru SEPERTI nama_tabel_lama; MASUKKAN nama_tabel_baru PILIH * DARI nama_tabel_lama;

Perintah ini memungkinkan Anda untuk menyalin struktur tabel dan datanya beserta indeks dan pemicu tabel. Jika Anda hanya membutuhkan data dan struktur (nama bidang dan tipe datanya), maka Anda dapat melakukannya dengan satu panggilan perintah:

BUAT TABEL nama_tabel_baru SEBAGAI PILIH * DARI nama_tabel_lama;

Operasi selanjutnya dari blok CRUD adalah membaca. Dalam kasus tabel, pembacaan akan menampilkan strukturnya. Ada empat perintah untuk ini:

TAMPILKAN KOLOM LENGKAP DARI table_name; JELASKAN nama_tabel; JELASKAN nama_tabel; TAMPILKAN BUAT TABEL table_name;

Yang pertama menampilkan informasi tentang bidang tabel database dalam bentuk tabel ke konsol MySQL, yang menunjukkan nama bidang, tipe data, keberadaan kunci, nilai default, dll. Saat menggunakan kata kunci PENUH Anda bisa mendapatkan informasi tambahan, termasuk hak istimewa di setiap bidang untuk pengguna saat ini, komentar di masing-masing bidang, dan nilai penyandian.

Perintah kedua dan ketiga hanyalah bentuk singkatan dari perintah pertama tanpa informasi tambahan. Mengapa perlu untuk memproduksinya - saya bahkan tidak dapat membayangkan ... Mungkinkah ada sesuatu untuk ditanyakan saat wawancara saat melamar pekerjaan? 🙂

Perintah keempat, selain nama, jenis bidang, dan nilai defaultnya, memungkinkan Anda mendapatkan nilai kunci tabel, mesin tabel (InnoDB, MyISAM), penyandian, dll.

Perbarui operasi dalam kasus tabel adalah perubahan dalam strukturnya, mis. berbagai tindakan dengan bidang tabel MySQL:

ALTER TABLE table_name DROP COLUMN field_name; ALTER TABLE table_name ADD COLUMN field_name VARCHAR(20); ALTER TABLE table_name CHANGE old_field_name new_field_name VARCHAR(50); ALTER TABLE table_name MODIFY field_name VARCHAR(3);

Perintah pertama memungkinkan Anda untuk menghapus bidang tabel tertentu, yang kedua - untuk menambahkan, yang ketiga memungkinkan Anda untuk mengganti nama bidang dan secara bersamaan mengubah jenis data yang disimpan di dalamnya, dan yang keempat - hanya mengubah jenis data.

Hal yang sama dapat dilakukan dengan indeks tabel menggunakan banyak perintah yang sama:

ALTER TABLE table_name ADD UNIQUE INDEX index_name (field_name_1, ...); ALTER TABLE table_name rename INDEX old_index_name TO new_index_name; ALTER TABLE table_name DROP INDEX index_name;

Perintah di atas memungkinkan Anda untuk menambah, mengganti nama, dan menghapus indeks dari tabel MySQL melalui baris perintah. Omong-omong, untuk menambah dan menghapus indeks, ada opsi alternatif lain untuk menggunakan perintah independen, dan tidak melakukannya MENGUBAH TABEL. Karena itu, jika Anda mau, Anda dapat menggunakannya:

BUAT INDEX UNIK index_name (field_name_1, ...) ON table_name; DROP INDEX nama_indeks PADA nama_tabel;

Perintah di atas setara dengan yang pertama dan terakhir dari blok sebelumnya. Sayangnya, tidak ada perintah terpisah untuk mengganti nama index. Dan untuk mengubah tipe indeks, sayangnya tidak ada kemungkinan sama sekali di MySQL. Satu-satunya jalan keluar adalah menghapus indeks dan membuatnya lagi dengan tipe yang diinginkan.

Nah, akhirnya, kita telah sampai pada operasi terakhir dari blok CRUD - untuk menghapus. Menghapus tabel MySQL dari database sangat mudah. Cukup menjalankan perintah berikut di konsol MySQL:

DROP TABLE table_name;

Terkadang dalam praktiknya ada situasi yang tidak memungkinkan untuk menghapus tabel atau mengubah strukturnya. Sebagai aturan, ini karena penggunaan kunci asing dalam database untuk menautkan tabel satu sama lain. Saya pribadi mengalami situasi ini lebih dari sekali, seperti yang saya bicarakan di awal artikel.

Oleh karena itu, jika saat menghapus atau memperbarui struktur tabel atau datanya, MySQL mengembalikan kesalahan dengan teks Tidak dapat menghapus atau memperbarui baris induk: batasan kunci asing gagal, maka informasi berikut akan berguna bagi Anda.

Untuk mengimplementasikan rencana kami, kami perlu menonaktifkan sementara pemeriksaan keberadaan kunci asing, melakukan operasi yang diperlukan, dan kemudian mengaktifkan kembali pemeriksaan, karena itu sangat dibutuhkan dan memungkinkan Anda melindungi diri dari pelanggaran integritas data dalam banyak kasus.

Faktanya, kunci asing MySQL diperlukan untuk tujuan ini.

Jadi, untuk menghapus data yang diganggu oleh kunci asing, Anda harus melakukan langkah-langkah berikut di konsol MySQL:

SET FOREIGN_KEY_CHECKS=0; #required_mysql_command SET FOREIGN_KEY_CHECKS=1;

Omong-omong, jika Anda ingin menghapus kunci asing, prosedurnya sama seperti saat Anda menghapus indeks:

ALTER TABLE table_name DROP FOREIGN KEY foreign_key_name;

Untuk mengetahui nama kunci asing MySQL dari sebuah tabel, gunakan perintah konsol MySQL yang sekarang sudah dikenal TAMPILKAN BUAT TABEL.

Bekerja dengan data tabel MySQL melalui baris perintah

Untuk tabel, operasi CRUD di konsol MySQL, kami telah mempertimbangkannya. Untuk gambaran lengkap, lembar contekan ini hanya kekurangan perintah untuk bekerja dengan data itu sendiri yang disimpan dalam tabel database. Saya pikir banyak orang mengetahui perintah ini dan menggunakannya dalam praktik, tetapi saya masih akan mengingatkannya lagi.

Operasi CRUD untuk bekerja dengan data tabel MySQL akan terlihat seperti ini:

INSERT INTO table_name (field1, field2, ...) VALUES (nilai field_1, nilai field_2, ...); PILIH bidang1, bidang2, ... DARI nama_tabel; PERBARUI nama_tabel SET bidang1 = nilai bidang_1, bidang2 = nilai bidang_2; HAPUS DARI table_name WHERE field1 = nilai field_1;

Perintah di atas sesuai dengan operasi membuat, membaca, memperbarui, dan menghapus data dari tabel database MySQL. Saat menggunakan SELECT dan UPDATE, dimungkinkan juga untuk menggunakan klausa WHERE yang memenuhi syarat, yang dapat digunakan untuk menentukan pemilihan data dengan cara yang dijelaskan dalam kasus penggunaan DELETE.

Selain itu, saat mengambil data dari database menggunakan SELECT, Anda dapat menggunakan opsi berikut untuk mendapatkan nilai semua bidang tabel:

PILIH * DARI nama_tabel;

Secara alami, operator lain selain WHERE dapat digunakan dalam operasi ini. Ada banyak di antaranya saat memilih data menggunakan SELECT: ada UNION untuk menggabungkan hasil dari beberapa kueri, dan berbagai jenis GABUNG. Semua daftar sangat panjang dan melelahkan bagi saya dan Anda akan membaca ini.

Oleh karena itu, mari kita sepakati: jika Anda ingin mempelajari lebih lanjut tentang sesuatu, tulis saja di komentar, dan saya akan mencoba menjawab Anda. Atau anggota komunitas kami yang berpengetahuan luas akan melakukannya. OKE? 😉

Jadi untuk saat ini, kami tidak akan memikirkan blok ini.

Jika Anda perlu menghapus semua data dari tabel, Anda dapat menggunakan perintah MySQL berikut:

TRUNCATE table_name;

Sebelum memanggilnya, seperti yang telah disebutkan, Anda mungkin perlu menonaktifkan pemeriksaan kunci asing jika ada tabel MySQL terkait, yang dapat mencegah tindakan yang diperlukan dilakukan.

Poin lain yang menarik untuk dipertimbangkan di sini adalah bahwa perintah ini tidak mengatur ulang penghitung AUTO_INCREMENT, yang diketahui digunakan untuk menghasilkan nilai bidang secara otomatis tanpa perlu mengaturnya secara manual.

Bidang jenis ini paling sering digunakan untuk menghasilkan nilai untuk id bidang kunci utama, yang digunakan untuk membuat tautan antara data dari tabel yang berbeda.

Artinya, jika sebelum menghapus data tabel menggunakan MEMOTONG nilai maksimum penghitung adalah 1200, maka record pertama setelah prosedur ini akan memiliki nilai pengenal 1201. Prinsipnya tidak apa-apa. Jika Anda menetapkan ukuran yang cukup untuk bidang ini, Anda tidak akan segera menghadapi nilai yang meluap.

Namun, dalam beberapa kasus, ketika ada semacam pengikatan ke nilai bidang dalam kode aplikasi, perilaku ini bisa merepotkan.

Untuk menghindarinya, gunakan opsi ini alih-alih perintah di atas:

TRUNCATE TABLE someTable RESTART IDENTITY;

Opsi panggilan perintah ini MEMOTONG akan memungkinkan Anda untuk mengatur ulang nilai penghitung bidang dari AUTO_INCREMENT. Oleh karena itu, nilai bidang dari catatan pertama yang ditambahkan setelah penghapusan ini akan menjadi 1, bukan 1201, seperti pada contoh di atas.

Cara menghapus database MySQL melalui baris perintah

Siklus hidup bekerja dengan database akan segera berakhir dan berakhir secara logis - dengan menghapusnya. Untuk melakukan operasi ini di konsol MySQL, Anda perlu menjalankan perintah berikut (dalam hal ini, database yang akan dihapus mungkin tidak dipilih oleh perintah MENGGUNAKAN):

HAPUS DATABASE database_name;

Tindakan yang sama dapat dilakukan dengan menggunakan utilitas MySQL mysqladmin, yang sudah saya sebutkan di awal artikel saat membuat database:

mysqladmin jatuhkan database_name;

Saat perintah dipanggil, pesan berikut akan muncul di konsol server:

Menjatuhkan database berpotensi menjadi hal yang sangat buruk untuk dilakukan.
Setiap data yang disimpan dalam database akan dimusnahkan.

Apakah Anda benar-benar ingin menjatuhkan database 'database_name'

Singkatnya, ini adalah peringatan bahwa menghapus database MySQL adalah ide yang sangat buruk. Itu juga meminta konfirmasi tindakan. Jika Anda setuju, tulislah y dan tekan Memasuki pada keyboard, setelah itu pesan berikut akan ditampilkan di layar (jika semuanya berjalan dengan baik, tentu saja):

Basis data "nama_database" turun

Seperti ini 🙂

Cara menghapus pengguna MySQL di konsol

Sekarang nasib yang sama akan menimpa pengguna MySQL yang kami buat untuk menunjukkan kepada Anda bagaimana hal itu dilakukan. Namun sebagai permulaan, alangkah baiknya untuk memeriksa apakah pengguna yang diperlukan benar-benar ada sebelum menghapusnya.

Dimulai dengan MySQL 5.7, ada satu perintah untuk kedua tindakan ini:

LEPAS PENGGUNA JIKA ADA nama pengguna;

Versi MySQL sebelumnya membutuhkan dua perintah terpisah:

GRANT USAGE ON *.* TO "username"@"host_or_IP_address"; DROP USER "username"@"host_or_ip_address";

Sayangnya, dalam hal ini, pesan tentang operasi di konsol MySQL secara tradisional tidak informatif 🙁 Oleh karena itu, untuk mengetahui bahwa penghapusan pengguna MySQL memang terjadi, Anda dapat menggunakan perintah berikut, yang menampilkan daftar semua pengguna yang ada di server MySQL saat ini:

PILIH Pengguna DARI mysql.user;

Versi perintah ini hanya akan menampilkan nama pengguna. Jika Anda perlu melihat host tempat pengguna dapat terhubung ke server, dan daftar hak istimewanya, Anda dapat memanggil perintah dalam bentuk berikut:

PILIH Pengguna, Host, Grant_priv DARI mysql.user;

Ada juga banyak bidang lain di tabel mysql.user yang menyimpan jenis hak istimewa lain dan informasi lainnya, daftar lengkapnya dapat ditemukan di sini - https://mariadb.com/kb/en/library/mysqluser-table/

Jangan bingung karena ini adalah dokumentasi DBMS MariaDB. Secara teknis, ini sama dengan MySQL, karena MariaDB hanyalah cabang atau garpu dari "garpu" bahasa Inggris - cabang, garpu.

Mengapa itu harus dilakukan - lagi tanpa petunjuk 🙂 Apakah mungkin untuk dengan bangga menyatakan kepada semua orang bahwa "Saya memiliki DBMS saya sendiri"? .. Tapi, terus terang, saya tidak terlalu mengetahui motif dan perbedaan yang tepat antara MySQL dan MariaDB. Oleh karena itu, jika Anda mengetahui sesuatu tentang ini, akan menarik untuk membacanya di komentar.

Keluar dari Konsol MySQL

Itu saja, siklus hidup database dan pengguna, yang dimulai dengan pembuatannya dan diakhiri dengan penghapusannya, telah berakhir. Oleh karena itu, baris perintah MySQL yang kami kerjakan di konsol server menggunakan utilitas mysql kita tidak perlu lagi.

Tetap hanya untuk keluar dari itu ...

Tampaknya tindakan itu sepele, tetapi banyak situasi di mana Anda perlu keluar dari baris perintah MySQL cukup tutup konsol server dan buka lagi. Anda tentu saja dapat bertindak seperti ini, tetapi ini membutuhkan waktu kerja ekstra dan membuat Anda kesal setiap kali Anda perlu melakukannya.

Perilaku yang benar dalam situasi ini adalah dengan memanggil perintah saja KELUAR pada baris perintah MySQL, setelah itu layanan akan dengan sopan mengucapkan selamat tinggal kepada kami 🙂

Dan hanya sesuatu 🙂 Jadi lain kali Anda tidak perlu menelurkan konsol dan membukanya kembali setiap kali Anda perlu keluar dari MySQL di konsol dan mengaksesnya lagi untuk mengelola server.

Hanya itu yang ingin saya sampaikan kepada Anda hari ini. Saya harap lembar contekan saya untuk bekerja dengan baris perintah MySQL melalui konsol akan berguna tidak hanya untuk saya, tetapi juga untuk Anda.

Berbicara tentang aplikasi praktis dari informasi yang disajikan dalam artikel, saya ingin mengingatkan Anda bahwa konstruksi di atas dapat digunakan tidak hanya di baris perintah MySQL dan konsol server, tetapi juga di konsol phpMyAdmin dan perangkat lunak lain yang menyediakannya. sebuah kesempatan.

Apakah Anda menggunakannya atau tidak, itu terserah Anda. Tapi, seperti yang saya katakan di awal artikel, ada situasi ketika menggunakan konsol MySQL dapat menghemat waktu dan tenaga Anda. Dan apakah akan menggunakan baris perintah setiap hari atau tidak adalah masalah selera dan preferensi individu.

Tulis di komentar tentang perintah mana yang paling sering Anda gunakan. Atau mungkin Anda tahu beberapa trik lainnya. Bagaimanapun, bagikan pendapat Anda dengan yang lain dan pertahankan percakapan di komentar pengguna lain.

Saya berjanji dalam prosesnya Anda akan belajar banyak hal baru, seperti yang saya lakukan saat menulis setiap artikel saya 🙂

Itu saja! Semoga berhasil dan sampai jumpa lagi 🙂

P.S.: jika Anda memerlukan situs web atau perlu melakukan perubahan pada yang sudah ada, tetapi tidak ada waktu dan keinginan untuk itu, saya dapat menawarkan layanan saya.

Lebih dari 5 tahun pengalaman pengembangan situs web profesional. Bekerja dengan PHP, opencart, WordPress, Laravel, Yii, MySQL, PostgreSQL, JavaScript, Reaksi, Sudut dan teknologi pengembangan web lainnya.

Di bawah ini adalah daftar perintah yang paling berguna dan sering digunakan. MySQL dengan contoh.

mysql di awal baris berarti perintah dijalankan setelah masuk MySQL.

Simbol # atau $ di awal baris berarti perintah dijalankan dari baris perintah.

Untuk memeriksa status server MySQL berlari:

Untuk FreeBSD:

# layanan status server mysql

V CentOS/RHEL:

# layanan status mysqld

MySQL dari konsol jika server MySQL ada di host yang sama:

Untuk terhubung ke server MySQL dari konsol jika server MySQL terletak di host jarak jauh db1.example.com:

$ mysql -u nama pengguna -p -h db1.contoh.com

Bekerja dengan database, tabel - melihat, menghapus, mengedit catatan. Menghibur

Buat database di MySQL pelayan:

mysql membuat database

Tampilkan daftar semua database di server MySQL:

penggunaan MySQL;

Menampilkan semua tabel dalam database:

tabel pertunjukan mysql;

Lihat format tabel dalam database:

mysql jelaskan;

Hapus basis:

basis data drop mysql;

Hapus tabel dari basis data:

tabel jatuhkan mysql;

Tampilkan semua isi tabel:

MySQL PILIH * DARI ;

Tampilkan kolom dan konten kolom di tabel yang dipilih:

Mysql tampilkan kolom dari ;

Tampilkan baris dalam tabel tertentu yang berisi "apa pun":

MySQL SELECT * FROM WHERE = "terserah";

Tampilkan semua catatan dalam tabel tertentu yang berisi " Bob " dan nomor telepon " 3444444:

PILIH MySQL * DARI MANA name = " Bob " AND phone_number = " 3444444 ";

Tampilkan semua entri BUKAN berisi nama " Bob " dan nomor telepon " 3444444 ", diurutkan berdasarkan kolom phone_number:

Mysql SELECT * FROM WHERE name != " Bob " AND phone_number = " 3444444 " order by phone_number;

Tampilkan semua entri yang dimulai dengan huruf " bob " dan nomor telepon " 3444444 " dalam tabel tertentu:

PILIH Mysql * DARI MANA nama seperti " Bob %" DAN phone_number = " 3444444 ";

Tampilkan semua entri yang dimulai dengan huruf " bob " dan nomor telepon " 3444444 ", terbatas pada entri 1 sampai 5:

PILIH MySQL * DARI MANA nama seperti " Bob %" DAN phone_number = " 3444444 " limit 1.5;

Menggunakan ekspresi reguler ("REGEXP BINARY") untuk mencari rekaman. Misalnya, untuk pencarian case-insensitive, temukan semua entri yang dimulai dengan huruf A:

PILIH Mysql * DARI MANA rec RLIKE "^a";

Tampilkan semua entri unik:

MySQL PILIH BERBEDA DARI ; mysql SELECT , DARI ORDER BY DESC;

Tampilkan jumlah baris dalam tabel:

Mysql SELECT COUNT(*) DARI ;

Mysql PILIH JUMLAH(*) DARI ;

Menghapus kolom:

mysql mengubah kolom penurunan tabel;

Menambahkan kolom ke database:

tabel ubah mysql tambahkan kolom varchar (20);

Perubahan nama kolom:

mysql mengubah tabel mengubah varchar(50);

Buat kolom dengan nama unik untuk menghindari nama ganda:

tabel ubah mysql tambahkan unique();

Mengubah ukuran kolom:

mysql mengubah tabel memodifikasi VARCHAR(3);

Menghapus kolom dari tabel:

mysql mengubah indeks penurunan tabel;

Mysql LOAD DATA INFILE " /tmp/filename.csv " ganti KE BIDANG TABEL DIHENTIKAN OLEH "," BARIS DIHENTIKAN OLEH "n" (bidang1,bidang2,bidang3);

Pengguna server MySQL, kata sandi - menambah, mengubah pengguna dan kata sandi. Menghibur

Membuat pengguna baru - menghubungkan ke server MySQL sebagai root, beralih ke database, tambahkan pengguna, perbarui hak istimewa:

# mysql -u root -p mysql gunakan mysql; mysql INSERT INTO user (Host,User,Password) VALUES("%","username", PASSWORD("password")); hak siram mysql;

Ubah kata sandi pengguna dari konsol di host jarak jauh db1.example.org:

# mysqladmin -u nama pengguna -h db1.example.org -p kata sandi " kata sandi baru "

Ubah kata sandi pengguna dari konsol MySQL- terhubung sebagai root, perbarui kata sandi, perbarui hak istimewa:

# mysql -u root -p mysql SET PASSWORD UNTUK " user "@" hostname " = PASSWORD(" passwordhere "); hak siram mysql;

Mengembalikan/Mengubah Kata Sandi Server Root MySQL- berhenti MySQL, mulai tanpa tabel hak istimewa, sambungkan sebagai root, setel kata sandi baru, keluar dan mulai ulang MySQL.

# /etc/init.d/mysql stop # mysqld_safe -skip-grant-tables & # mysql -u root mysql use mysql; mysql perbarui pengguna setel kata sandi = PASSWORD ("kata sandi root baru") di mana Pengguna = "root"; mysql; hak istimewa flush; mysql berhenti # /etc/init.d/mysql berhenti # /etc/init.d/mysql mulai

Tetapkan kata sandi root jika ada kata sandi root.

# mysqladmin -u kata sandi root kata sandi baru

Perbarui kata sandi root:

# mysqladmin -u root -p kata sandi lama kata sandi baru

Mengatur hak untuk terhubung ke server dari host localhost dengan kata sandi "passwd" - menghubungkan subroot, beralih ke database, mengatur hak istimewa, memperbarui hak istimewa:

# mysql -u root -p mysql gunakan mysql; mysql memberikan penggunaan pada *.* ke bob @localhost yang diidentifikasi dengan " passwd "; hak siram mysql;

Menetapkan hak istimewa bagi pengguna untuk menggunakan database - menghubungkan sebagai root, beralih ke database, mengatur hak istimewa, memperbarui hak istimewa:

# mysql -u root -p mysql gunakan mysql; mysql INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) NILAI ("%","databasename","username","Y","Y","Y"," Y","Y","N"); hak siram mysql;

Mysql memberikan semua hak istimewa pada databasename .* ke nama pengguna @localhost; hak siram mysql;

Perbarui informasi dalam database:

SET UPDATE Mysql Select_priv = "Y",Insert_priv = "Y",Update_priv = "Y" di mana = pengguna";

Menghapus baris dalam tabel:

HAPUS Mysql dari mana = "terserah";

Memperbarui hak istimewa dalam database:

hak siram mysql;

Cadangan - membuat, memulihkan database. Menghibur

Buat salinan cadangan (dump) dari semua database ke file alldatabases.sql:

# mysqldump -u root -p kata sandi -opt ; /tmp/alldatabases.sql

Cadangkan satu database ke file databasename.sql:

# mysql dump -u nama pengguna -p kata sandi -databases databasename ; /tmp/namadatabase.sql

Cadangkan satu tabel ke file databasename.tablename.sql:

# mysql dump -c -u nama pengguna -p kata sandi namadatabase namatabel ; /tmp/namadatabase.namatabel.sql

Memulihkan database (atau tabel) dari cadangan:

# mysql -u nama pengguna -p kata sandi nama basis data< /tmp/databasename.sql

Pembuatan tabel database. Menghibur

huruf kecil menunjukkan nama kolom;
Huruf kapital - jenis dan atribut kolom;
di (kurung) - nilai tipe kolom.

Buat tabel contoh 1:

mysql CREATE TABLE (nama depan VARCHAR(20), VARCHAR awal tengah(3), nama belakang VARCHAR(35), akhiran VARCHAR(3), officeid VARCHAR(10), userid VARCHAR(15), nama pengguna VARCHAR(8), email VARCHAR(35 ) ), telepon VARCHAR(25), grup VARCHAR(15), TANGGAL cap tanggal, WAKTU cap waktu, pgpemail VARCHAR(255));

Buat tabel contoh 2:

Mysql buat tabel (personid INT(50) NOT NULL AUTO_INTCREMENT PRIMARY KEY, nama depan VARCHAR(35), nama tengah VARCHAR(50), nama belakang VARCHAR(50) default "bato");

Utilitas baris perintah mysql adalah pembungkus SQL sederhana (dengan kemampuan pustaka readline proyek GNU). Ini mendukung mode interaktif dan non-interaktif. Dalam mode interaktif, hasil kueri disajikan dalam format ASCII. Saat digunakan dalam mode non-interaktif (misalnya, sebagai filter), hasilnya ditampilkan dalam format teks dengan karakter tab sebagai pemisah (format keluaran dapat diubah menggunakan opsi baris perintah). Script dapat dijalankan seperti yang ditunjukkan di bawah ini:

Shell > database mysql output.tab

Jika Anda mengalami masalah karena kekurangan memori pada klien tertentu, gunakan opsi --quick! Ini akan menyebabkan mysql menggunakan fungsi mysql_use_result() alih-alih fungsi mysql_store_result() untuk mengambil data yang dihasilkan.

Menggunakan mysql sangat mudah. Jalankan database mysql atau mysql --user=user_name --password=your_password database e. Ketik perintah SQL langsung pada baris perintah, akhiri dengan salah satu karakter berikut: `;" , `\g" , atau `\G" , lalu tekan tombol ``Enter"'.

Utilitas baris perintah mysql mendukung opsi berikut:

Bantuan Menampilkan informasi bantuan tentang penggunaan program dan keluar darinya. -A, --no-auto-rehash Menonaktifkan pengulangan otomatis. pengulangan harus digunakan untuk mendapatkan hash tabel dan bidang. Ini membuat mysql mulai lebih cepat. --prompt=... Mengatur prompt perintah dalam format yang diberikan. -b, --no-beep Mematikan bunyi bip kesalahan. -B, --batch Output batch dengan karakter tab sebagai pemisah, setiap baris pada baris baru. File riwayat tidak digunakan. --character-sets-dir=... Direktori tempat rangkaian karakter berada. -C, --compress Gunakan kompresi data protokol server/klien. -#, --debug[=...] Log debug. Nilai defaultnya adalah "d:t:o,/tmp/mysql.trace". -D, --database=... Nama database yang akan digunakan. Sebagian besar digunakan dalam file konfigurasi `my.cnf". --default-character-set=... Atur set karakter default. -e, --execute=... --batch) -E, --vertical Print hasil kueri (string) secara vertikal. Anda dapat menghasilkan keluaran seperti ini tanpa opsi ini dengan mengakhiri perintah dengan karakter \G. -f, --force Lanjutkan pemrosesan meskipun terjadi kesalahan SQL. -g, --no-named-commands Matikan perintah bernama Gunakan hanya perintah \*, atau gunakan perintah bernama hanya di awal baris yang diakhiri dengan `;" . Sejak versi 10.9 klien dimulai dengan opsi ini, termasuk bawaan! Namun, dengan opsi -g, perintah panjang masih berfungsi dari baris pertama. -G, --enable-named-commands Mengaktifkan perintah bernama. Perintah panjang diperbolehkan, serta perintah singkat seperti \*. -i, --ignore-space Abaikan spasi setelah nama fungsi. -h, --host=... Sambungkan ke database pada host yang ditentukan. -H, --html Keluaran cetak sebagai HTML. -L, --skip-line-numbers Lewati nomor baris untuk kesalahan. Berguna untuk membandingkan file hasil yang menyertakan pesan kesalahan. --no-pager Menonaktifkan pager dan menulis hasilnya ke stdout (di Unix). Lihat juga perintah \h (bantuan online). --no-tee Mengunci file keluaran. Lihat juga perintah \h (bantuan online). -n, --unbuffered Bersihkan buffer setelah setiap permintaan. -N, --skip-column-names Lewati nama kolom di hasil. -O, --set-variable var=option Atur nilai variabel. Daftar variabel yang digunakan ditampilkan melalui --help . -o, --one-database Perbarui hanya database default. Memungkinkan Anda melewati pembaruan basis data lainnya di log pembaruan. --pager[=...] Mengatur tipe data keluaran. Secara default, ini adalah variabel lingkungan PAGER. Nilai yang mungkin adalah less, more, cat [> filename], dll. Lihat juga perintah \h (bantuan online). Opsi ini tidak berfungsi dalam mode batch. Pager hanya berfungsi di bawah Unix. -p, --password[=...] Kata sandi digunakan saat menghubungkan ke server basis data. Jika kata sandi tidak ditentukan pada baris perintah, maka kata sandi itu diminta dari pengguna. Saat menggunakan bentuk pendek -p, jangan tinggalkan spasi di antara parameter dan nilai kata sandi. -P --port=... Nomor port TCP/IP yang akan digunakan untuk koneksi. -q, --quick Jangan cache hasilnya. Keluarkan baris demi baris karena berasal dari server. Ini dapat memperlambat server jika output dijeda. File riwayat tidak digunakan. -r, --raw Tampilkan nilai kolom tanpa transformasi apa pun. Digunakan dengan --batch . -s, --silent Mode senyap. Hanya tampilkan pesan kesalahan. -S --socket=... Berkas soket yang digunakan untuk koneksi. -t --table Keluarkan hasilnya dalam format tabel. Diatur secara default untuk mode non-batch. -T, --debug-info Cetak beberapa informasi debug saat program keluar. --tee=... Lampirkan sesuatu ke file keluaran. Lihat juga perintah \h (bantuan online). Opsi ini tidak berfungsi dalam mode batch. -u, --user=# Nama pengguna MySQL jika pengguna ini sedang tidak aktif. -U, --safe-updates[=#], --i-am-a-dummy[=#] Hanya izinkan operasi UPDATE dan DELETE menggunakan kunci. Lihat di bawah untuk informasi lebih lanjut tentang pengaturan ini. Anda dapat menyetel ulang opsi ini dengan menyetel argumen --safe-updates=0 dalam file konfigurasi `my.cnf'. -v, --verbose Lebih banyak mode keluaran verbose (-v -v -v memberikan format keluaran tabel).- V , --version Menampilkan informasi versi dan keluar dari program -w, --wait Jika koneksi ke server terputus, tunggu dan coba pulihkan alih-alih dibatalkan.

Anda juga dapat mengatur variabel berikut melalui opsi baris perintah -O atau --set-variable:

Jika Anda mengetik bantuan pada baris perintah, program mysql akan mencantumkan perintah yang didukungnya:

Mysql> help Perintah MySQL help (\h) Menampilkan teks yang diberikan. ? (\h) Sinonim untuk bantuan. hapus (\c) Hapus perintah. terhubung (\r) Hubungkan kembali ke server. Argumen tambahan adalah db dan host. edit (\e) Edit perintah saat ini dengan $EDITOR. ego (\G) Kirim perintah MySQL saat ini ke server dan tampilkan hasilnya secara vertikal. keluar (\q) Keluar dari program. Sama seperti berhenti. go (\g) Kirim perintah MySQL saat ini ke server. nopager (\n) Blokir pager, cetak ke stdout. atatann (\t) Jangan menambahkan entri ke outfile file keluaran. pager (\P) Atur PAGER . Tampilkan hasil kueri melalui PAGER. print (\p) Cetak perintah saat ini. prompt (\R) Ubah format prompt untuk perintah mysql. keluar (\q) Keluar dari program. rehash (\#) Mengembalikan tabel hash. sumber (\.) Jalankan file skrip SQL. Berikan nama file sebagai argumen. status (\s) Dapatkan informasi status server. tee (\T) Atur opsi outfile. Tambahkan sesuatu ke file keluaran yang diberikan. gunakan (\u) Gunakan database lain. Tentukan nama database sebagai argumen.

Perintah pager hanya bekerja di bawah Unix.

Hasil dari ini adalah sebagai berikut:

  • Tidak diperbolehkan untuk menjalankan perintah UPDATE atau DELETE kecuali batasan kunci ditentukan dalam klausa WHERE. Namun, Anda dapat memaksa perintah UPDATE / DELETE untuk dieksekusi menggunakan pernyataan LIMIT: UPDATE table_name SET not_key_column=# WHERE not_key_column=# LIMIT 1;
  • Semua hasil yang terlalu besar dibatasi hingga baris #select_limit#.
  • SELECT yang mungkin membutuhkan lebih dari #max_join_size# kombinasi baris untuk dieksekusi akan dibatalkan.

Beberapa tips berguna untuk menggunakan klien mysql:

Beberapa data lebih mudah dibaca saat ditampilkan secara vertikal daripada jendela keluaran horizontal yang biasa digunakan. Misalnya, teks yang lebih panjang daripada lebarnya dan berisi banyak baris baru seringkali lebih mudah dibaca secara vertikal.

Mysql> SELECT * FROM mails WHERE LENGTH(txt) sbj: UTF-8 txt: >>>>> "Thimble" == Thimble Smith menulis: Thimble> Hi. Saya pikir ini ide yang bagus. Adakah yang akrab dengan UTF-8 Thimble> atau Unicode? Kalau tidak, saya akan meletakkan ini di daftar TODO saya dan melihat apa yang terjadi Thimble.

  • Anda dapat menggunakan opsi perintah tee untuk login. Itu dapat dijalankan dengan opsi --tee=... ke mysql, atau secara interaktif dari baris perintah dengan perintah tee. Semua data yang disajikan di layar juga akan ditambahkan ke file yang ditentukan. Ini bisa sangat berguna untuk tujuan debugging program. Utilitas tee dapat diblokir dari baris perintah dengan perintah noteee. Menjalankan perintah tee lagi akan mengaktifkan logging lagi. Jika parameter untuk perintah tee tidak ditentukan, maka file sebelumnya akan digunakan. Perhatikan bahwa perintah tee akan menulis hasilnya ke file setelah setiap perintah dieksekusi, tepat sebelum prompt perintah muncul untuk perintah selanjutnya.
  • Opsi --pager[=...] memungkinkan untuk melihat atau mencari hasil secara interaktif dengan program Unix less , more , atau serupa. Jika Anda tidak menentukan argumen secara eksplisit dalam parameter ini, klien mysql akan mencari variabel lingkungan PAGER dan menetapkan nilainya ke pager . Program pager juga dapat dimulai dari baris perintah interaktif dengan perintah pager dan dihentikan dengan perintah nopager. Perintah dapat menerima argumen, yang bersifat opsional; pager akan disetel ke nilai argumen ini Perintah pager dapat dipanggil tanpa argumen, tetapi ini memerlukan penggunaan opsi --pager atau pengaturan standar stdout yang sesuai. Perintah pager hanya berfungsi di Unix karena menggunakan fungsi popen(), yang tidak tersedia di Windows. Sebagai gantinya, di Windows, Anda dapat menggunakan opsi tee, meskipun dalam beberapa situasi ini kurang nyaman dibandingkan menggunakan perintah pager.
  • Beberapa tips tentang perintah pager: Dapat digunakan untuk menulis ke file: mysql> pager cat > /tmp/log.txt dan hasilnya hanya akan dikirim ke file. Program yang dipanggil oleh perintah pager dapat menerima opsi apa pun yang valid: mysql> pager less -n -i -S Berikan perhatian khusus pada opsi -S pada contoh di atas. Ini bisa sangat membantu saat melihat hasil. Cobalah dengan keluaran horizontal (akhiri perintah dengan "\g", atau ";") dan keluaran vertikal (di akhir perintah dengan "\G"). Hasil output yang sangat rumit terkadang sulit untuk dibaca dari layar, dalam hal ini perintah less dengan opsi -S akan memungkinkan Anda untuk melihat hasil secara interaktif dari kiri ke kanan, sedangkan jika garis dengan panjang lebih panjang dari lebar layar muncul, hasilnya akan berlanjut di baris baru. Output data dalam kasus seperti itu lebih mudah dibaca. Saat secara interaktif menjalankan perintah less dengan opsi "-S", Anda dapat mengalihkan mode operasinya (diaktifkan/dinonaktifkan) dari baris perintah. Untuk informasi lebih lanjut tentang less, lihat deskripsi dari perintah "h".
  • Sebagai kesimpulan, kami mencatat (jika Anda belum memahami ini dari contoh sebelumnya) bahwa dimungkinkan untuk menggabungkan cara pemrosesan hasil yang sangat kompleks. Jadi, pada contoh berikut, hasilnya akan dikirim ke dua direktori berbeda yang dipasang pada dua hard drive berbeda di bawah /dr1 dan /dr2, namun hasilnya dapat dilihat di layar dengan perintah less: mysql> pager cat | tee /dr1/tmp/res.txt | \ tee /dr2/tmp/res2.txt | kurang -n -i -S
  • Fungsi di atas juga dapat digabungkan: dengan menjalankan tee dan menyetel pager ke less , Anda dapat melihat hasilnya dengan perintah less Unix dan tetap menulis ke file. Perbedaan antara tee utilitas Unix yang digunakan oleh program pager dan perintah tee bawaan di klien mysql adalah bahwa perintah tee bawaan berfungsi bahkan jika utilitas tee tidak tersedia di Unix. Tee bawaan juga merekam semua yang ditampilkan di layar, sedangkan utilitas tee Unix yang digunakan dengan pager tidak melakukan banyak hal. Last but not least, perintah tee interaktif lebih nyaman untuk mengaktifkan/menonaktifkan mode operasi jika Anda terkadang perlu menonaktifkan fitur ini saat menulis ke file.

Anda dapat mengubah format prompt pada baris perintah klien mysql.

Opsi prompt berikut tersedia:

Pilihan Keterangan
\vversi mysql
\Dnama database yang akan digunakan
\Hnama host untuk terhubung
\Pnomor port tempat koneksi dibuat
\uNama belakang
\UAlamat lengkap [email dilindungi]
\\ garis miring terbalik `\"
\Nkarakter baris baru
\Tpenghentian tab
\ ruang angkasa
\_ ruang dengan garis bawah
\Rzona waktu militer (0-23)
\Rwaktu sesuai dengan zona waktu standar (1-12)
\Mmenit
\ydua digit tahun
\Yempat digit tahun
\Dformat tanggal lengkap
\Sdetik
\whari dalam seminggu dalam format tiga huruf (Senin, Selasa, ...)
\PAM/PM (pagi/sore)
\Haibulan dalam format numerik
\HAIbulan dalam format tiga huruf (Jan, Feb, ...)
\CPenghitung yang menghitung jumlah perintah yang dimasukkan

A `\" diikuti dengan huruf lain hanya melengkapi surat itu.

Anda dapat menyetel opsi perintah dengan cara berikut:

Dalam variabel lingkungan Anda dapat mengatur variabel lingkungan MYSQL_PS1 untuk prompt string. Contoh: shell> export MYSQL_PS1="(\ [email dilindungi]\h)[\d]>" `saya.cnf' `.saya.cnf" Anda dapat mengatur opsi prompt di file konfigurasi MySQL apa pun di bawah grup mysql. Misalnya: prompt=(\ [email dilindungi]\h) [\d]>\_ Di baris perintah Anda dapat mengatur opsi --prompt dari baris perintah mysql. Contoh: shell> mysql --Prompt="(\ [email dilindungi]\h)[\d]>" ( [email dilindungi]) > Interaktif Anda juga dapat menggunakan perintah prompt (atau \R) untuk mengubah pengaturan prompt secara interaktif. Contoh: mysql>prompt(\ [email dilindungi]\h) [\d]>\_ PROMPT setel ke "(\ [email dilindungi]\h) [\d]>\_" ( [email dilindungi]) > ([email dilindungi]) > prompt Kembali ke pengaturan PROMPT asli (default) di utilitas mysql> mysql>