Android

Paano pamahalaan ang mga database ng mysql at mga gumagamit mula sa linya ng utos

Command Line Basics 13: Using MySQL from Command Line

Command Line Basics 13: Using MySQL from Command Line

Talaan ng mga Nilalaman:

Anonim

Ang MySQL ay ang pinaka-tanyag na open-source relational database management system. Pinapayagan kami ng MySQL server na lumikha ng maraming mga gumagamit at database at magbigay ng nararapat na pribilehiyo upang ang mga gumagamit ay ma-access at pamahalaan ang mga database.

Ipinapaliwanag ng tutorial na ito kung paano gamitin ang command line upang lumikha at pamahalaan ang mga database ng MySQL o MariaDB at mga gumagamit.

Bago ka magsimula

Bago ka magsimula sa tutorial na ito, ipinapalagay namin na mayroon ka nang MySQL o MariaDB server na naka-install sa iyong system. Ang lahat ng mga utos ay naisakatuparan bilang isang gumagamit ng ugat.

Upang buksan ang prompt ng MySQL, i-type ang sumusunod na utos at ipasok ang password ng MySQL root user kapag sinenyasan:

mysql -u root -p

Lumikha ng isang bagong database ng MySQL

Upang lumikha ng isang bagong database ng MySQL patakbuhin ang sumusunod na utos, palitan lamang ang database_name ng pangalan ng database na nais mong likhain:

CREATE DATABASE database_name;

Query OK, 1 row affected (0.00 sec)

ERROR 1007 (HY000): Can't create database 'database_name'; database exists

Upang maiwasan ang mga pagkakamali kung ang database na may parehong pangalan habang sinusubukan mong lumikha ay magagamit mo ang sumusunod na utos:

CREATE DATABASE IF NOT EXISTS database_name;

Query OK, 1 row affected, 1 warning (0.00 sec)

Sa output sa itaas, ang Query OK nangangahulugan na ang query ay matagumpay, at ang 1 warning nagsasabi sa amin na mayroon nang database at walang bagong database na nilikha.

Ilista ang lahat ng mga database ng MySQL

Maaari mong ilista ang lahat ng mga database na umiiral sa aming MySQL o MariaDB server na may sumusunod na utos:

SHOW DATABASES;

Ang output ay magiging hitsura ng isang bagay tulad nito:

+--------------------+ | Database | +--------------------+ | information_schema | | database_name | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.00 sec)

Ang information_schema , mysql , performance_schema , at mga database ng sys ay nilikha sa oras ng pag-install at iniimbak nila ang impormasyon tungkol sa lahat ng iba pang mga database, pagsasaayos ng system, mga gumagamit, pahintulot at iba pang mahalagang data. Ang mga database ay kinakailangan para sa tamang pag-andar ng MySQL install.

Tanggalin ang isang database ng MySQL

Ang pagtanggal ng isang database ng MySQL ay kasing simple ng pagpapatakbo ng isang solong utos. Ito ay isang hindi mababalik na pagkilos at dapat na maisakatuparan nang may pag-iingat. Tiyaking hindi ka nag-aalis ng isang maling database, dahil kapag tinanggal mo ang database ay hindi ito mababawi.

Upang matanggal ang isang MySQL o MariaDB, tatakbo ang database ng sumusunod na utos:

DROP DATABASE database_name;

Query OK, 0 rows affected (0.00 sec)

ERROR 1008 (HY000): Can't drop database 'database_name'; database doesn't exist

Upang maiwasan ang error na ito maaari mong gamitin ang sumusunod na utos:

DROP DATABASE IF EXISTS database_name;

Lumikha ng isang bagong account sa gumagamit ng MySQL

Ang isang account sa gumagamit sa MySQL ay binubuo ng isang bahagi ng pangalan ng gumagamit at host name.

Upang lumikha ng isang bagong account sa gumagamit ng MySQL patakbuhin ang sumusunod na utos, palitan lamang ang 'database_user' sa pangalan ng gumagamit na nais mong likhain:

CREATE USER 'database_user'@'localhost' IDENTIFIED BY 'user_password';

Sa utos sa itaas ay itinakda namin ang bahagi ng hostname sa localhost na nangangahulugan na ang gumagamit na ito ay makakonekta sa MySQL server lamang mula sa localhost (ie mula sa system kung saan tumatakbo ang MySQL Server). Kung nais mong magbigay ng pag-access mula sa isa pang host (s) baguhin lamang ang localhost ang remote machine IP o gumamit ng wild '%' para sa host, na nangangahulugang ang user account ay makakonekta mula sa anumang host.

Katulad ng kapag nagtatrabaho sa mga database upang maiwasan ang isang error kapag sinusubukan mong lumikha ng isang account sa gumagamit na umiiral na maaari mong gamitin:

CREATE USER IF NOT EXISTS 'database_user'@'localhost' IDENTIFIED BY 'user_password';

Query OK, 0 rows affected, 1 warning (0.00 sec)

Baguhin ang isang password sa account ng gumagamit ng MySQL

Ang syntax para sa pagbabago ng isang MySQL o MariaDB user account password ay nakasalalay sa bersyon ng server na iyong pinapatakbo sa iyong system.

Maaari mong mahanap ang iyong bersyon ng server sa pamamagitan ng paglabas ng sumusunod na utos:

mysql --version

ALTER USER 'database_user'@'localhost' IDENTIFIED BY 'new_password';

SET PASSWORD FOR 'database_user'@'localhost' = PASSWORD('new_password');

Sa parehong mga kaso, ang output ay dapat magmukhang ganito:

Query OK, 0 rows affected (0.00 sec)

Ilista ang lahat ng mga account sa gumagamit ng MySQL

Maaari mong ilista ang lahat ng MySQL o MariaDB user account sa pamamagitan ng pag-query sa mesa mysql.users :

SELECT user, host FROM mysql.user;

Ang output ay dapat magmukhang katulad sa ibaba:

+------------------+-----------+ | user | host | +------------------+-----------+ | database_user | % | | database_user | localhost | | debian-sys-maint | localhost | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | +------------------+-----------+ 6 rows in set (0.00 sec)

Tanggalin ang account sa gumagamit ng MySQL

Upang tanggalin ang isang account sa gumagamit, gamitin ang sumusunod na utos:

DROP USER 'database_user@'localhost';

ERROR 1396 (HY000): Operation DROP USER failed for 'database_user'@'localhost'

Parehong tulad ng kapag nagtatrabaho sa mga database upang maiwasan ang error na maaari mong gamitin:

DROP USER IF EXISTS 'database_user'@'localhost';

Query OK, 0 rows affected, 1 warning (0.00 sec)

Nagbigay ng pahintulot sa isang account sa gumagamit ng MySQL

Mayroong maraming mga uri ng mga pribilehiyo na maaaring ibigay sa isang account sa gumagamit. Maaari kang makahanap ng isang buong listahan ng mga pribilehiyo na suportado ng MySQL dito. Sa gabay na ito ay madadaan kami ng maraming mga halimbawa:

Upang lola ang lahat ng mga pribilehiyo sa isang account sa gumagamit sa isang tukoy na database, gamitin ang sumusunod na utos:

GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

Upang lola ang lahat ng mga pribilehiyo sa isang account sa gumagamit sa lahat ng mga database, gamitin ang sumusunod na utos:

GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost';

Upang mararangal ang lahat ng mga pribilehiyo sa isang account sa gumagamit sa isang tukoy na talahanayan mula sa isang database, gamitin ang sumusunod na utos:

GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';

GRANT SELECT, INSERT, DELETE ON database_name.* TO database_user@'localhost';

Pawiin ang mga pahintulot mula sa isang account sa gumagamit ng MySQL

REVOKE ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

Ipakita ang mga pribilehiyo sa account ng gumagamit ng MySQL

Upang mahanap ang pribilehiyo (s) na ibinigay sa isang tukoy na uri ng account ng gumagamit ng MySQL:

SHOW GRANTS FOR 'database_user'@'localhost';

+---------------------------------------------------------------------------+ | Grants for database_user@localhost | +---------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'database_user'@'localhost' | | GRANT ALL PRIVILEGES ON `database_name`.* TO 'database_user'@'localhost' | +---------------------------------------------------------------------------+ 2 rows in set (0.00 sec)

Konklusyon

Ang tutorial na ito ay sumasaklaw lamang sa mga pangunahing kaalaman, ngunit dapat itong maging isang mahusay na pagsisimula para sa sinumang nais malaman kung paano pamahalaan ang mga database ng MySQL at mga gumagamit mula sa linya ng utos. Maaari mo ring suriin ang tutorial tungkol sa kung paano i-reset ang isang password ng MySQL root kung nakalimutan mo ito.

Iyon lang! Kung mayroon kang anumang mga katanungan o puna, huwag mag-iwan ng komento.

mysql mariadb