Installa la condivisione NFS su Debian
NFS è un file system basato su rete che consente ai computer di accedere ai file attraverso una rete di computer. Questa guida spiega come esporre le cartelle su NF
MySQL ha una grande funzionalità nota come "viste". Le viste sono query memorizzate. Pensa a loro come alias per una query altrimenti lunga. In questa guida, ti mostrerò come utilizzare le viste per organizzare i dati in modo più efficiente.
Installare MySQL su Debian 7.x è molto semplice. Innanzitutto, dobbiamo garantire che le nostre fonti vengano aggiornate eseguendo:
sudo apt-get update
Successivamente, possiamo installare il server MySQL:
sudo apt-get install -y mysql-server
Verrà visualizzata una finestra di dialogo che richiede di creare una password per l'utente "root". Assicurati di ricordare questa password.
Rafforziamo la sicurezza della nostra installazione eseguendo:
sudo mysql_secure_installation
Dopo l'esecuzione, ti verrà presentata una serie di istruzioni. Ciascuna delle risposte che è necessario selezionare sono visualizzate di seguito.
...
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...
A questo punto, non abbiamo dati sul server con cui sperimentare. Per questo tutorial, utilizzeremo il database dei dipendenti in quanto è facile da lavorare e disponibile gratuitamente dal sito Web di MySQL.
sudo wget https://launchpad.net/test-db/employees-db-1/1.0.6/+download/employees_db-full-1.0.6.tar.bz2
Dobbiamo installarlo in bzip2
modo da poter estrarre il file.
sudo apt-get install bzip2
Estrarre il database. Il file è abbastanza grande, quindi potrebbero essere necessari alcuni istanti.
sudo bzip2 -dfv employees_db-full-1.0.6.tar.bz2
sudo tar -xf employees_db-full-1.0.6.tar
Una volta estratto il file, avrai una cartella intitolata employees_db
. Dobbiamo navigare in questa directory per installare il database.
cd employees_db
ls -l
L'output sarà simile al seguente:
-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
Eseguire il comando seguente per connettersi al server MySQL, creare il database e importare i dati:
sudo mysql -h localhost -u root -p -t < employees.sql
Viene visualizzato un messaggio che richiede la password di root. Questa è la password impostata nel passaggio uno.
Dato che il database è piuttosto grande, probabilmente ci vorranno da 1 a 3 minuti per importare completamente i dati. Se tutto è stato fatto correttamente, vedrai il seguente output.
+-----------------------------+
| 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 |
+------------------+
Ora possiamo accedere a MySQL e visualizzare i dati importati.
sudo mysql -h localhost -u root -p
Immettere la password di root impostata nella sezione precedente.
Controlla l'elenco dei database per il nostro database dei dipendenti appena creato .
show databases;
L'output sarà simile al seguente:
+--------------------+
| Database |
+--------------------+
| information_schema |
| employees |
| mysql |
| performance_schema |
+--------------------+
4 rows in set (0.01 sec)
Usiamo il database dei dipendenti .
use employees;
Controlla le tabelle al suo interno.
show tables;
Questo produrrà:
+---------------------+
| Tables_in_employees |
+---------------------+
| departments |
| dept_emp |
| dept_manager |
| employees |
| salaries |
| titles |
+---------------------+
6 rows in set (0.01 sec)
In questo passaggio, imparerai a creare e utilizzare le viste. Ho suddiviso questo passaggio in sezioni più piccole per la corrispondenza dei dati e la combinazione di dati per l'organizzazione. È tempo di iniziare a interagire con i nostri dati di test.
Di seguito, ho una query che mostra tutti i dipendenti che hanno uno stipendio annuale pari o superiore a $ 50.000.
select * from salaries where salary >= 50000;
Uscita (troncata):
+--------+--------+------------+------------+
| 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 |
(...)
Come puoi vedere, questo mostra solo i numeri dei dipendenti. Potrebbe essere una seccatura quando si cerca di identificare rapidamente un dipendente. Fortunatamente, possiamo creare una vista che memorizzerà una query abbastanza lunga in grado di abbinare i numeri dei dipendenti ai nomi dei dipendenti estraendo e abbinando i dati da più tabelle. La query è mostrata di seguito.
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;
Nota come ho omesso >= 50000
la query. Utilizzeremo questo valore dopo la creazione della nostra vista.
Per creare la vista, aggiungiamo semplicemente create view view_name as
alla query. In questo caso, creerò una vista chiamata named_salaries .
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;
Visualizziamo i dati da una vista nello stesso modo in cui visualizziamo i dati da una tabella.
select * from named_salaries
Se la vista è stata creata correttamente, verrà visualizzato il seguente output (i dati sono stati troncati):
+------------+-----------+--------+--------+------------+------------+
| 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 |
(...)
Dal momento che possiamo interagire con le viste nello stesso modo in cui possiamo interagire con una tabella, è possibile prendere il >= 50000
dalla query originale e applicarlo alla vista.
select * from named_salaries where salary >= 50000;
Uscita (troncata):
+------------+-----------+--------+--------+------------+------------+
| 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 |
(...)
+------------+-----------+--------+--------+------------+------------+
Come puoi vedere, la query ha trattato la vista proprio come una tabella tradizionale.
Usiamo una vista in un altro esempio. Di seguito, ho una query abbastanza lunga che elenca i responsabili di reparto, i loro nomi / cognomi, i numeri dei dipendenti, i nomi dei loro dipartimenti e i numeri dei dipartimenti. La query raccoglie i dati da diverse tabelle.
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;
Uscita (troncata):
+-------------+--------------+--------+------------+------------+--------------------+---------+
| 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 |
(...)
Come puoi vedere, sarebbe in qualche modo scomodo digitare quella query ogni volta che devi recuperare un elenco di responsabili di reparto. Creiamo una vista per renderlo più semplice. Chiamerò la vista "gestione".
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;
Ora, possiamo semplicemente digitare select * from management;
per recuperare gli stessi dati. Naturalmente, possiamo anche applicare parametri aggiuntivi a questo, proprio come una tabella tradizionale. Ad esempio, supponiamo di voler mostrare solo i responsabili dei dipartimenti per "Servizio clienti".
select * from management where dept_name = 'Customer Service';
Produzione:
+------------+-------------+--------+------------+------------+------------------+---------+
| 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 |
+------------+-------------+--------+------------+------------+------------------+---------+
O forse vogliamo "Servizio clienti" e "Risorse umane":
select * from management where dept_name = 'Customer Service' OR dept_name = 'Human Resources';
Produzione:
+------------+--------------+--------+------------+------------+------------------+---------+
| 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 |
+------------+--------------+--------+------------+------------+------------------+---------+
L'eliminazione di una vista è molto semplice. Simile alla rimozione di una tabella, digitare drop view view_name;
. Ad esempio, se volessimo eliminare la named_salaries vista, il comando sarà: drop view named_salaries;
.
NFS è un file system basato su rete che consente ai computer di accedere ai file attraverso una rete di computer. Questa guida spiega come esporre le cartelle su NF
Usi un sistema diverso? Couch CMS è un sistema di gestione dei contenuti (CMS) semplice e flessibile, gratuito e open source che consente ai web designer di progettare
Golang è un linguaggio di programmazione sviluppato da Google. Grazie alla sua versatilità, semplicità e affidabilità, Golang è diventato uno dei più popolari
IRC è popolare tra gli sviluppatori e gli utenti di software open source. Uno degli svantaggi di IRC è quando non sei in linea, potresti perdere Importan
Luso di un utente sudo per accedere a un server ed eseguire comandi a livello di root è una pratica molto comune tra Linux e Unix Systems Administrator. Luso di un sud
Questo articolo ti insegnerà come impostare una prigione chroot su Debian. Presumo che tu stia usando Debian 7.x. Se usi Debian 6 o 8, questo potrebbe funzionare, bu
Introduzione Un modo semplice per configurare un server VPN su Debian è con PiVPN. PiVPN è un programma di installazione e wrapper per OpenVPN. Crea semplici comandi per te t
Usi un sistema diverso? Brotli è un nuovo metodo di compressione con un rapporto di compressione migliore di Gzip. Il suo codice sorgente è ospitato pubblicamente su Github. Thi
Usi un sistema diverso? Introduzione Kanboard è un programma software di gestione dei progetti gratuito e open source progettato per facilitare e visualizzare
Usi un sistema diverso? Neos è una piattaforma di applicazioni di contenuto con un CMS e un framework applicativo al suo interno. Questa guida ti mostrerà come installare
Introduzione Cacti è uno strumento open source di monitoraggio e rappresentazione grafica interamente basato sui dati RRD. Attraverso Cacti puoi monitorare quasi ogni tipo di devic
Java è un linguaggio di programmazione / macchina virtuale indipendente dalla piattaforma. In questo tutorial, installeremo limplementazione OpenJDK di Java 8 su un Debian
Git è un sistema di controllo della versione (VCS) che consente il rilevamento delle modifiche al codice. In questo tutorial, vedremo come installare un server HTTP (S) Git, un
Introduzione MyCLI è un client da riga di comando per MySQL e MariaDB che ti consente di completare automaticamente e ti aiuta con la sintassi dei tuoi comandi SQL. MyCL
Cosa ti serve Un VPS Vultr con almeno 1 GB di RAM. Accesso SSH (con privilegi di root / amministrativi). Passaggio 1: installare prima BungeeCord
Usi un sistema diverso? Matomo (precedentemente Piwik) è una piattaforma di analisi open source, unalternativa aperta a Google Analytics. La fonte Matomo è ospitata o
Munin è uno strumento di monitoraggio per rilevare processi e risorse nella macchina e presenta le informazioni in grafici attraverso uninterfaccia web. Usa il seguito
Usi un sistema diverso? ImpressPages CMS 5.0 è un sistema di gestione dei contenuti (CMS) semplice ed efficace, gratuito e open source, intuitivo, basato su MVC
Usi un sistema diverso? NodeBB è un forum basato su Node.js. Utilizza socket Web per interazioni istantanee e notifiche in tempo reale. Codice sorgente NodeBB i
Gli attacchi ransomware sono in aumento, ma l'intelligenza artificiale può aiutare ad affrontare l'ultimo virus informatico? L'intelligenza artificiale è la risposta? Leggi qui sai è AI boone o bane
ReactOS, un sistema operativo open source e gratuito è qui con l'ultima versione. Può essere sufficiente alle esigenze degli utenti Windows moderni e abbattere Microsoft? Scopriamo di più su questo vecchio stile, ma un'esperienza del sistema operativo più recente.
Whatsapp ha finalmente lanciato l'app desktop per utenti Mac e Windows. Ora puoi accedere facilmente a Whatsapp da Windows o Mac. Disponibile per Windows 8+ e Mac OS 10.9+
Leggi questo per sapere come l'intelligenza artificiale sta diventando popolare tra le aziende di piccole dimensioni e come sta aumentando le probabilità di farle crescere e dare un vantaggio ai loro concorrenti.
Recentemente Apple ha rilasciato macOS Catalina 10.15.4 un aggiornamento supplementare per risolvere i problemi, ma sembra che l'aggiornamento stia causando più problemi che portano al bricking delle macchine mac. Leggi questo articolo per saperne di più
13 strumenti commerciali per l'estrazione dei dati dai Big Data
Il nostro computer memorizza tutti i dati in un modo organizzato noto come file system di journaling. È un metodo efficiente che consente al computer di cercare e visualizzare i file non appena si preme search.https://wethegeek.com/?p=94116&preview=true
Man mano che la scienza si evolve a un ritmo rapido, assumendo gran parte dei nostri sforzi, aumentano anche i rischi di sottoporci a una singolarità inspiegabile. Leggi, cosa potrebbe significare per noi la singolarità.
Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1
L'intelligenza artificiale nell'assistenza sanitaria ha compiuto grandi passi avanti negli ultimi decenni. Pertanto, il futuro dell'IA in sanità continua a crescere giorno dopo giorno.