Allgemeine Befehle für MySQL-Autorisierung, Start und Dienststart

Allgemeine Befehle für MySQL-Autorisierung, Start und Dienststart

1. Vier Startmethoden:

1.mysqld

Starten Sie den MySQL-Server: ./mysqld --defaults-file=/etc/my.cnf --user=root
Client-Verbindung: mysql --defaults-file=/etc/my.cnf oder mysql -S /tmp/mysql.sock

2.mysqld_safe

Starten Sie den MySQL-Server: ./mysqld_safe --defaults-file=/etc/my.cnf --user=root &
Client-Verbindung: mysql --defaults-file=/etc/my.cnf oder mysql -S /tm/mysql.sock

3.mysql.server

cp -v /usr/local/mysql/support-files/mysql.server /etc/init.d/
chkconfig --add mysql.server
Starten Sie den MySQL-Server: service mysql.server {start|stop|restart|reload|force-reload|status}
Client-Verbindung: Wie 1 und 2

4.mysqld_multi

mkdir $MYSQL_BASE/data2
Katze <<-EOF>> /etc/my.cnf
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /Benutzer/lokal/mysql/bin/mysqladmin
Benutzer = mysqladmin
Passwort = mysqladmin

[mysqld3306]
Port = 3306
Socket = /tmp/mysql3306.sock
pid-Datei = /tmp/mysql3306.pid
externe Verriegelung überspringen
Schlüsselpuffergröße = 16 M
max_zulässiges_Paket = 1M
table_open_cache = 64
Sortierpuffergröße = 512 KB
Nettopufferlänge = 8 KB
Lesepuffergröße = 256 KB
Read_Rnd_Buffer_Größe = 512 KB
myisam_sort_buffer_size = 8M
basedir = /usr/local/mysql
Datenverzeichnis = /usr/local/mysql/data

[mysqld3307]
Port = 3307
Socket = /tmp/mysql3307.sock
pid-Datei = /tmp/mysql3307.pid
externe Verriegelung überspringen
Schlüsselpuffergröße = 16 M
max_zulässiges_Paket = 1M
table_open_cache = 64
Sortierpuffergröße = 512 KB
Nettopufferlänge = 8 KB
Lesepuffergröße = 256 KB
Read_Rnd_Buffer_Größe = 512 KB
myisam_sort_buffer_size = 8M
basedir = /usr/local/mysql
Datenverzeichnis = /usr/local/mysql/data2
Ende der Laufzeit

#mysql -S /tmp/mysql3306.sock
mysql>GRANT SHUTDOWN ON *.* TO 'mysqladmin'@'localhost', identifiziert durch 'mysqladmin' mit Grant-Option;

#mysql -S /tmp/mysql3307.sock
mysql>GRANT SHUTDOWN ON *.* TO 'mysqladmin'@'localhost', identifiziert durch 'mysqladmin' mit Grant-Option;

Starten Sie den MySQL-Server: ./mysqld_multi --defaults-file=/etc/my.cnf start 3306-3307
Den MySQL-Server herunterfahren: mysqladmin shutdown

2. Starten und stoppen Sie den MySQL-Dienst

1. Unter Windows:

Start: mysqld --console oder net start mysql
Herunterfahren: mysqladmin -u root shutdown oder net stop mysql

Unter Linux:

Start: Dienst MySQL Start
Stopp: Dienst MySQL stoppen
Starten Sie den Dienst neu: service mysql restart

3. Erstellen Sie einen Benutzer, um Berechtigungen zuzuweisen

1. Erstellen Sie einen neuen Benutzer: Erstellen Sie einen Benutzer mit dem Namen: buff, mit dem Passwort: buff

//Der Root-Benutzer meldet sich bei MySQL an
mysql -uroot -p
Passwort eingeben:
//Neuen Benutzer erstellenmysql>insert into mysql.user(Host,User,Password) values("localhost","buff",password("buff"));
// Aktualisieren Sie die Tabelle mit den Systemberechtigungen mysql>flush privileges;

Anmeldetest

mysql>Beenden
// Benutzer buff meldet sich bei MySQL an
mysql -ubuff -p
Passwort eingeben:
MySQL>
// Zeigt an, dass sich der neu erstellte Benutzer Buff erfolgreich angemeldet hat

Benutzerautorisierung

//Der Root-Benutzer meldet sich bei MySQL an
mysql -uroot -p
Passwort eingeben:
//Erstellen Sie eine Datenbank bluebuff für den Benutzer buff
mysql>Datenbank Bluebuff erstellen;
// Autorisieren Sie den Benutzer „buff“, alle Berechtigungen für die Datenbank „bluebuff mysql“ zu haben. Gewähren Sie alle Berechtigungen für „bluebuff.*“ an „buff@localhost“, identifiziert durch „buff“.
mysql>Berechtigungen leeren;

Anmeldetest

// Benutzer buff meldet sich bei der Datenbank an mysql -ubuff -p
Geben Sie die Berechtigungen ein:
// Datenbanken anzeigenmysql>show databases;

Das Ergebnis ist in der folgenden Abbildung dargestellt und zeigt an, dass die Autorisierung für den Benutzer-Buff erfolgreich war

5. Ändern Sie das Passwort des Benutzers Buff

//Der Root-Benutzer meldet sich bei MySQL an
mysql -uroot -p
Passwort eingeben:
//Ändern Sie das Passwort des Benutzers buffmysql>Update-Tabelle mysql.user setze Passwort=Passwort('buffer'), wobei User='buff' und Host='localhost';
mysql>Berechtigungen leeren;

6. Löschen eines Benutzers

//Der Root-Benutzer meldet sich bei MySQL an
mysql -uroot -p
Passwort eingeben:
// Benutzer-Buff löschen
mysql>löschen aus mysql.user, wobei Benutzer = ,buff‘ und Host = ,localhost‘;
mysql>Berechtigungen leeren;

7. Löschen Sie die Datenbank

mysql>Datenbank Bluebuff löschen;

4. Zeigen Sie die vom Benutzer erteilten Berechtigungen an

In MySQL können die Benutzern gewährten Berechtigungen in Berechtigungen auf globaler Ebene, Berechtigungen auf Datenbankebene, Berechtigungen auf Tabellenebene, Berechtigungen auf Spaltenebene und Berechtigungen auf Unterprogrammebene unterteilt werden.

1. Globale Ebene:

Globale Berechtigungen gelten für alle Datenbanken auf einem bestimmten Server. Diese Berechtigungen werden in der Tabelle mysql.user gespeichert. GRANT ALL ON *.* und REVOKE ALL ON *.* erteilen und widerrufen nur globale Privilegien.

Beispiel: a. Erstellen Sie ein Testkonto „test“ und erteilen Sie globale Berechtigungen mysql> grant select,insert on *.* to test@'%' identified by 'test';
mysql> Berechtigungen leeren;

b. Abfrage der für den Test erteilten Berechtigungen: Berechtigungen für den Test anzeigen;
Wählen Sie * aus mysql.user, wobei Benutzer = "Test" \G;

2. Datenbankebene:

Datenbankberechtigungen gelten für alle Objekte in einer bestimmten Datenbank. Diese Berechtigungen werden in den Tabellen mysql.db und mysql.host gespeichert. GRANT ALL ON db_name.* und REVOKE ALL ON db_name.* erteilen und entziehen nur Datenbankberechtigungen. Beispiel: a. Erstellen Sie ein Testkonto „test“ und erteilen Sie Berechtigungen auf Datenbankebene „drop user test“.
Gewähren Sie die Berechtigung „Select“, „Insert“, „Update“ und „Delete“ für MyDB.* an test@'%', identifiziert durch „test“.

b. Fragen Sie die für den Test erteilten Berechtigungen ab: select * from mysql.user where user='test'\G; --Sie können sehen, dass keine Autorisierung vorliegt: select * from mysql.db where user='test'\G;
Zuschüsse zum Test anzeigen;

3. Tabellenebene:

Tabellenberechtigungen gelten für alle Spalten einer bestimmten Tabelle. Diese Berechtigungen werden in der Tabelle mysql.tables_priv gespeichert. Mit den Befehlen GRANT ALL ON db_name.tbl_name und REVOKE ALL ON db_name.tbl_name können nur Tabellenberechtigungen gewährt und widerrufen werden.

Beispiel: a. Erstellen Sie ein Testkonto „test“ und erteilen Sie die Berechtigung „Drop User test“ auf Tabellenebene.
Berechtigungen leeren;
gewähre alles auf MyDB.kkk an test@'%', identifiziert durch 'test';

b. Abfrage der für den Test erteilten Berechtigungen: Berechtigungen für den Test anzeigen;
 Wählen Sie * aus mysql.tables_priv\G;

4. Spaltenebene:

Spaltenberechtigungen gelten für eine einzelne Spalte in einer bestimmten Tabelle. Diese Berechtigungen werden in der Tabelle mysql.columns_priv gespeichert. Wenn Sie REVOKE verwenden, müssen Sie dieselben Spalten angeben, die gewährt werden sollen.

Beispiel: a. Erstellen Sie ein Testkonto „test“ und erteilen Sie die Berechtigung „Drop User test“ auf Spaltenebene.
Berechtigungen leeren;
Gewähren Sie „Select (id, col1)“ auf MyDB.TEST1 für test@'%', identifiziert durch „test“;
Berechtigungen leeren;

b. Fragen Sie die zum Testen erteilten Berechtigungen ab: select * from mysql.columns_priv;
Zuschüsse zum Test anzeigen;

5. Unterprogrammebene:

Die Berechtigungen CREATE ROUTINE, ALTER ROUTINE, EXECUTE und GRANT gelten für gespeicherte Routinen. Diese Berechtigungen können auf globaler Ebene oder auf Datenbankebene gewährt werden. Außerdem können diese Berechtigungen, mit Ausnahme von CREATE ROUTINE, auf Unterprogrammebene gewährt werden und werden in der Tabelle mysql.procs_priv gespeichert.

Beispiel: a. Erstellen Sie ein Testkonto „test“ und erteilen Sie Berechtigungen auf Unterprogrammebene DROP PROCEDURE IF EXISTS PRC_TEST;
TRENNUNGSZEICHEN //
PROZEDUR ERSTELLEN PRC_TEST()
-> BEGIN
-> AUSWÄHLEN * VON kkk;
-> ENDE // 
TRENNUNGSZEICHEN ;
Gewähren Sie die Ausführung von MyDB.PRC_TEST für test@'%', identifiziert durch 'test'.

Berechtigungen leeren;

b. Abfrage der für den Test erteilten Berechtigungen: Berechtigungen für den Test anzeigen;
Wählen Sie * aus mysql.procs_priv, wobei Benutzer = "Test" ist.

Zusammenfassen:

1. Wenn Sie die einem Benutzer erteilten Berechtigungen anzeigen müssen, müssen Sie die auf diesen fünf Ebenen erteilten Berechtigungen anzeigen. Überprüfen Sie von oben nach unten oder von klein nach hoch nacheinander die den einzelnen Ebenen erteilten Berechtigungen.

2. Gewähren Sie die Berechtigung zum Erstellen einer Routine, Ändern einer Routine, Auswählen, Erstellen, Einfügen, Aktualisieren, Löschen, Ausführen auf ….

3. Wenn der Client keine Verbindung zum Server herstellen kann, überprüfen Sie, ob das Hostelement in der Benutzertabelle „%“ ist und autorisiert wurde.

Das könnte Sie auch interessieren:
  • Lösung für den MySQL-Dienst, der nicht startet
  • Zusammenfassung einiger häufiger Probleme, wenn MySQL nicht gestartet werden kann
  • Zusammenfassung der Lösungen für das Problem, dass MySQL 5 nach der Installation nicht gestartet werden kann (Dienst kann nicht gestartet werden)
  • Schnelle Lösung für den Startfehler des MySQL-Dienstes unter CentOS 7
  • Lösung für den MySQL-Startfehler 1053
  • Windows kann den MySQL-Dienst nicht starten und meldet Fehler 1067 – Lösung
  • So lösen Sie das Problem, dass MySQL mit Fehler 1067 nicht startet
  • Ein praktischer Bericht über einen durch den MySQL-Start verursachten Unfall

<<:  Ansible - Bereitstellungsmethode für automatisierten Betrieb und Wartung für Linux-Systeme

>>:  Detaillierte Erläuterung der Nginx-Weiterleitungssocket-Portkonfiguration

Artikel empfehlen

Detaillierte Analyse des Diff-Algorithmus in React

Verständnis des Diff-Algorithmus in React diff -A...

Details zum Überschreiben von Prototypmethoden in JavaScript-Instanzobjekten

Inhaltsverzeichnis In JavaScript können wir norma...

Django2.* + Mysql5.7-Entwicklungsumgebung Integrations-Tutorial-Diagramm

Umfeld: MAC_OS 10.12 Python 3.6 MySQL 5.7.25 Djan...

XHTML-Erste-Schritte-Tutorial: XHTML-Hyperlinks

Es ist keine Übertreibung, zu sagen, dass Hyperlin...

4 Lösungen für CSS-Browserkompatibilitätsprobleme

Frontend ist ein harter Job, nicht nur weil sich ...

Installations- und Konfigurationstutorial von MongoDB unter Linux

MongoDB -Installation Wählen Sie die Installation...

Vue implementiert Modal-Komponente basierend auf Teleport

Inhaltsverzeichnis 1. Lernen Sie Teleport kennen ...

Vue implementiert eine Zeit-Countdown-Funktion

In diesem Artikelbeispiel wird der spezifische Co...

Vue ruft die PC-Kamera auf, um die Fotofunktion zu realisieren

In diesem Artikelbeispiel wird der spezifische Co...

Vue implementiert den Anruf der PC-Kamera, um Fotos in Echtzeit aufzunehmen

Vue ruft die PC-Kamera auf, um Bilder in Echtzeit...

Erläuterung des HTML-Tabellenlayouts als Beispiel

Die Elemente in einem HTML-Dokument werden hinter...