Richten Sie mit OpenVPN Ihr eigenes privates Netzwerk ein
Vultr bietet Ihnen eine hervorragende Konnektivität für private Netzwerke für Server, die am selben Standort ausgeführt werden. Aber manchmal möchten Sie zwei Server in verschiedenen Ländern
MySQL hat eine großartige Funktion, die als "Ansichten" bekannt ist. Ansichten sind gespeicherte Abfragen. Stellen Sie sich diese als Alias für eine ansonsten lange Abfrage vor. In diesem Handbuch werde ich Ihnen zeigen, wie Sie mithilfe von Ansichten Daten effizienter organisieren können.
Die Installation von MySQL unter Debian 7.x ist sehr einfach. Zunächst müssen wir sicherstellen, dass unsere Quellen aktualisiert werden, indem wir Folgendes ausführen:
sudo apt-get update
Als nächstes können wir den MySQL-Server installieren:
sudo apt-get install -y mysql-server
Ein Dialogfeld wird angezeigt, in dem Sie aufgefordert werden, ein Kennwort für den Benutzer "root" zu erstellen. Stellen Sie sicher, dass Sie sich an dieses Passwort erinnern.
Lassen Sie uns die Sicherheit unserer Installation durch Ausführen von:
sudo mysql_secure_installation
Nach der Ausführung wird eine Reihe von Eingabeaufforderungen angezeigt. Jede der Antworten, die Sie auswählen sollten, wird unten angezeigt.
...
Enter current password for root (enter for none):
OK, successfully used password, moving on...
...
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
...
Remove anonymous users? [Y/n] y
... Success!
...
Disallow root login remotely? [Y/n] y
... Success!
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
...
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
Zu diesem Zeitpunkt haben wir keine Daten auf dem Server, mit denen wir experimentieren können. Für dieses Tutorial verwenden wir die Mitarbeiterdatenbank, da diese einfach zu bearbeiten und auf der MySQL-Website frei verfügbar ist.
sudo wget https://launchpad.net/test-db/employees-db-1/1.0.6/+download/employees_db-full-1.0.6.tar.bz2
Wir müssen installieren, bzip2
damit wir die Datei extrahieren können.
sudo apt-get install bzip2
Extrahieren Sie die Datenbank. Die Datei ist ziemlich groß, daher kann es einige Momente dauern.
sudo bzip2 -dfv employees_db-full-1.0.6.tar.bz2
sudo tar -xf employees_db-full-1.0.6.tar
Sobald die Datei extrahiert wurde, haben Sie einen Ordner mit dem Titel employees_db
. Wir müssen in dieses Verzeichnis navigieren, um die Datenbank zu installieren.
cd employees_db
ls -l
Die Ausgabe sieht folgendermaßen aus:
-rw-r--r--. 1 501 games 752 Mar 30 2009 Changelog
-rw-r--r--. 1 501 games 6460 Oct 9 2008 employees_partitioned2.sql
-rw-r--r--. 1 501 games 7624 Feb 6 2009 employees_partitioned3.sql
-rw-r--r--. 1 501 games 5660 Feb 6 2009 employees_partitioned.sql
-rw-r--r--. 1 501 games 3861 Nov 28 2008 employees.sql
-rw-r--r--. 1 501 games 241 Jul 30 2008 load_departments.dump
-rw-r--r--. 1 501 games 13828291 Mar 30 2009 load_dept_emp.dump
-rw-r--r--. 1 501 games 1043 Jul 30 2008 load_dept_manager.dump
-rw-r--r--. 1 501 games 17422825 Jul 30 2008 load_employees.dump
-rw-r--r--. 1 501 games 115848997 Jul 30 2008 load_salaries.dump
-rw-r--r--. 1 501 games 21265449 Jul 30 2008 load_titles.dump
-rw-r--r--. 1 501 games 3889 Mar 30 2009 objects.sql
-rw-r--r--. 1 501 games 2211 Jul 30 2008 README
-rw-r--r--. 1 501 games 4455 Mar 30 2009 test_employees_md5.sql
-rw-r--r--. 1 501 games 4450 Mar 30 2009 test_employees_sha.sql
Führen Sie den folgenden Befehl aus, um eine Verbindung zum MySQL-Server herzustellen, die Datenbank zu erstellen und die Daten zu importieren:
sudo mysql -h localhost -u root -p -t < employees.sql
Es wird eine Eingabeaufforderung angezeigt, in der Sie nach Ihrem Root-Passwort gefragt werden. Dies ist das Passwort, das Sie in Schritt 1 festgelegt haben.
Da die Datenbank ziemlich groß ist, wird es wahrscheinlich zwischen 1 und 3 Minuten dauern, bis die Daten vollständig importiert sind. Wenn alles richtig gemacht wurde, sehen Sie die folgende Ausgabe.
+-----------------------------+
| INFO |
+-----------------------------+
| CREATING DATABASE STRUCTURE |
+-----------------------------+
+------------------------+
| INFO |
+------------------------+
| storage engine: InnoDB |
+------------------------+
+---------------------+
| INFO |
+---------------------+
| LOADING departments |
+---------------------+
+-------------------+
| INFO |
+-------------------+
| LOADING employees |
+-------------------+
+------------------+
| INFO |
+------------------+
| LOADING dept_emp |
+------------------+
+----------------------+
| INFO |
+----------------------+
| LOADING dept_manager |
+----------------------+
+----------------+
| INFO |
+----------------+
| LOADING titles |
+----------------+
+------------------+
| INFO |
+------------------+
| LOADING salaries |
+------------------+
Jetzt können wir uns bei MySQL anmelden und die importierten Daten anzeigen.
sudo mysql -h localhost -u root -p
Geben Sie das Root- Passwort ein, das Sie im vorherigen Abschnitt festgelegt haben.
Überprüfen Sie die Liste der Datenbanken für unsere neu erstellte Mitarbeiterdatenbank .
show databases;
Die Ausgabe sieht folgendermaßen aus:
+--------------------+
| Database |
+--------------------+
| information_schema |
| employees |
| mysql |
| performance_schema |
+--------------------+
4 rows in set (0.01 sec)
Verwenden wir die Mitarbeiterdatenbank .
use employees;
Überprüfen Sie die darin enthaltenen Tabellen.
show tables;
Dies wird Folgendes ausgeben:
+---------------------+
| Tables_in_employees |
+---------------------+
| departments |
| dept_emp |
| dept_manager |
| employees |
| salaries |
| titles |
+---------------------+
6 rows in set (0.01 sec)
In diesem Schritt lernen Sie, Ansichten zu erstellen und zu verwenden. Ich habe diesen Schritt in kleinere Abschnitte unterteilt, um Daten abzugleichen und Daten für die Organisation zu kombinieren. Es ist Zeit, mit unseren Testdaten zu interagieren.
Unten habe ich eine Abfrage, in der alle Mitarbeiter angezeigt werden, deren Jahresgehalt mindestens 50.000 US-Dollar beträgt.
select * from salaries where salary >= 50000;
Ausgabe (abgeschnitten):
+--------+--------+------------+------------+
| emp_no | salary | from_date | to_date |
+--------+--------+------------+------------+
| 10001 | 60117 | 1986-06-26 | 1987-06-26 |
| 10001 | 62102 | 1987-06-26 | 1988-06-25 |
| 10001 | 66074 | 1988-06-25 | 1989-06-25 |
| 10001 | 66596 | 1989-06-25 | 1990-06-25 |
| 10001 | 66961 | 1990-06-25 | 1991-06-25 |
(...)
Wie Sie sehen, werden hier nur Mitarbeiternummern angezeigt. Dies kann ein Ärgernis sein, wenn Sie versuchen, einen Mitarbeiter schnell zu identifizieren. Glücklicherweise können wir eine Ansicht erstellen, in der eine ziemlich lange Abfrage gespeichert wird, mit der Mitarbeiternummern mit Mitarbeiternamen abgeglichen werden können, indem Daten aus mehreren Tabellen abgerufen und abgeglichen werden. Die Abfrage wird unten angezeigt.
select employees.first_name,employees.last_name,employees.emp_no,salaries.salary,salaries.to_date,salaries.from_date from employees, salaries where employees.emp_no = salaries.emp_no;
Beachten Sie, wie ich >= 50000
aus der Abfrage weggelassen habe . Wir werden diesen Wert verwenden, nachdem unsere Ansicht erstellt wurde.
Um die Ansicht zu erstellen, hängen wir einfach create view view_name as
an die Abfrage an. In diesem Fall werde ich eine Ansicht namens named_salaries erstellen .
create view named_salaries as select employees.first_name,employees.last_name,employees.emp_no,salaries.salary,salaries.to_date,salaries.from_date from employees, salaries where employees.emp_no = salaries.emp_no;
Wir zeigen Daten aus einer Ansicht auf dieselbe Weise an wie Daten aus einer Tabelle.
select * from named_salaries
Wenn die Ansicht ordnungsgemäß erstellt wurde, wird die folgende Ausgabe angezeigt (Daten wurden abgeschnitten):
+------------+-----------+--------+--------+------------+------------+
| first_name | last_name | emp_no | salary | to_date | from_date |
+------------+-----------+--------+--------+------------+------------+
| Georgi | Facello | 10001 | 60117 | 1987-06-26 | 1986-06-26 |
| Georgi | Facello | 10001 | 62102 | 1988-06-25 | 1987-06-26 |
| Georgi | Facello | 10001 | 66074 | 1989-06-25 | 1988-06-25 |
| Georgi | Facello | 10001 | 66596 | 1990-06-25 | 1989-06-25 |
| Georgi | Facello | 10001 | 66961 | 1991-06-25 | 1990-06-25 |
| Georgi | Facello | 10001 | 71046 | 8 1992-06-24 | 1991-06-25 |
(...)
Da wir mit Ansichten genauso interagieren können wie mit einer Tabelle, ist es möglich, >= 50000
die ursprüngliche Abfrage zu übernehmen und auf die Ansicht anzuwenden.
select * from named_salaries where salary >= 50000;
Ausgabe (abgeschnitten):
+------------+-----------+--------+--------+------------+------------+
| first_name | last_name | emp_no | salary | to_date | from_date |
+------------+-----------+--------+--------+------------+------------+
| Georgi | Facello | 10001 | 60117 | 1987-06-26 | 1986-06-26 |
(...)
| Bezalel | Simmel | 10002 | 65828 | 1997-08-03 | 1996-08-03 |
(...)
| Chirstian | Koblick | 10004 | 50594 | 1992-11-29 | 1991-11-30 |
(...)
| Kyoichi | Maliniak | 10005 | 78228 | 1990-09-12 | 1989-09-12 |
(...)
| Anneke | Preusig | 10006 | 53747 | 1998-08-03 | 1997-08-03 |
(...)
+------------+-----------+--------+--------+------------+------------+
Wie Sie sehen können, hat die Abfrage die Ansicht wie eine herkömmliche Tabelle behandelt.
Verwenden wir eine Ansicht in einem anderen Beispiel. Im Folgenden habe ich eine ziemlich lange Abfrage, in der die Abteilungsleiter, ihre Vor- / Nachnamen, Mitarbeiternummern, Abteilungsnamen und Abteilungsnummern aufgelistet sind. Die Abfrage fasst Daten aus mehreren verschiedenen Tabellen zusammen.
select employees.first_name,employees.last_name,employees.emp_no,dept_manager.to_date,dept_manager.from_date,departments.dept_name,departments.dept_no from employees, dept_manager, departments where employees.emp_no = dept_manager.emp_no AND departments.dept_no = dept_manager.dept_no;
Ausgabe (abgeschnitten):
+-------------+--------------+--------+------------+------------+--------------------+---------+
| first_name | last_name | emp_no | to_date | from_date | dept_name | dept_no |
+-------------+--------------+--------+------------+------------+--------------------+---------+
| Tonny | Butterworth | 111692 | 1988-10-17 | 1985-01-01 | Customer Service | d009 |
| Marjo | Giarratana | 111784 | 1992-09-08 | 1988-10-17 | Customer Service | d009 |
| Xiaobin | Spinelli | 111877 | 1996-01-03 | 1992-09-08 | Customer Service | d009 |
| Yuchang | Weedman | 111939 | 9999-01-01 | 1996-01-03 | Customer Service | d009 |
| DeForest | Hagimont | 110511 | 1992-04-25 | 1985-01-01 | Development | d005 |
| Leon | DasSarma | 110567 | 9999-01-01 | 1992-04-25 | Development | d005 |
(...)
Wie Sie sehen, wäre es etwas unpraktisch, diese Abfrage jedes Mal einzugeben, wenn Sie eine Liste der Abteilungsleiter abrufen müssen. Lassen Sie uns eine Ansicht erstellen, um es einfacher zu machen. Ich werde die Ansicht "Management" nennen.
create view management as select employees.first_name,employees.last_name,employees.emp_no,dept_manager.to_date,dept_manager.from_date,departments.dept_name,departments.dept_no from employees, dept_manager, departments where employees.emp_no = dept_manager.emp_no AND departments.dept_no = dept_manager.dept_no;
Jetzt können wir einfach tippen select * from management;
, um dieselben Daten abzurufen. Natürlich können wir auch zusätzliche Parameter darauf anwenden - genau wie bei einer herkömmlichen Tabelle. Angenommen, wir wollten nur die Abteilungsleiter für "Kundenservice" anzeigen.
select * from management where dept_name = 'Customer Service';
Ausgabe:
+------------+-------------+--------+------------+------------+------------------+---------+
| first_name | last_name | emp_no | to_date | from_date | dept_name | dept_no |
+------------+-------------+--------+------------+------------+------------------+---------+
| Tonny | Butterworth | 111692 | 1988-10-17 | 1985-01-01 | Customer Service | d009 |
| Marjo | Giarratana | 111784 | 1992-09-08 | 1988-10-17 | Customer Service | d009 |
| Xiaobin | Spinelli | 111877 | 1996-01-03 | 1992-09-08 | Customer Service | d009 |
| Yuchang | Weedman | 111939 | 9999-01-01 | 1996-01-03 | Customer Service | d009 |
+------------+-------------+--------+------------+------------+------------------+---------+
Oder vielleicht wollen wir "Kundenservice" und "Personal":
select * from management where dept_name = 'Customer Service' OR dept_name = 'Human Resources';
Ausgabe:
+------------+--------------+--------+------------+------------+------------------+---------+
| first_name | last_name | emp_no | to_date | from_date | dept_name | dept_no |
+------------+--------------+--------+------------+------------+------------------+---------+
| Tonny | Butterworth | 111692 | 1988-10-17 | 1985-01-01 | Customer Service | d009 |
| Marjo | Giarratana | 111784 | 1992-09-08 | 1988-10-17 | Customer Service | d009 |
| Xiaobin | Spinelli | 111877 | 1996-01-03 | 1992-09-08 | Customer Service | d009 |
| Yuchang | Weedman | 111939 | 9999-01-01 | 1996-01-03 | Customer Service | d009 |
| Shirish | Ossenbruggen | 110183 | 1992-03-21 | 1985-01-01 | Human Resources | d003 |
| Karsten | Sigstam | 110228 | 9999-01-01 | 1992-03-21 | Human Resources | d003 |
+------------+--------------+--------+------------+------------+------------------+---------+
Das Löschen einer Ansicht ist sehr einfach. Ähnlich wie beim Entfernen einer Tabelle würden Sie eingeben drop view view_name;
. Wenn wir beispielsweise die Ansicht named_salaries löschen möchten , lautet der Befehl : drop view named_salaries;
.
Vultr bietet Ihnen eine hervorragende Konnektivität für private Netzwerke für Server, die am selben Standort ausgeführt werden. Aber manchmal möchten Sie zwei Server in verschiedenen Ländern
Dieses Tutorial führt Sie durch die Installation des Yunohost Complete Server-Kontrollfelds unter Debian. Folgen Sie einfach dem Tutorial und Ihr Server wird in Betrieb sein
In diesem Artikel erfahren Sie, wie Sie unter Debian ein Chroot-Gefängnis einrichten. Ich gehe davon aus, dass Sie Debian 7.x verwenden. Wenn Sie Debian 6 oder 8 ausführen, funktioniert dies möglicherweise, bu
Einführung Eine einfache Möglichkeit, einen VPN-Server unter Debian einzurichten, ist PiVPN. PiVPN ist ein Installationsprogramm und ein Wrapper für OpenVPN. Es werden einfache Befehle für Sie erstellt
Einführung Cacti ist ein Open-Source-Überwachungs- und Grafiktool, das vollständig auf RRD-Daten basiert. Mit Cacti können Sie nahezu jede Art von Gerät überwachen
Dieser Artikel zeigt Ihnen, wie Sie einen Teamspeak 3-Server unter Debian Wheezy ausführen. Bevor Sie damit beginnen können, sollten Sie einige Vorbereitungen für Ihr VPS treffen. ich
ModSecurity ist ein WAF-Modul (Open Source Web Application Firewall), mit dem Apache, Nginx und IIS vor verschiedenen Cyberangriffen geschützt werden können
Hiawatha ist ein Webserver, der Einfachheit, Benutzerfreundlichkeit und Sicherheit im Auge hat. Es ist die perfekte Lösung für kleinere Server, ältere Hardware oder Embedde
Einführung Lynis ist ein kostenloses Open-Source-Tool zur Systemprüfung, das von vielen Systemadministratoren verwendet wird, um die Integrität zu überprüfen und ihre Systeme zu härten. ich
Munin ist ein Überwachungstool zur Überwachung von Prozessen und Ressourcen in Ihrer Maschine und präsentiert die Informationen in Diagrammen über eine Weboberfläche. Verwenden Sie die folgenden
Verwenden Sie ein anderes System? NodeBB ist ein Node.js-basiertes Forum. Es verwendet Web-Sockets für sofortige Interaktionen und Echtzeitbenachrichtigungen. NodeBB-Quellcode i
Verwenden Sie ein anderes System? BigTree CMS 4.2 ist ein schnelles und leichtes, kostenloses und Open-Source-Content-Management-System (CMS) für Unternehmen mit umfangreichen Funktionen
Verwenden Sie ein anderes System? Koel ist eine einfache webbasierte persönliche Audio-Streaming-App, die auf der Clientseite in Vue und auf der Serverseite in Laravel geschrieben wurde. Koe
Verwenden Sie ein anderes System? Einführung Docker Swarm verwandelt Ihre einzelnen Server in einen Computercluster. Erleichterung der Skalierung, Hochverfügbarkeit an
Verwenden Sie ein anderes System? Paste 2.1 ist eine einfache und flexible, kostenlose und Open-Source-Pastebin-Anwendung zum Speichern von Code, Text und mehr. Es war ursprünglich
Hier bei Vultr haben wir die Option, IPv6 auf allen bereitstellbaren VPS zu aktivieren. Aber damit bevorzugen einige Programme und Befehle den einen oder anderen Witz
Verwenden Sie ein anderes System? Einführung Automad ist ein Open Source File-basiertes Content Management System (CMS) und eine in PHP geschriebene Template Engine. Automa
Verwenden Sie ein anderes System? Apache Cassandra ist ein kostenloses und Open-Source-NoSQL-Datenbankverwaltungssystem, das Skalierbarkeit bietet
Snort ist ein kostenloses Network Intrusion Detection System (IDS). In weniger offiziellen Begriffen können Sie Ihr Netzwerk in Echtzeit auf verdächtige Aktivitäten überwachen
Ransomware-Angriffe nehmen zu, aber kann KI helfen, den neuesten Computervirus zu bekämpfen? Ist KI die Antwort? Lesen Sie hier, ob KI boone oder bane ist
ReactOS, ein quelloffenes und kostenloses Betriebssystem, ist hier mit der neuesten Version. Kann es den Anforderungen moderner Windows-Benutzer genügen und Microsoft zu Fall bringen? Lassen Sie uns mehr über dieses alte, aber neuere Betriebssystem erfahren.
Whatsapp hat endlich die Desktop-App für Mac- und Windows-Benutzer auf den Markt gebracht. Jetzt können Sie ganz einfach von Windows oder Mac auf WhatsApp zugreifen. Verfügbar für Windows 8+ und Mac OS 10.9+
Lesen Sie dies, um zu erfahren, wie Künstliche Intelligenz bei kleinen Unternehmen beliebt wird und wie sie die Wahrscheinlichkeit erhöht, sie wachsen zu lassen und ihren Konkurrenten einen Vorsprung zu verschaffen.
Vor kurzem hat Apple macOS Catalina 10.15.4 als Ergänzungsupdate veröffentlicht, um Probleme zu beheben, aber es scheint, dass das Update mehr Probleme verursacht, die zum Bricking von Mac-Computern führen. Lesen Sie diesen Artikel, um mehr zu erfahren
13 Tools zur kommerziellen Datenextraktion von Big Data
Unser Computer speichert alle Daten in einer organisierten Weise, die als Journaling-Dateisystem bekannt ist. Es ist eine effiziente Methode, die es dem Computer ermöglicht, Dateien zu suchen und anzuzeigen, sobald Sie auf die Suche klicken.https://wethegeek.com/?p=94116&preview=true
Da sich die Wissenschaft schnell weiterentwickelt und einen Großteil unserer Bemühungen übernimmt, steigt auch das Risiko, uns einer unerklärlichen Singularität auszusetzen. Lesen Sie, was Singularität für uns bedeuten könnte.
Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1
KI im Gesundheitswesen hat in den letzten Jahrzehnten große Fortschritte gemacht. Somit wächst die Zukunft der KI im Gesundheitswesen immer noch von Tag zu Tag.