uy - Routerni sozlash
Ochiq serverda MySQL buyruq qatori. MySQL bilan buyruq satridan ishlash

Quyida eng foydali va tez-tez ishlatiladigan buyruqlar ro'yxati keltirilgan MySQL misollar bilan.

satr boshida mysql buyrug'i tizimga kirgandan keyin bajarilishini bildiradi MySQL.

Satr boshidagi # yoki $ belgisi buyruqning bajarilishini bildiradi buyruq qatori.

Server holatini tekshirish uchun MYSQL qiling:

Uchun FreeBSD:

# xizmat MySQL-server holati

V CentOS/RHEL:

# xizmat mysqld holati

MySQL server bo'lsa konsoldan MySQL bir xil xostda:

Serverga ulanish uchun MySQL server bo'lsa konsoldan MySQL joylashgan masofaviy xost db1.example.com:

$ mysql -u foydalanuvchi nomi -p -h db1.example.com

Ma'lumotlar bazalari va jadvallar bilan ishlash - yozuvlarni ko'rish, o'chirish, tahrirlash. Konsol

Ma'lumotlar bazasini yarating MySQL server:

Mysql ma'lumotlar bazasini yaratadi

Serverdagi barcha ma'lumotlar bazalari ro'yxatini ko'rsating MySQL:

mysql-dan foydalanish;

Ma'lumotlar bazasidagi barcha jadvallarni ko'rsatish:

Mysql jadvallarini ko'rsatish;

Ma'lumotlar bazasida jadval formatini ko'ring:

mysql tavsifi;

Ma'lumotlar bazasini o'chirish:

Mysql tomchi ma'lumotlar bazasi;

Ma'lumotlar bazasidan jadvalni o'chirish:

Mysql tushirish jadvali;

Barcha jadval tarkibini ko'rsatish:

Mysql SELECT * FROM ;

Tanlangan jadvaldagi ustunlar va ustunlar tarkibini ko'rsatish:

Mysql dan ustunlarni ko'rsatadi;

"Nima bo'lsa ham" bo'lgan ma'lum bir jadvaldagi qatorlarni ko'rsatish:

Mysql SELECT * FROM WHERE = "nima bo'lsa ham";

Barcha yozuvlarni "Bob" va "3444444" telefon raqamini o'z ichiga olgan maxsus jadvalda ko'rsating:

Mysql SELECT * FROM WHERE name = "Bob" VA phone_number = "3444444";

Barcha yozuvlarni ko'rsatish, EMAS Telefon raqami maydoni bo'yicha tartiblangan "Bob" nomi va "3444444" telefon raqamini o'z ichiga olgan:

Mysql SELECT * FROM WHERE name != " Bob " AND phone_number = " 3444444 " telefon_raqami bo'yicha buyurtma;

"bob" va bilan boshlangan barcha yozuvlarni ko'rsatish telefon raqami Muayyan jadvalda "3444444":

Mysql SELECT * FROM WHERE nomi kabi "Bob %" VA phone_number = "3444444";

"bob" harflari va "3444444" telefon raqami bilan boshlangan barcha yozuvlarni ko'rsatish, 1 dan 5 gacha bo'lgan yozuvlarni cheklash:

Mysql SELECT * FROM WHERE nomi kabi "Bob %" VA phone_number = "3444444" chegarasi 1.5;

Foydalanish muntazam iboralar("REGEXP BINARY") yozuvlarni qidirish uchun. Masalan, katta-kichik harflarsiz qidiruv uchun A harfi bilan boshlangan barcha yozuvlarni toping:

Mysql SELECT * FROM WHERE rec RLIKE "^a";

Barcha noyob yozuvlarni ko'rsatish:

Mysql-dan DISTINCT FROM ni tanlang; mysql SELECT , TARTIBI TARTIBI BO'YICHA;

Jadvaldagi qatorlar sonini ko'rsating:

Mysql-dan COUNT(*) NI SELECT ;

Mysql SELECT SUM(*) FROM ;

Ustunni olib tashlash:

Mysql o'zgartirish jadvalini tushirish ustuni;

Ma'lumotlar bazasiga ustun qo'shish:

Mysql o'zgartirish jadvali ustunni qo'shish varchar(20);

Ustun nomini o'zgartirish:

Mysql o'zgartirish jadvalini o'zgartirish varchar(50);

bilan ustun yarating noyob ism ismlarda takrorlanishni oldini olish uchun:

Mysql o'zgartirish jadvali noyob qo'shing();

Ustun o'lchamini o'zgartirish:

Mysql o'zgartirish jadvalini o'zgartirish VARCHAR(3);

Jadvaldan ustunni olib tashlash:

Mysql o'zgartirish jadvali tushish indeksini;

Mysql LOAD DATA INFILE " /tmp/filename.csv " o'rnini "n" BILAN TUGALANGAN JADVAL MAYDONLARIGA "," "n" BILAN TUG'ILGAN SATIRLAR (maydon1,maydon2,maydon3);

MySQL server foydalanuvchilari, parollar - foydalanuvchilar va parollarni qo'shish, o'zgartirish. Konsol

Yangi foydalanuvchi yaratish - serverga ulanish MySQL ildiz sifatida ma'lumotlar bazasiga o'ting, foydalanuvchi qo'shing, imtiyozlarni yangilang:

# mysql -u root -p mysql mysql-dan foydalaning; mysql INSERT INTO foydalanuvchi (Host,User,Password) VALUES("%"," username ", PASSWORD("parol")); mysql flush imtiyozlari;

Db1.example.org masofaviy hostidagi konsoldan foydalanuvchi parolini o'zgartirish:

# mysqladmin -u foydalanuvchi nomi -h db1.example.org -p parol " yangi-parol "

Konsoldan foydalanuvchi parolini o'zgartirish MySQL- ildiz sifatida ulanish, parolni yangilash, imtiyozlarni yangilash:

# mysql -u root -p mysql " user "@" hostname UCHUN PAROL O'RING " = PASSWORD(" parol bu yerda "); mysql flush imtiyozlari;

Ildiz server parolini tiklash/o'zgartirish MySQL- STOP MySQL, imtiyozli jadvallarsiz boshlang, ildiz sifatida ulaning, yangi parol o'rnating, chiqing va qayta ishga tushiring MySQL.

# /etc/init.d/mysql stop # mysqld_safe -skip-grant-tables & # mysql -u root mysql mysql foydalanish; mysql update user set password=PASSWORD(" newrootpassword") bu yerda User="root"; mysql; chegirmali imtiyozlar; mysql quit # /etc/init.d/mysql stop # /etc/init.d/mysql start

Agar root paroli mavjud bo'lsa, root parolini o'rnating.

# mysqladmin -u root paroli yangi parol

Ildiz parolini yangilang:

# mysqladmin -u root -p oldpassword yangi parol

"passwd" paroli bilan host localhost-dan serverga ulanish huquqini o'rnatish - pastki ildizga ulanish, ma'lumotlar bazasiga o'tish, imtiyozlarni o'rnatish, imtiyozlarni yangilash:

# mysql -u root -p mysql mysql-dan foydalaning; mysql grantidan foydalanish *.* da bob @localhost uchun " passwd " bilan aniqlangan; mysql flush imtiyozlari;

Ma'lumotlar bazasidan foydalanish uchun foydalanuvchi imtiyozlarini o'rnatish - ildiz sifatida ulanish, ma'lumotlar bazasiga o'tish, imtiyozlarni o'rnatish, imtiyozlarni yangilash:

# mysql -u root -p mysql mysql-dan foydalaning; mysql INSERT INTO db (Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv) VALUES ("%","ma'lumotlar bazasi nomi","foydalanuvchi nomi","Y","Y","Y"," Y", "Y", "N"); mysql flush imtiyozlari;

Mysql ma'lumotlar bazasi nomi .* bo'yicha barcha imtiyozlarni @localhost foydalanuvchi nomiga beradi; mysql flush imtiyozlari;

Ma'lumotlar bazasidagi ma'lumotlarni yangilash:

Mysql UPDATE SET Select_priv = "Y", Insert_priv = "Y", Update_priv = "Y" bu erda = foydalanuvchi";

Jadvaldagi qatorni o'chirish:

Mysql DELETE qaerdan = "nima bo'lsa ham";

Ma'lumotlar bazasidagi imtiyozlarni yangilash:

Mysql flush imtiyozlari;

Zaxiralash - ma'lumotlar bazalarini yaratish, tiklash. Konsol

Alldatabases.sql fayliga barcha ma'lumotlar bazalarining zaxira nusxasini (dump) yarating:

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

Bitta ma'lumotlar bazasini databasename.sql fayliga zaxiralang:

# mysql dump -u foydalanuvchi nomi -p parol -ma'lumotlar bazalari ma'lumotlar bazasi nomi; /tmp/databasename.sql

Bir jadvalni databasename.tablename.sql fayliga zaxiralang:

# mysql dump -c -u username -p password ma'lumotlar bazasi nomi jadval nomi; /tmp/databasename.tablename.sql

dan ma'lumotlar bazasini (yoki jadvalni) tiklash zaxira nusxasi:

# mysql -u foydalanuvchi nomi -p parol ma'lumotlar bazasi nomi< /tmp/databasename.sql

Ma'lumotlar bazasi jadvallarini yaratish. Konsol

ustun nomlari kichik harflar bilan ko'rsatilgan;
KAPITAL harflar - ustunlar turlari va atributlari;
in (qavslar) - ustun turining qiymati.

Jadval yarating, 1-misol:

mysql CREATE TABLE (ismi VARCHAR(20), o'rtadagi VARCHAR(3), familiyasi VARCHAR(35), qo'shimchasi VARCHAR(3), ofis identifikatori VARCHAR(10), VARCHAR(15), foydalanuvchi nomi VARCHAR(8), email VARCHAR(35) ), telefon VARCHAR(25), guruhlar VARCHAR(15), sana belgisi DATE, vaqt tamg'asi TIME, pgpemail VARCHAR(255));

Jadval yarating, 2-misol:

Mysql yaratish jadvali (shaxsiy INT(50) NOT NULL AUTO_INTCREMENT PRIMARY KEY, familiya VARCHAR(35), ota ismi VARCHAR(50), familiya VARCHAR(50) sukut bo'yicha "bato");

Bu nafaqat PHP orqali mumkin. MySQL MySQL serveriga ulanish uchun konsol mijozi bilan birga keladi. Konsol - bu dasturda oyna interfeysi yo'q, faqat SQL so'rovlari yordamida ma'lumotlar bazalariga kirish uchun buyruq qatori interfeysi mavjudligini anglatadi.

Buyruqlar satrida MySQL-ga ulanish uchun buyruqlar va undan ham ko'proq SQL so'rovlarining o'zlari uchun bir xil. Quyida, qisqalik uchun men "MySQL" ni yozaman, lekin men "MySQL yoki MariaDB" ni nazarda tutyapman, chunki bu holda ular o'rtasida hech qanday farq yo'q.

MySQL DBMSga buyruq satri orqali ulanish orqali siz eng ko'p ishni bajarishingiz mumkin turli vazifalar: Ma'lumotlar bazalari va ularning jadvallarini ko'ring, ma'lumotlar bazalariga so'rovlar yuboring va ushbu so'rovlar natijalarini oling.

MySQL serveriga ulanish uchun buyruqdan foydalaning mijoz dasturi, bu mysql.exe deb ataladi. Uni ishga tushirish kerak, lekin u oddiy dastur kabi ikki marta bosish bilan emas, balki buyruq satridan amalga oshirilishi kerak.

Klaviatura yorlig'ini bosish bilan boshlaylik Win+r va buni qilaylik

Buyruq satri ochiladi.

Endi biz fayl bilan papkaga o'tishimiz kerak mysql.exe. Bu jild bin MySQL DBMS o'rnatilgan katalogda. Misol uchun, menda papkada o'rnatilgan MariaDB bor C:\Server\bin\mariadb\. Shuning uchun bizni qiziqtirgan fayl katalogda joylashgan C:\Server\bin\mariadb\bin\. Ushbu katalogga o'tish uchun buyruqdan foydalaning CD quyida bayon qilinganidek:

CD C:\Server\bin\mariadb\bin\

Ushbu buyruqda C:\Server\bin\mariadb\bin\ ni tizimingiz uchun to'g'ri yo'l bilan almashtiring.

Endi mysql.exe faylini ishga tushiramiz. Kengaytma.exe faylini ko'rsatish shart emas - tizimning o'zi biz nimani nazarda tutayotganimizni taxmin qiladi. Biz ham variantdan foydalanishimiz kerak -u Va -p. Birinchi variantdan so'ng siz foydalanuvchi nomini ko'rsatishingiz kerak - ildiz. Ikkinchi variantdan keyin foydalanuvchi uchun parol. Mening holimda parol o'rnatilmagan, shuning uchun men variantsiz ishlayman -p:

Mysql -u ildizi

Ko'p narsa o'zgarmagandek tuyulishi mumkin, ammo yangi buyruq satri

MariaDB [(yo'q)]>

MySQL serveriga ulanganimizni bildiradi. Aniqrog'i, mening holimda biz MariaDB serveriga ulanganmiz.

Ma'lumotlar bazalari ro'yxatini ko'rish uchun buyruqni kiriting:

MA'LUMOT BAZALARINI KO'RSATISH;

Muayyan ma'lumotlar bazasiga keyingi so'rovlarni yuborish uchun (masalan, test) buyruqdan foydalaning FOYDALANISH:

USE testi;

Tanlangan ma'lumotlar bazasidagi jadvallarni ko'rish uchun quyidagi buyruqni bajaring:

JADVALLARNI KO'RSATISH;

Keling, bir nechta jadval tuzamiz:

CREATE TABLE AuthorsTBL (AuthorID INT NOT NULL AUTO_INCREMENT, AuthorName VARCHAR(100), PRIMARY KEY(AuthorID));

Test ma'lumotlar bazasining mazmunini yana bir bor ko'rib chiqamiz.

Quyida eng foydali va tez-tez ishlatiladigan buyruqlar ro'yxati keltirilgan MySQL misollar bilan.

satr boshida mysql buyrug'i tizimga kirgandan keyin bajarilishini bildiradi MySQL.

Satr boshidagi # yoki $ belgisi buyruqning buyruq satridan bajarilishini bildiradi.

Server holatini tekshirish uchun MYSQL qiling:

Uchun FreeBSD:

# xizmat MySQL-server holati

V CentOS/RHEL:

# xizmat mysqld holati

MySQL server bo'lsa konsoldan MySQL bir xil xostda:

Serverga ulanish uchun MySQL server bo'lsa konsoldan MySQL db1.example.com masofaviy hostida joylashgan:

$ mysql -u foydalanuvchi nomi -p -h db1.example.com

Ma'lumotlar bazalari va jadvallar bilan ishlash - yozuvlarni ko'rish, o'chirish, tahrirlash. Konsol

Ma'lumotlar bazasini yarating MySQL server:

Mysql ma'lumotlar bazasini yaratadi

Serverdagi barcha ma'lumotlar bazalari ro'yxatini ko'rsating MySQL:

mysql-dan foydalanish;

Ma'lumotlar bazasidagi barcha jadvallarni ko'rsatish:

Mysql jadvallarini ko'rsatish;

Ma'lumotlar bazasida jadval formatini ko'ring:

mysql tavsifi;

Ma'lumotlar bazasini o'chirish:

Mysql tomchi ma'lumotlar bazasi;

Ma'lumotlar bazasidan jadvalni o'chirish:

Mysql tushirish jadvali;

Barcha jadval tarkibini ko'rsatish:

Mysql SELECT * FROM ;

Tanlangan jadvaldagi ustunlar va ustunlar tarkibini ko'rsatish:

Mysql dan ustunlarni ko'rsatadi;

"Nima bo'lsa ham" bo'lgan ma'lum bir jadvaldagi qatorlarni ko'rsatish:

Mysql SELECT * FROM WHERE = "nima bo'lsa ham";

Barcha yozuvlarni "Bob" va "3444444" telefon raqamini o'z ichiga olgan maxsus jadvalda ko'rsating:

Mysql SELECT * FROM WHERE name = "Bob" VA phone_number = "3444444";

Barcha yozuvlarni ko'rsatish, EMAS Telefon raqami maydoni bo'yicha tartiblangan "Bob" nomi va "3444444" telefon raqamini o'z ichiga olgan:

Mysql SELECT * FROM WHERE name != " Bob " AND phone_number = " 3444444 " telefon_raqami bo'yicha buyurtma;

Muayyan jadvalda "bob" harflari va "3444444" telefon raqami bilan boshlangan barcha yozuvlarni ko'rsating:

Mysql SELECT * FROM WHERE nomi kabi "Bob %" VA phone_number = "3444444";

"bob" harflari va "3444444" telefon raqami bilan boshlangan barcha yozuvlarni ko'rsatish, 1 dan 5 gacha bo'lgan yozuvlarni cheklash:

Mysql SELECT * FROM WHERE nomi kabi "Bob %" VA phone_number = "3444444" chegarasi 1.5;

Yozuvlarni qidirish uchun oddiy iboralardan ("REGEXP BINARY") foydalanish. Masalan, katta-kichik harflarsiz qidiruv uchun A harfi bilan boshlangan barcha yozuvlarni toping:

Mysql SELECT * FROM WHERE rec RLIKE "^a";

Barcha noyob yozuvlarni ko'rsatish:

Mysql-dan DISTINCT FROM ni tanlang; mysql SELECT , TARTIBI TARTIBI BO'YICHA;

Jadvaldagi qatorlar sonini ko'rsating:

Mysql-dan COUNT(*) NI SELECT ;

Mysql SELECT SUM(*) FROM ;

Ustunni olib tashlash:

Mysql o'zgartirish jadvalini tushirish ustuni;

Ma'lumotlar bazasiga ustun qo'shish:

Mysql o'zgartirish jadvali ustunni qo'shish varchar(20);

Ustun nomini o'zgartirish:

Mysql o'zgartirish jadvalini o'zgartirish varchar(50);

Takroriy nomlardan qochish uchun noyob nomga ega ustun yarating:

Mysql o'zgartirish jadvali noyob qo'shing();

Ustun o'lchamini o'zgartirish:

Mysql o'zgartirish jadvalini o'zgartirish VARCHAR(3);

Jadvaldan ustunni olib tashlash:

Mysql o'zgartirish jadvali tushish indeksini;

Mysql LOAD DATA INFILE " /tmp/filename.csv " o'rnini "n" BILAN TUGALANGAN JADVAL MAYDONLARIGA "," "n" BILAN TUG'ILGAN SATIRLAR (maydon1,maydon2,maydon3);

MySQL server foydalanuvchilari, parollar - foydalanuvchilar va parollarni qo'shish, o'zgartirish. Konsol

Yangi foydalanuvchi yaratish - serverga ulanish MySQL ildiz sifatida ma'lumotlar bazasiga o'ting, foydalanuvchi qo'shing, imtiyozlarni yangilang:

# mysql -u root -p mysql mysql-dan foydalaning; mysql INSERT INTO foydalanuvchi (Host,User,Password) VALUES("%"," username ", PASSWORD("parol")); mysql flush imtiyozlari;

Db1.example.org masofaviy hostidagi konsoldan foydalanuvchi parolini o'zgartirish:

# mysqladmin -u foydalanuvchi nomi -h db1.example.org -p parol " yangi-parol "

Konsoldan foydalanuvchi parolini o'zgartirish MySQL- ildiz sifatida ulanish, parolni yangilash, imtiyozlarni yangilash:

# mysql -u root -p mysql " user "@" hostname UCHUN PAROL O'RING " = PASSWORD(" parol bu yerda "); mysql flush imtiyozlari;

Ildiz server parolini tiklash/o'zgartirish MySQL- STOP MySQL, imtiyozli jadvallarsiz boshlang, ildiz sifatida ulaning, yangi parol o'rnating, chiqing va qayta ishga tushiring MySQL.

# /etc/init.d/mysql stop # mysqld_safe -skip-grant-tables & # mysql -u root mysql mysql foydalanish; mysql update user set password=PASSWORD(" newrootpassword") bu yerda User="root"; mysql; chegirmali imtiyozlar; mysql quit # /etc/init.d/mysql stop # /etc/init.d/mysql start

Agar root paroli mavjud bo'lsa, root parolini o'rnating.

# mysqladmin -u root paroli yangi parol

Ildiz parolini yangilang:

# mysqladmin -u root -p oldpassword yangi parol

"passwd" paroli bilan host localhost-dan serverga ulanish huquqini o'rnatish - pastki ildizga ulanish, ma'lumotlar bazasiga o'tish, imtiyozlarni o'rnatish, imtiyozlarni yangilash:

# mysql -u root -p mysql mysql-dan foydalaning; mysql grantidan foydalanish *.* da bob @localhost uchun " passwd " bilan aniqlangan; mysql flush imtiyozlari;

Ma'lumotlar bazasidan foydalanish uchun foydalanuvchi imtiyozlarini o'rnatish - ildiz sifatida ulanish, ma'lumotlar bazasiga o'tish, imtiyozlarni o'rnatish, imtiyozlarni yangilash:

# mysql -u root -p mysql mysql-dan foydalaning; mysql INSERT INTO db (Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv) VALUES ("%","ma'lumotlar bazasi nomi","foydalanuvchi nomi","Y","Y","Y"," Y", "Y", "N"); mysql flush imtiyozlari;

Mysql ma'lumotlar bazasi nomi .* bo'yicha barcha imtiyozlarni @localhost foydalanuvchi nomiga beradi; mysql flush imtiyozlari;

Ma'lumotlar bazasidagi ma'lumotlarni yangilash:

Mysql UPDATE SET Select_priv = "Y", Insert_priv = "Y", Update_priv = "Y" bu erda = foydalanuvchi";

Jadvaldagi qatorni o'chirish:

Mysql DELETE qaerdan = "nima bo'lsa ham";

Ma'lumotlar bazasidagi imtiyozlarni yangilash:

Mysql flush imtiyozlari;

Zaxiralash - ma'lumotlar bazalarini yaratish, tiklash. Konsol

Alldatabases.sql fayliga barcha ma'lumotlar bazalarining zaxira nusxasini (dump) yarating:

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

Bitta ma'lumotlar bazasini databasename.sql fayliga zaxiralang:

# mysql dump -u foydalanuvchi nomi -p parol -ma'lumotlar bazalari ma'lumotlar bazasi nomi; /tmp/databasename.sql

Bir jadvalni databasename.tablename.sql fayliga zaxiralang:

# mysql dump -c -u username -p password ma'lumotlar bazasi nomi jadval nomi; /tmp/databasename.tablename.sql

Ma'lumotlar bazasini (yoki jadvalni) zaxiradan tiklash:

# mysql -u foydalanuvchi nomi -p parol ma'lumotlar bazasi nomi< /tmp/databasename.sql

Ma'lumotlar bazasi jadvallarini yaratish. Konsol

ustun nomlari kichik harflar bilan ko'rsatilgan;
KAPITAL harflar - ustunlar turlari va atributlari;
in (qavslar) - ustun turining qiymati.

Jadval yarating, 1-misol:

mysql CREATE TABLE (ismi VARCHAR(20), o'rtadagi VARCHAR(3), familiyasi VARCHAR(35), qo'shimchasi VARCHAR(3), ofis identifikatori VARCHAR(10), VARCHAR(15), foydalanuvchi nomi VARCHAR(8), email VARCHAR(35) ), telefon VARCHAR(25), guruhlar VARCHAR(15), sana belgisi DATE, vaqt tamg'asi TIME, pgpemail VARCHAR(255));

Jadval yarating, 2-misol:

Mysql yaratish jadvali (shaxsiy INT(50) NOT NULL AUTO_INTCREMENT PRIMARY KEY, familiya VARCHAR(35), ota ismi VARCHAR(50), familiya VARCHAR(50) sukut bo'yicha "bato");

Keling, hamma narsa allaqachon o'rnatilgan deb faraz qilaylik va endi biz ishga kirishamiz.
Ulanamiz:
ceval@srv:~$ mysql -pPASSWORD
-p, --parol=— MySQL serveriga ulanish uchun foydalanuvchi paroli. -p va parol o'rtasida bo'sh joy bo'lmasligi kerak.
-u, --user=- MySQL serveriga ulanish uchun foydalanuvchi nomi. Majburiy emas, sukut boʻyicha loginingiz bilan bir xil boʻladi.Agar login MySQL serveriga ulanish uchun foydalanuvchi nomidan boshqacha boʻlsa ishlatiladi.
$ mysql -u ceval_ -pPASSWORD
Agar parolimizni to'g'ri kiritgan bo'lsak, biz quyidagi satrlarni va takliflarni ko'ramiz:

MySQL monitoriga xush kelibsiz. Buyruqlar bilan tugaydi; yoki\g.
Server versiyasi: 5.0.45-Debian
Yordam uchun “help;” yoki “\h” ni kiriting. Buferni tozalash uchun "\c" ni kiriting.
mysql>

Biz kerakli ma'lumotlar bazasini cp1251 kodlash bilan yaratamiz; belgilangan kodlashni kerakli kod bilan almashtirish mumkin:
MA'LUMOTLAR BAZASINI YARATISH db_name SUNUM CHARACTER SET cp1251 DEFAULT COLLATE cp1251_general_ci;
Ma'lumotlar bazasini o'chirish:
DROP MA'LUMOTLAR BAZASI db_name;
Baza o'zgarishi
"ma'lumotlar bazasi" dan foydalanish;
Ma'lumotlar bazasidan jadvalni olib tashlash
DROP TABLE `db_table`;
Yana ozgina:
->\g ma'lumotlar bazalarini ko'rsatish; // qanday ma'lumotlar bazalari mavjudligiga qarang
->\g ma'lumotlar bazasi sun'iy yo'ldoshini yaratish; // yangi ma'lumotlar bazasini yaratish
->\g ma'lumotlar bazalarini ko'rsatish; // yaratilganligini tekshiring
->\q // Chiqish

IN turli versiyalar MySQL turli xil buyruqlarga ega bo'lishi mumkin (4 va 5) bu holda \g - serverga SQL skriptini bajarish uchun buyruq beradi
Ma'lumotlar bazasini yuklash va saqlash MySQL ma'lumotlari(zaxiralash, tiklash) mysql ubuntu bilan ishlash
Ma'lumotlar bazasini saqlangan ma'lumotlar bilan yuklang (ma'lumotlar saqlangan bo'lsa). Ular, masalan, baza.sql faylida saqlanadi
mysql
->\g ma'lumotlar bazalarini ko'rsatish;
->\u baza;
->\. /home/backup/baza.sql
->\q
/home/backup/baza.sql — zaxira faylga yo'l
[b]Ma'lumotlar bazasini baza.sql faylida ma'lumotlar bilan saqlang
mysqldump baza > /home/backup/baza.sql;
Ma'lumotlar bazasi saqlanadi: /var/lib/mysql/baza- Butun ma'lumotlar bazasini o'chirish uchun ushbu katalogni o'chirish kifoya.
Amalga oshirish mumkin turli yo'llar bilan:
— ssh orqali ulanish va buyruq satri orqali ishlash;
- phpmyadmin-dan foydalaning;
- mysql-admin paketidan foydalaning - bu MySQL boshqaruvining grafik yordam dasturi (intuitiv MySQL boshqaruvi uchun GUI vositasi)
MySQL)
Endi paketni o'rnatamiz mysql-admin har bir mashina uchun
sudo aptitude MySQL-adminni o'rnating
Keyin biz masofaviy mashinaga o'tamiz va [b]my.cnf konfiguratsiyasini tahrirlaymiz
$ sudo nano /etc/mysql/my.cnf
Boshlash uchun quyidagilarni tekshirishingiz mumkin:
$ netstat -an | grep 3306
tcp 0 0 127.0.0.1:3306 0.0.0.0:* TINGLASH
Natijadan ko'rinib turibdiki, MySQL hozirda localhoste-da tinglanmoqda, ammo MySQL nafaqat localhost-da, balki barcha interfeyslarni tinglash uchun kerak, shuning uchun biz quyidagi yozuvni topamiz va tahrirlaymiz:

[...]
# Tarmoqni o'tkazib yuborish o'rniga endi faqat tinglash uchun standart rejim
# localhost ko'proq mos keladi va xavfsizroq emas.
bog'lanish manzili = 127.0.0.1
#
[...]

va MySQL barcha interfeyslarni tinglashi uchun keling, ushbu qatorni sharhlaylik:
[...]

#bind-manzil = 127.0.0.1:

[...]
Keling, MySQL-ni to'xtatamiz:
$ sudo /etc/init.d/mysql-ni qayta ishga tushiring
Va yana buyruq chiqishini ko'rib chiqaylik:
$ netstat -an | grep 3306
Chiqish quyidagicha ko'rinishi kerak:

tcp 0 0 0.0.0.0:3306 0.0.0.0:* TINGLASH

va endi MySQL bilan masofadan ishlash uchun mysql-admin-ni ishga tushirishingiz mumkin - Alt+F2 - mysql-admin
yoki
$mysql-admin
mysql ubuntu bilan ishlash

Xayrli kun, hamkasblar :)

Ha, aynan hamkasblar, chunki oddiy odam uchun MySQL buyruq satri (yoki MySQL Shell, ishlab chiquvchilar uni ham chaqirishni yaxshi ko'radi), shuningdek, konsolda MySQL bilan ishlash foydali bo'lishi dargumon.

Uchun bu mavzu qiziqarli bo'ldi, siz hech bo'lmaganda phpMyAdmin va boshqa interfeyslarni printsipial jihatdan ishlatmaydigan yangi boshlanuvchi tizim ma'muri bo'lishingiz kerak.

Konsolni turli xil operatsion tizimlarda ishga tushirish

Men server konsolida MySQL buyruq satridan qanday foydalanishni ko'rsataman, shuning uchun avval undan boshlash yaxshi bo'lardi.

Amal oddiy, ko'pchilik uchun tanish, buning uchun "issiq tugmalar" ni bilish kifoya.

Windows-da konsolni ishga tushirish:

  • Win + R buyruq satrini ochish uchun Windows satrlari administrator huquqlari bilan;
  • Buyruqni kiriting cmd
  • bosing Kirish klaviaturada

Konsolni ishga tushiring Linux distributivlari(Terminal): Men ishlagan Ubuntuda tizim tugmalari birikmasi yetarli Ctrl+Alt+T. Boshqa Linux operatsion tizimlari haqida hech narsa deya olmayman.

MacOS-da konsolni ishga tushirish: Men buni o'zim qilmaganman, chunki ... Men hali Mac olmaganman va uni olishim dargumon, chunki menga kerak emas, lekin bilganimdek, ushbu operatsion tizimda terminalga qo'ng'iroq qilish uchun "issiq tugmalar" yo'q. Shunday qilib, agar siz Apple mahsulotlarining foydalanuvchisi bo'lsangiz, konsolni OS interfeysi orqali ishga tushiring, xayriyatki, Internetda ko'plab qo'llanmalar mavjud.

Ba'zi bir mutaxassis tasodifan ushbu maqolaga qoqilib qolsa, bunday ma'lumotni nashr qilish biroz uyatli. tizim administratori soqolli tajriba bilan, chunki u shunday deb o'ylaydi: "Muallif o'z o'quvchilarini dasturchi deb biladi, lekin shu bilan birga u konsolni qanday ishga tushirishni o'rgatadi ... Qandaydir psixo :-)."

Ha, juda mantiqiy :) Lekin men faqatgina professional ishlab chiquvchilar bilan bir qatorda yangi boshlanuvchilar ham bu erga kelishi mumkin bo'lgan vaziyatni hisobga olaman. Shuning uchun men yuqorida aytib o'tganimdek, ma'lumotlarni to'liq va barcha toifadagi foydalanuvchilar uchun ochiq qilishga harakat qilaman.

MySQL konsolining asosiy buyruqlari

Shunday qilib, birinchi navbatda, konsoldagi MySQL buyruq qatoriga kirishimiz kerak. Buning uchun server konsolini oching va agar sizda MySQL global miqyosda xizmat sifatida o'rnatilgan bo'lsa, "ulanishni tekshirish" uchun biz quyidagilarni yozamiz:

Mysql -V

Konsol buyrug'i mysql bizga MySQL buyruq qatori bo'lgan bir xil nomdagi yordamchi dasturni ishga tushirishga imkon beradi.

Bu bizga kompyuterda o'rnatilgan MySQL versiyasini aniqlash va uning umuman xizmat sifatida o'rnatilganligiga ishonch hosil qilish imkonini beradi. Agar shunday bo'lsa, konsolda quyidagi matnga o'xshash narsani ko'rasiz: .

Ha, men "aqldan ozgan kodlovchi" emasman, chunki men Windows-dan foydalanaman :) Lekin gap bu emas. Yoniq Unix tizimlari tartibi bir xil bo'ladi.

Agar to'satdan MySQL kompyuteringizda global miqyosda o'rnatilmagan bo'lsa yoki siz MySQL-ning bir nechta versiyalari bilan ishlashingiz kerak bo'lsa, unda faqat MySQL fayllari va kutubxonalari bo'lgan kataloglar mavjud bo'lsa, MySQL-ni konsol orqali ishga tushirish shunday ko'rinadi.

Konsolda MySQL bajariladigan fayl joylashgan katalogga quyidagi buyruq bilan o'ting (Windows da, hech bo'lmaganda bu mysql.exe):

CD C:\OpenServer\modullar\ma'lumotlar bazasi\MySQL-5.7-x64\bin

Tabiiyki, tarqatish yo'lingiz boshqacha bo'lishi mumkin. Misol tariqasida, men OpenServerga kiritilgan MySQL versiyalaridan birini ishga tushirishga qaror qildim.

Va biz MySQL-ni ishga tushiramiz, uning versiyasini yo'lda tekshiramiz:

Mysql.exe -V

Natijada, konsolda birinchi holatga o'xshash xabar ko'rsatilishi kerak edi mysql Ver 14.14 Distrib 5.7.16, Win64 (x86_64) uchun.

Mana, biz MySQL-ni buyruq satridan server konsoli orqali ishga tushirishni saralab oldik, endi to'g'ridan-to'g'ri MySQL serveriga ulanamiz.

Konsolda MySQL serveriga ulanish

MySQL serveri siz konsolda unga kirishga harakat qilayotgan kompyuterda bo'lishi shart emas. Shuning uchun, ulanish uchun uzoq serverga Konsol orqali MySQL mumkin edi; MySQL yordam dasturida kerakli sozlamalarni belgilashingiz mumkin bo'lgan ko'plab parametrlar mavjud.

Konsolda MySQL buyruq qatorini ishga tushirish uchun biz server konsolida quyidagilarni yozishimiz kifoya:

Biroq, bu holda siz quyidagi xatoni olasiz: XATO 1045 (28000): “ODBC’@’localhost” foydalanuvchisiga kirish taqiqlandi (parol yordamida: YO‘Q). Xato xabari mening Windows tizimimda shunday ko'rinadi. Agar siz Linux-dan foydalansangiz, u holda ODBC o'rniga tizimda amallarni bajaradigan tizim foydalanuvchingiz nomi bo'ladi.

Bularning barchasi, chunki sukut bo'yicha, MySQL serveriga ulanishda konsol Windowsda ODBC foydalanuvchisini parolsiz va Linuxda tizim foydalanuvchisini bir xil parol bilan ishlatadi. Standart xost - localhost, ya'ni. bu foydalanuvchi faqat mahalliy mashinadan ulanishi mumkin.

Shunday qilib, sizda ikkita variant bor: MySQL buyruq qatoriga kirish uchun boshqa foydalanuvchidan foydalaning yoki kerakli hisob qaydnomasi bilan MySQL foydalanuvchisini yarating. Ammo ikkinchi usul uchun biz hali ham birinchisiz qilolmaymiz :) Shuning uchun, avval MySQL serveriga standart foydalanuvchi ostida ulanamiz. ildiz, bu MySQL-ni kompyuterga o'rnatishda yaratilgan va sukut bo'yicha localhost-dan kirishga ruxsat berilgan:

Mysql -u root -p

Parolni kiritish so'ralganda Enter tugmasini bosing (agar siz uni kiritmagan bo'lsangiz, albatta, MySQL-ni o'rnatishda). Keyin MySQL serveriga ulanadi, ulanish identifikatori tayinlanadi va MySQL buyruq qatoriga kirish huquqi beriladi.

Agar siz ma'lum xost nomi yoki IP-ga ega bo'lgan MySQL serveriga ulanishni istasangiz yoki boshqa foydalanuvchi sifatida tizimga kirmoqchi bo'lsangiz, quyidagi buyruq formatidan foydalaning:

MySQL -u user_name -p user_password -h MySQL_server_host_or_IP

Pastki chiziqli kirill harflari o'rniga, albatta, ma'lumotlaringizni lotin harflarida kiritishingiz kerak. Aytgancha, agar xohlasangiz, ushbu buyruqni biroz boshqacha formatda yozishingiz mumkin:

MySQL --user=user_name --password=user_password --host=host_or_IP_of_MySQL_server

Agar biron sababga ko'ra siz MySQL ulanish parolingiz konsolda paydo bo'lishini xohlamasangiz (bu to'g'ri, aslida), quyidagi buyruqdan foydalanishingiz mumkin:

MySQL -u user_name -h MySQL_server_host_or_IP -p

Parol aniq ko'rsatilmaganligi sababli, keyingi bosqichda uni kiritish so'raladi. Bundan tashqari, siz kiritgan belgilar hatto yulduzcha (joker belgilar) ko'rinishida ham ko'rsatilmaydi, buning o'rniga faqat bo'sh qator bo'ladi.

Bundan tashqari belgilangan sozlamalar ulanish uchun quyidagi parametrlardan foydalanish mumkin, ularning qiymatlari yuqoridagi kabi ko'rsatiladi:

  1. --port yoki -P - MySQL serveriga ulanish uchun portni belgilash;
  2. —protokol — ulanish amalga oshiriladigan protokol (mumkin variantlar: Windows va Linux uchun TCP, Linux uchun SOCKET, Windows uchun PIPE va MEMORY);
  3. --rozetka yoki -S -- bu parametr agar siz rozetkalar orqali ulanishni istasangiz foydali, shuning uchun parametr qiymati rozetka bo'ladi;
  4. --pipe yoki -W - parametr ulanishlar uchun nomlangan "quvurlar" yoki "quvurlar" dan foydalanmoqchi bo'lsangiz kerak;
  5. --shared-memory-base-name - bu parametr Windowsda umumiy xotira orqali MEMORY ulanishlari uchun foydali bo'ladi;

MySQL serveriga ulanish uchun barcha parametrlar ro'yxati bu bilan cheklanmagani aniq. Aslida, ularning ko'plari bor.

Agar biron sababga ko'ra xost, foydalanuvchi va parolni ko'rsatadigan standart variant sizga mos kelmasa, ulanish parametrlarining to'liq ro'yxatini bilish uchun quyidagi ma'lumotlar sizga foydali bo'ladi - https://dev.mysql.com/doc/ refman/5.7/en/ connecting.html

MySQL konsolida ma'lumotlar bazasini qanday yaratish kerak

MySQL serveriga ulanganimiz va MySQL buyruq qatorini ishga tushirganimizdan so'ng, saytimiz ma'lumotlar bazasini yaratishdan boshlanadigan hayot aylanishini boshlash vaqti keldi. Buyruqlar qatori orqali MySQL ma'lumotlar bazasini yaratish uchun siz quyidagi buyruqni kiritishingiz kerak:

MA'LUMOTLAR BAZASINI YARATING ma'lumotlar bazasi_nomi;

Xuddi shu harakat maxsus MySQL yordam dasturi yordamida amalga oshirilishi mumkin mysqladmin. U MySQL buyruq satridan ajratilgan holda ishlaydi, ya'ni. undan foydalanish uchun undan chiqish yoki ochish kerak bo'ladi yangi konsol server.

Va keyin quyidagi buyruqni chaqiring:

Mysqladmin ma'lumotlar bazasi_nomini yaratadi;

Aytgancha, mysqladmin yordam dasturidan foydalanib, siz MySQL konsoliga kirmasdan nafaqat ma'lumotlar bazalarini yaratishingiz va o'chirishingiz, balki server konfiguratsiyasini, MySQL jarayonlarini boshqarishingiz, replikatsiyalarni boshqarishingiz, ping serverlarini boshqarishingiz va boshqa qiziqarli narsalarni qilishingiz mumkin.

Buyruqlar satrida MySQL foydalanuvchisini qanday yaratish mumkin

Tez-tez emas, lekin ba'zida siz yangi MySQL foydalanuvchisini yaratishingiz kerak bo'ladi. Bundan tashqari, konsol rejimida.

MySQL buyruq satrida bu quyidagicha amalga oshiriladi:

FOYDALANUVCHI "user_name"@"host_or_machine_IP" YARATING "user_password" ORQALI;

Foydalanuvchi yaratildi. Parametr xost_yoki_IP_mashina foydalanuvchi yaratishda u serverga ulanishi mumkin bo'lgan IP-ni yoki xost nomini (mos keladi) ko'rsatish kerakligini anglatadi. Domen nomi tarmoqdagi ishlaydigan mashina).

Aytgancha, MySQL serveriga ulanish uchun xostni belgilashda siz foiz belgisidan foydalanishingiz mumkin - % , bu shuni anglatadiki foydalanuvchi yaratilmoqda istalgan IP manzil yoki xostdan MySQL serveriga ulanishi mumkin.

Shuni hisobga olish kerakki, bu holda localhost % yordamida ko'rsatilgan manzillar ro'yxatiga kiritilmaydi, chunki localhost standart TCP/IP o'rniga UNIX rozetkasi orqali ulanishni bildiradi. Bular. agar yaratilgan MySQL foydalanuvchisi serverga rozetkalardan foydalanmasdan, lekin konsolda MySQL serveriga ulanishda ko'rsatilgan boshqa protokoldan foydalangan holda ulansa, u ikkitasini yaratishi kerak bo'ladi. Hisoblar foydalanuvchi:

FOYDALANUVCHI "foydalanuvchi nomi"@"%" YARATING "parol" BO'LGAN; FOYDALANUVCHI "foydalanuvchi nomi"@"localhost" YARATING "parol" BO'LGAN;

Biz konsolda MySQL foydalanuvchisini qanday yaratishni aniqladik. Keling, quyidagi buyruq bilan yangi yaratilgan ma'lumotlar bazasi bilan har qanday harakatlarni bajarish uchun foydalanuvchi huquqlarini o'rnatamiz:

ma'lumotlar bazasi_nomi bo'yicha BARCHA PRIVILEGLARNI BERING.* "user_name"@"host_or_machine_IP" GA;

Variant HAMMA, siz tushunganingizdek, foydalanuvchiga ma'lum bir ma'lumotlar bazasi bilan har qanday harakatlarga ruxsat berilganligini bildiradi. Buyruq yordamida foydalanuvchilarga berilishi mumkin bo'lgan huquqlarning to'liq ro'yxati Grant, bu yerda topishingiz mumkin (parametrlarning tavsifi ingliz tilida bo'lsa ham) - https://dev.mysql.com/doc/refman/5.7/en/grant.html#grant-privileges

Aytgancha, siz vergul bilan ajratilgan buyruqni chaqirishda ularni ko'rsatib, bir nechta imtiyoz parametrlaridan foydalanishingiz mumkin.

Agar siz superuser yaratmoqchi bo'lsangiz, ya'ni. serverdagi barcha ma'lumotlar bazalari bilan turli amallarni bajarish uchun global imtiyozlarga ega, keyin quyidagi buyruq chaqiruvidan foydalaning:

HAMMAGA YO'Q *.* GA "user_name"@"host_or_machine_IP";

Aytgancha, imtiyozlarni o'rnatgandan so'ng MySQL server keshini tozalash yaxshi bo'lardi. Agar siz ularni o'zgartirsangiz, quyidagi buyruqni chaqirish orqali buni qilishni unutmang:

FLUSH PRIVILEGES;

Agar siz foydalanuvchi huquqlarini o'zgartirmoqchi bo'lsangiz, avval barcha huquqlarni tiklash uchun quyidagi buyruqdan foydalaning:

"user_name"@"host_or_machine_IP" dan *.* BARCHA PRIVILEGLARINI O'CHIRISH;

Va keyin u foydalanishi kerak bo'lganlarni o'rnating Grant, avval aytib o'tilganidek.

Agar kelajakda siz MySQL foydalanuvchi parolini o'zgartirishingiz kerak bo'lsa, buning uchun MySQL Shell-da quyidagi buyruqlarni bajaring:

"user_name"@"host_or_machine_IP" = PASSWORD("yangi_parol"); FLUSH PRIVILEGES;

MySQL server imtiyoz keshini tiklash huquqlarni o'zgartirish bilan bir xil maqsadda kerak - bu harakatsiz MySQL foydalanuvchi parolini o'zgartirish hisobga olinmasligi mumkin, shuning uchun uni ishlatishga dangasa bo'lmang :)

Aytgancha, Internet foydalanuvchining MySQL parolini tiklash uchun quyidagi buyruqdan foydalanish misollariga to'la:

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

Lekin bu variant men uchun MySQL 5.7 da ishlamadi, xatolik yuz berdi XATO 1054 (42S22): "maydonlar ro'yxati"dagi noma'lum "Parol" ustuni. Buning sababi mysql.user jadvalida Parol maydonining yo'qligi bo'lib chiqdi.

Shundan kelib chiqib, ushbu parametr faqat MySQL ning eski versiyalari uchun ishlaydi, deb taxmin qilishimiz mumkin, bu maydon foydalanuvchi jadvalida mavjud edi. Shuning uchun, ishonch hosil qilish uchun, mening birinchi variantimdan foydalaning, agar siz versiyalarni yangilash imkoniyatisiz antidiluvian dasturiy ta'minot bilan ishlashga majbur bo'lmasangiz :)

Bu yangi MySQL foydalanuvchisini yaratish va uning huquqlari va parollari bilan harakatlarni ko'rib chiqishni yakunlaydi. Keling, davom etaylik.

MySQL bilan ishlashda buyruq satri orqali ma'lumotlar bazasini tanlash

Endi MySQL Shell-da foydalanuvchi yaratgandan va unga ma'lumotlar bazasi bilan ishlash huquqini bergandan so'ng, biz ma'lumotlar bazasining o'zi va unda saqlangan ma'lumotlar bilan ishlashimiz uchun aynan shu ma'lumotlar bazasini tanlashimiz kerak.

Buning uchun MySQL konsolida quyidagi buyruqdan foydalaning:

maʼlumotlar bazasi_nomidan foydalanish;

Agar hamma narsa yaxshi bo'lsa, konsolda xabar ko'rsatiladi Ma'lumotlar bazasi o'zgartirildi, bu konsol orqali MySQL ma'lumotlar bazasiga kirganimizni bildiradi. Aytgancha, MySQL serveriga ulanishda siz dastlab ishlashingiz kerak bo'lgan ma'lumotlar bazasini belgilashingiz mumkin. Buning uchun server konsolida quyidagi buyruqni kiritishingiz kerak:

Mysql --user=user_name --password=user_password --host=MySQL_server_host_or_IP --ma'lumotlar bazasi=ma'lumotlar bazasi_nomi

Yoki xuddi shu narsa, faqat MySQL foydalanuvchi parolini so'rash:

Mysql -u user_name -h host_yoki_IP_MySQL_server_ma'lumotlar bazasi_name -p

Ana xolos. Endi konsol orqali MySQL ma'lumotlar bazasiga ulanishda hech qanday qiyinchiliklarga duch kelmaysiz deb o'ylayman :)

MySQL konsoli orqali MySQL jadvallari bilan ishlash

Shunday qilib, biz konsol orqali MySQL ma'lumotlar bazasini yaratdik. Endi MySQL buyruq satri serverda saqlangan ma'lumotlarga kirishning yagona vositasi bo'lgan taqdirda u bilan qanday ishlashni o'rganish yaxshi bo'lar edi (men uchun bo'lgani kabi, bu haqda men boshida gapirgan edim. maqola).

Ma'lumki, u jadvallardan iborat bo'lib, ularning ichida ma'lumotlar allaqachon bir nechta maydonlarga ega yozuvlar shaklida saqlanadi. Shuning uchun, ma'lumotlarni joylashtirish ierarxiyasidan so'ng, birinchi navbatda jadvallar bilan odatiy CRUD operatsiyalarini bajarishni o'rganamiz.

CRUD operatsiyalari, agar kimdir bilmagan bo'lsa, ingliz tilidan ma'lumotlarni yaratish, o'qish, yangilash va o'chirish operatsiyalari. "Yaratish, o'qish, yangilash, o'chirish" (bu sizga intervyu paytida kerak bo'lishi mumkin).

Eslatib o'taman, jadvallar bilan amallarni bajarish uchun avvalo MySQL ma'lumotlar bazasiga buyruq yordamida ulanish kerak FOYDALANISH.

Shunday qilib, bizning kun tartibimizdagi birinchi narsa bu buyruq qatori orqali ma'lumotlar bazasida MySQL jadvalini yaratish buyrug'i, bu quyidagicha ko'rinadi:

CREATE TABLE jadval_nomi (maydon_nomi_1 maydon_turi_1, maydon_nomi_2 maydon_turi_2(maydon_oʻlchami_2), INDEX(maydon_nomi_1), ...);

Siz tushunganingizdek, siz xohlagancha ko'p maydonlar bo'lishi mumkin, ularning turlari har xil bo'lishi mumkin, shuningdek indekslar va kalitlarning mavjudligi ixtiyoriydir.

Aytgancha, agar siz jadvalni boshqa ma'lumotlar bazasiga ko'chirmoqchi bo'lsangiz yoki shunchaki joriy jadvalda nusxasini yaratmoqchi bo'lsangiz, sizga quyidagi buyruqlar yordam beradi:

JADVAL YARATING yangi_jadval_nomi kabi eski_jadval_nomi; INSERT new_jadval_nomi SELECT * FROM eski_jadval_nomi;

Bu buyruqlar jadval tuzilmasi va uning ma'lumotlarini jadval indekslari va triggerlari bilan birga nusxalash imkonini beradi. Agar sizga shunchaki ma'lumotlar va tuzilma kerak bo'lsa (maydonlar nomlari va ularning ma'lumotlar turlari), unda siz bitta buyruqni chaqirish orqali olishingiz mumkin:

JADVAL YARATING yangi_jadval_nomi * FROM eski_jadval_nomi;

CRUD blokidan keyingi operatsiya o'qishdir. Jadvallar bo'lsa, o'qish ularning tuzilishini ko'rsatadi. Buning uchun quyidagi to'rtta buyruq mavjud:

jadval_nomidan TO'LIQ USTUNLARNI KO'RSATISH; jadval_nomini TA'SFRI BERING; jadval_nomini tushuntirish; SHOW CREATE TABLE table_name;

Birinchisi, MySQL konsoliga ma'lumotlar bazasi jadvalining maydonlari haqidagi ma'lumotlarni jadval shaklida ko'rsatadi, bu maydon nomini, ma'lumotlar turini, kalitlarning mavjudligini, standart qiymatni va boshqalarni ko'rsatadi. Kalit so'zdan foydalanganda TO'LIQ joriy foydalanuvchi uchun har bir maydon uchun imtiyozlar, ularning har biri uchun sharhlar va kodlash qiymatini o'z ichiga olgan kengaytirilgan ma'lumotlarni olishingiz mumkin.

Ikkinchi va uchinchi buyruqlar kengaytirilgan ma'lumotsiz birinchi buyruqning oddiygina qisqartirilgan shakllaridir. Nega ularni ko'proq yaratish kerak edi?.. Tasavvur qilolmayman... Ish suhbatlari paytida so'raladigan narsa bo'lishi uchunmi? 🙂

To'rtinchi buyruq, nom, maydon turlari va ularning standart qiymatlaridan tashqari, jadval kalitlari, jadval dvigatellari (InnoDB, MyISAM), kodlash va boshqalar qiymatlarini olish imkonini beradi.

Jadvallar holatida yangilash operatsiyasi ularning tuzilishidagi o'zgarishlarni anglatadi, ya'ni. maydonlar bilan turli harakatlar MySQL jadvallari:

ALTER TABLE jadval_nomi DROP COLUMN maydon_nomi; ALTER TABLE jadval_nomi ADD COLUMN maydon_nomi VARCHAR(20); ALTER TABLE jadval_nomi eski_maydon_nomini o'zgartiring yangi_maydon_nomi VARCHAR(50); ALTER TABLE jadval_nomini O'GRISH maydon_nomini VARCHAR(3);

Birinchi buyruq ma'lum bir jadval maydonini o'chirishga, ikkinchisi uni qo'shishga, uchinchisi maydon nomini o'zgartirishga va bir vaqtning o'zida unda saqlangan ma'lumotlar turini o'zgartirishga, to'rtinchisi esa faqat ma'lumotlar turini o'zgartirishga imkon beradi. .

Xuddi shu narsani asosan o'xshash buyruqlar yordamida jadval indekslari bilan qilish mumkin:

ALTER TABLE jadval_nomi QO'SHISH UNIQUE INDEX indeks_nomi (maydon_nomi_1, ...); ALTER TABLE jadval_nomi INDEX eski indeks_nomini yangi indeks_nomiga o'zgartirish; ALTER TABLE jadval_nomi DROP INDEX indeks_nomi;

Quyidagi buyruqlar buyruq qatori orqali MySQL jadvallariga indekslarni qo'shish, nomini o'zgartirish va o'chirish imkonini beradi. Aytgancha, indekslarni qo'shish va o'chirish uchun mustaqil buyruqlardan foydalanishning boshqa alternativ varianti mavjud. JADVAL ALTER. Shuning uchun, agar xohlasangiz, ulardan foydalanishingiz mumkin:

YAXSHI INDEX indeks_nomini YARATING (maydon_nomi_1, ...) ON jadval_nomi; DROP INDEX indeks_nomi ON jadval_nomi;

Berilgan buyruqlar oldingi blokdagi birinchi va oxirgiga teng. Afsuski, indeks nomini o'zgartirish uchun alohida buyruq mavjud emas. Va indeks turini o'zgartirish uchun, afsuski, MySQL-da umuman yo'l yo'q. Yagona yechim - indeksni o'chirish va uni kerakli tur bilan qayta yaratish.

Va nihoyat, biz CRUD blokidan so'nggi operatsiyaga - o'chirishga erishdik. MySQL jadvallarini ma'lumotlar bazasidan olib tashlash juda oson. MySQL konsolida quyidagi buyruqni bajaring:

DROP TABLE jadval_nomi;

Ba'zan amalda jadvalni o'chirish yoki uning tuzilishini o'zgartirishni imkonsiz qiladigan vaziyatlar yuzaga keladi. Qoida tariqasida, bu jadvallarni bir-biri bilan bog'lash uchun ma'lumotlar bazasida xorijiy kalitlardan foydalanish bilan bog'liq. Maqolaning boshida aytganimdek, men shaxsan bu holatga bir necha bor duch kelganman.

Shuning uchun, agar jadval tuzilmasi yoki uning ma'lumotlarini o'chirish yoki yangilashda MySQL sizga matn bilan xatolikni qaytargan bo'lsa Asosiy qatorni oʻchirib boʻlmaydi yoki yangilab boʻlmaydi: xorijiy kalit cheklovi bajarilmaydi, unda quyidagi ma'lumotlar siz uchun foydali bo'ladi.

Rejamizni amalga oshirish uchun biz chet el kalitlari mavjudligini tekshirishni vaqtincha o'chirib qo'yishimiz, kerakli operatsiyani bajarishimiz va keyin tekshirishni qayta yoqishimiz kerak, chunki bu haqiqatan ham zarur va ko'p hollarda ma'lumotlar yaxlitligi buzilishidan himoya qilish imkonini beradi.

Aslida, buning uchun MySQL xorijiy kalitlari kerak.

Shunday qilib, chet el kalitlari bilan aralashadigan ma'lumotlarni o'chirish uchun MySQL konsolida quyidagi amallarni bajarishingiz kerak:

FOREIGN_KEY_CHECKS NI O'rnatish=0; #kerakli_mysql_buyrug'i FOREIGN_KEY_CHECKS SET=1;

Aytgancha, agar siz chet el kalitini o'chirmoqchi bo'lsangiz, protsedura indeksni o'chirish bilan bir xil bo'ladi:

ALTER TABLE table_name DOP FOREIGN KEY xorijiy_kalit_nomi;

Jadvalning MySQL tashqi kaliti nomini bilish uchun allaqachon tanish bo'lgan MySQL konsol buyrug'idan foydalaning. JADVAL TUZISHNI KO'RSATISH.

MySQL jadval ma'lumotlari bilan buyruq satri orqali ishlash

CRUD jadvallari uchun biz MySQL konsolidagi operatsiyalarni ko'rib chiqdik. To'liq rasm uchun ushbu cheat varaqda faqat ma'lumotlar bazasi jadvallarida saqlangan ma'lumotlar bilan ishlash uchun buyruqlar mavjud emas. O'ylaymanki, ko'p odamlar bu buyruqlarni bilishadi va ularni amalda qo'llashdi, lekin men ularni yana bir bor eslatib o'taman.

MySQL jadval ma'lumotlari bilan ishlash uchun CRUD operatsiyalari quyidagicha ko'rinadi:

INSERT INTO jadval_nomi (maydon1, maydon2, ...) VALUES (maydon_1 qiymati, maydon_2 qiymati, ...); 1-maydon, 2-maydon, ... FROM jadval_nomi; UPDATE jadval_nomi SET maydoni1 = maydon_1 qiymati, maydon2 = maydon_2 qiymati; DELETE FROM table_name WHERE maydon1 = maydon_1 qiymati;

Yuqoridagi buyruqlar MySQL ma'lumotlar bazasi jadvallaridan ma'lumotlarni yaratish, o'qish, yangilash va o'chirish operatsiyalariga mos keladi. SELECT va UPDATE-dan foydalanganda, shuningdek, DELETE-dan foydalanganda tasvirlangan tarzda ma'lumotlarni tanlashni belgilash uchun ishlatilishi mumkin bo'lgan WHERE bandidan foydalanish mumkin.

Shuningdek, SELECT yordamida ma'lumotlar bazasidan ma'lumotlarni olishda barcha jadval maydonlarining qiymatlarini olish uchun quyidagi parametrdan foydalanishingiz mumkin:

SELECT * FROM table_name;

Tabiiyki, bu operatsiyalar WHERE dan tashqari boshqa operatorlardan ham foydalanishi mumkin. SELECT yordamida ma'lumotlarni olishda ularning ko'pi bor: bu erda bir nechta so'rovlar natijalarini birlashtirish uchun UNION mavjud va Har xil turlar QO'SHILING. Hammasini sanab o'tish juda uzoq va buni o'qish men uchun ham, siz uchun ham zerikarli bo'ladi.

Shuning uchun, keling, rozi bo'laylik: agar biror narsa haqida ko'proq bilmoqchi bo'lsangiz, bu haqda sharhlarda yozing, men sizga javob berishga harakat qilaman. Yoki jamiyatimizning boshqa bilimdon a'zolari buni qilishadi. Kelishdikmi? 😉

Shuning uchun biz hozircha bu blok haqida to'xtalmaymiz.

Jadvaldagi barcha ma'lumotlarni o'chirish kerak bo'lsa, quyidagi MySQL buyrug'idan foydalanishingiz mumkin:

TRUNCATE jadval_nomi;

Uni chaqirishdan oldin, yuqorida aytib o'tilganidek, kerakli harakatni bajarishga to'sqinlik qiladigan tegishli MySQL jadvallari mavjud bo'lsa, tashqi kalitlarni tekshirishni o'chirib qo'yishingiz kerak bo'lishi mumkin.

Bu erda e'tiborga olish kerak bo'lgan yana bir qiziq jihat shundaki, bu buyruq AUTO_INCREMENT hisoblagichini qayta o'rnatmaydi. avtomatik ishlab chiqarish maydon qiymatlarini qo'lda o'rnatmasdan.

Maydonlar bu turdagi ko'pincha turli jadvallardagi ma'lumotlar o'rtasidagi munosabatlarni o'rnatish uchun ishlatiladigan asosiy kalit maydon identifikatori uchun qiymatlarni yaratish uchun ishlatiladi.

Ya'ni, agar jadval ma'lumotlarini o'chirishdan oldin TURNCATE maksimal hisoblagich qiymati 1200 edi, keyin ushbu protseduradan keyingi birinchi yozuv 1201 identifikator qiymatiga ega bo'ladi. Aslida, bu yaxshi. Agar siz uchun etarli hajmni belgilagan bo'lsangiz bu sohadan, keyin siz yaqin orada to'lib-toshgan qiymatlar xavfi ostida qolmaysiz.

Biroq, ba'zi hollarda, dastur kodi maydon qiymatiga qandaydir bog'lanishga ega bo'lsa, bu xatti-harakatlar noqulaylik tug'dirishi mumkin.

Bunga yo'l qo'ymaslik uchun yuqoridagi buyruq o'rniga ushbu parametrdan foydalaning:

TRUNCATE TABLE someTable IDENTITY ni qayta ishga tushirish;

Bu variant qo'ng'iroq qilish buyrug'i TURNCATE dan maydon hisoblagich qiymatini tiklash imkonini beradi AUTO_INCREMENT. Shuning uchun, keyin birinchi qo'shilgan yozuvning maydon qiymati ushbu o'chirish yuqoridagi misoldagi kabi 1201 o'rniga 1 bo'ladi.

MySQL ma'lumotlar bazasini buyruq qatori orqali qanday o'chirish mumkin

Ma'lumotlar bazasi bilan ishlashning hayot aylanishi tugaydi va mantiqiy ravishda tugaydi - uni o'chirish. Qilish uchun bu operatsiya MySQL konsolida siz quyidagi buyruqni bajarishingiz kerak (bu holda o'chiriladigan ma'lumotlar bazasi buyruq bilan tanlanmasligi mumkin. FOYDALANISH):

DATABASE ma'lumotlar bazasi_nomini o'chirish;

Xuddi shu harakatni MySQL mysqladmin yordam dasturi yordamida amalga oshirish mumkin, men allaqachon ma'lumotlar bazasini yaratishda maqolaning boshida aytib o'tganman:

Mysqladmin ma'lumotlar bazasi_nomini oching;

Buyruqni chaqirganingizda, server konsolida quyidagi xabar paydo bo'ladi:

Ma'lumotlar bazasini tashlab yuborish juda yomon ishdir.
Ma'lumotlar bazasida saqlangan har qanday ma'lumotlar yo'q qilinadi.

Haqiqatan ham "ma'lumotlar bazasi_nomi" ma'lumotlar bazasini tashlamoqchimisiz

Qisqasi, bu MySQL ma'lumotlar bazasini o'chirish juda yomon fikr ekanligi haqida ogohlantirishdir. Shuningdek, harakatni tasdiqlash so'raladi. Agar rozi bo'lsangiz, yozing y va bosing Kirish klaviaturada, shundan so'ng ekranda quyidagi xabar paydo bo'ladi (agar hamma narsa yaxshi bo'lsa, albatta):

"ma'lumotlar bazasi_nomi" ma'lumotlar bazasi o'chirildi

Bo'ldi shu :)

Konsolda MySQL foydalanuvchisini qanday o'chirish mumkin

Endi biz yaratgan MySQL foydalanuvchisi ham xuddi shunday taqdirga duch keladi. Lekin birinchi navbatda, kerakli foydalanuvchini o'chirishdan oldin uning mavjudligini tekshirish yaxshi bo'lardi.

MySQL 5.7 dan boshlab ushbu ikkala amal uchun bitta buyruq mavjud:

AGAR FOYDALANUVCHI BO'LSA TO'CHIRISH foydalanuvchi nomi;

Ko'proq oldingi versiyalar MySQL ikkita alohida buyruqni talab qiladi:

"user_name"@"host_yoki_IP_address" GA *.* FOYDALANISHGA BERING; TO'CHIRISH USER "user_name"@"host_or_IP_address";

Afsuski, bu holda MySQL konsolida operatsiya bajarilishi haqidagi xabar an'anaviy tarzda ma'lumotga ega emas 🙁 Shuning uchun MySQL foydalanuvchisi o'chirilganligini bilish uchun barcha foydalanuvchilar ro'yxatini ko'rsatadigan quyidagi buyruqdan foydalanishingiz mumkin. joriy MySQL serverida mavjud:

mysql.user dan foydalanuvchini tanlang;

Ushbu buyruq opsiyasi faqat foydalanuvchi nomlarini ko'rsatadi. Agar siz foydalanuvchilar serverga ulanishi mumkin bo'lgan xostlarni va imtiyozlar ro'yxatini ko'rishingiz kerak bo'lsa, buyruqni quyidagi shaklda chaqirishingiz mumkin:

mysql.user dan foydalanuvchi, xost, Grant_priv ni tanlang;

Bundan tashqari, mysql.user jadvalida boshqa turdagi imtiyozlar va boshqa ma'lumotlarni saqlaydigan ko'plab boshqa maydonlar mavjud. to'liq ro'yxat bu yerda topishingiz mumkin - https://mariadb.com/kb/en/library/mysqluser-table/

Bu MariaDB DBMS uchun hujjat ekanligi bilan adashmang. Texnik jihatdan bu MySQL bilan bir xil, chunki... MariaDB shunchaki uning filiali yoki inglizcha "vilka" dan vilka - filial, vilka.

Nega bunday bo'ldi - yana, menda hech qanday tasavvur yo'q 🙂 Balki g'urur bilan hammaga "mening shaxsiy ma'lumotlar bazam bor" deb e'lon qilish kerakmi?.. Lekin, rostini aytsam, MySQL va MySQL o'rtasidagi aniq motivlar va farqlarni unchalik bilmayman. MariaDB. Shuning uchun, agar siz bu haqda biror narsa bilsangiz, bu haqda sharhlarda o'qish qiziqarli bo'ladi.

MySQL konsolidan chiqish

Hammasi shu, ma'lumotlar bazasi va foydalanuvchining yaratilishidan boshlangan va o'chirilishi bilan yakunlangan hayotiy tsikli nihoyasiga yetdi. Shuning uchun, yordam dasturidan foydalanib, biz server konsolida ishlagan MySQL buyruq qatori mysql, bizga endi kerak emas.

Faqat undan chiqib ketish qolgan...

Bu harakat ahamiyatsiz bo'lib tuyuladi, lekin ko'pchilik MySQL buyruq satridan chiqishlari kerak bo'lgan vaziyatda shunchaki server konsolini yoping va uni qayta oching. Siz, albatta, shunday harakat qilishingiz mumkin, lekin bu ish vaqtining qo'shimcha soniyalarini oladi va har safar buni qilish kerak bo'lganda sizni bezovta qiladi.

Bunday vaziyatda to'g'ri xatti-harakatlar faqat buyruqni chaqirishdir Chiqish MySQL buyruq satrida, shundan so'ng xizmat biz bilan xushmuomalalik bilan xayrlashadi :)

Va bu hammasi 🙂 Shunday qilib, keyingi safar bir nechta konsol yaratish va ularni har safar konsolda MySQL-dan chiqish va serverni boshqarish uchun unga qayta kirish kerak bo'lganda qayta ochish shart emas.

Bugun sizga aytmoqchi bo'lgan narsam shu edi. Umid qilamanki, konsol orqali MySQL buyruq qatori bilan ishlash uchun mening cheat varaqim nafaqat men uchun, balki siz uchun ham foydali bo'ladi.

Maqolada keltirilgan ma'lumotlarning amaliy qo'llanilishi haqida gapirganda, yuqoridagi konstruktsiyalardan nafaqat MySQL buyruq qatori va server konsolida, balki phpMyAdmin konsolida va boshqa dasturlarni ta'minlaydigan boshqa dasturlarda ham foydalanish mumkinligini eslatib o'tmoqchiman. bunday imkoniyat.

Siz undan foydalanasizmi yoki yo'qmi - bu sizning biznesingiz. Ammo, maqolaning boshida aytganimdek, MySQL konsolidan foydalanishda vaqt va stressni tejash mumkin bo'lgan holatlar mavjud. Buyruqlar qatoridan har kuni foydalanish kerakmi yoki yo'qmi - bu faqat ta'mga va shaxsiy imtiyozlarga bog'liq.

Qaysi buyruqlarni tez-tez ishlatayotganingizni izohlarda yozing. Yoki siz boshqa fokuslarni bilasiz. Qanday bo'lmasin, o'z fikringizni boshqalar bilan baham ko'ring va suhbatni boshqa foydalanuvchilarning sharhlarida davom eting.

Va'da beramanki, bu jarayonda siz ko'plab yangi narsalarni o'rganasiz, xuddi mening har bir maqolamni yozishda bo'lgani kabi :)

Ana xolos! Omad tilaymiz va yana ko'rishguncha :)

P.S.: Agar sizga veb-sayt kerak bo'lsa yoki mavjud veb-saytga o'zgartirishlar kiritishingiz kerak bo'lsa, lekin bunga vaqt yoki xohish bo'lmasa, men o'z xizmatlarimni taklif qila olaman.

5 yildan ortiq tajriba professional veb-saytlarni ishlab chiqish. Bilan ishlash PHP, OpenCart, WordPress, Laravel, Yii, MySQL, PostgreSQL, JavaScript, Reaksiya qilish, Burchakli va boshqa veb-ishlab chiqish texnologiyalari.



 


O'qing:



Texnik fikrlash uchun mini test

Texnik fikrlash uchun mini test

Ixtisoslashtirilgan ta'lim sharoitida o'smirlarning umumiy qobiliyatlarini kompleks diagnostika qilish III QISM 3. Kognitiv soha diagnostikasi 3.3. Sinov...

Kvartira, uy va boshqa ko'chmas mulkni sotish to'g'risida e'lonni bepul yuborish Uyni tez sotish to'g'risida e'lon yuborish

Kvartira, uy va boshqa ko'chmas mulkni sotish to'g'risida e'lonni bepul yuborish Uyni tez sotish to'g'risida e'lon yuborish

Uyni sotish - bu bir qator nuanslarni hisobga olishni talab qiladigan murakkab jarayon. Jarayonni tezlashtirish uchun mutaxassislar mutaxassislarga murojaat qilishni maslahat berishadi. Biroq...

Maktublarni o'qish orqali pul ishlash Xatlarni o'qish, lekin mukofot

Maktublarni o'qish orqali pul ishlash Xatlarni o'qish, lekin mukofot

Ishni boshlashingiz mumkin bo'lgan internetda pul ishlashning eng oddiy yo'li - reklama beruvchilar tomonidan sizga yuborilgan reklama xatlarini o'qib pul ishlash...

Mavzu bo'yicha material: "Chun qalbim bilan" kontsert dasturi barcha epizodlari bilan butun qalbim bilan teleko'rsatuv

Mavzu bo'yicha material: Konsert dasturi

Umuman olganda, dastur sovet xalqining oldindan aytib bo'lmaydigan va murakkab taqdirlari haqida gapirib berdi. Aksariyat tomoshabinlar ko'z yoshlarini tiya olmadilar...

tasma tasviri RSS