Mysql
 sql >> Database >  >> RDS >> Mysql

Installazione di MySQL su CentOS 7

MySQL è un popolare sistema di gestione di database utilizzato per applicazioni Web e server. Tuttavia, MySQL non è più nei repository di CentOS e MariaDB è diventato il sistema di database predefinito offerto. MariaDB è considerato un sostituto a goccia per MySQL e sarebbe sufficiente se hai solo bisogno di un sistema di database in generale. Consulta la nostra guida MariaDB in CentOS 7 per le istruzioni di installazione.

Se comunque preferisci MySQL, questa guida introdurrà come installarlo, configurarlo e gestirlo su un Linode con CentOS 7.

Database MySQL di grandi dimensioni possono richiedere una notevole quantità di memoria. Per questo motivo, consigliamo di utilizzare un Linode ad alta memoria per tali configurazioni.

Nota Questa guida è scritta per un utente non root. I comandi che richiedono privilegi elevati sono preceduti da sudo . Se non hai familiarità con sudo comando, puoi consultare la nostra guida Utenti e Gruppi.

Prima di iniziare

  1. Assicurati di aver seguito le guide Introduzione e Protezione del server e che il nome host di Linode sia impostato.

    Per controllare il tuo nome host esegui:

    hostname
    hostname -f
    

    Il primo comando dovrebbe mostrare il tuo nome host breve e il secondo dovrebbe mostrare il tuo nome di dominio completo (FQDN).

  2. Aggiorna il tuo sistema:

    sudo yum update
    
  3. Avrai bisogno di wget per completare questa guida. Può essere installato come segue:

    yum install wget
    

Installa MySQL

MySQL deve essere installato dal repository della comunità.

  1. Scarica e aggiungi il repository, quindi aggiorna.

    wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
    sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
    yum update
    
  2. Installa MySQL come al solito e avvia il servizio. Durante l'installazione, ti verrà chiesto se desideri accettare i risultati della verifica GPG del file .rpm. Se non si verifica alcun errore o mancata corrispondenza, inserisci y .

    sudo yum install mysql-server
    sudo systemctl start mysqld
    

MySQL si legherà a localhost (127.0.0.1) per impostazione predefinita. Fare riferimento alla nostra guida all'accesso remoto MySQL per informazioni sulla connessione ai database tramite SSH.

Nota Non è consigliabile consentire l'accesso illimitato a MySQL su un IP pubblico, ma è possibile modificare l'indirizzo su cui è in ascolto modificando il bind-address parametro in /etc/my.cnf . Se decidi di associare MySQL al tuo IP pubblico, dovresti implementare regole firewall che consentano solo connessioni da indirizzi IP specifici.

Indurire il server MySQL

  1. Esegui mysql_secure_installation script per risolvere diversi problemi di sicurezza in un'installazione MySQL predefinita.

     sudo mysql_secure_installation
    

Ti verrà data la possibilità di modificare la password di root MySQL, rimuovere account utente anonimi, disabilitare gli accessi root al di fuori di localhost e rimuovere i database di test. Si consiglia di rispondere yes a queste opzioni. Puoi leggere di più sullo script nel Manuale di riferimento di MySQL.

Nota

Se è stato installato MySQL 5.7, sarà necessaria la password temporanea creata durante l'installazione. Questa password è annotata in /var/log/mysql.log file e può essere trovato rapidamente utilizzando il comando seguente.

sudo grep 'temporary password' /var/log/mysqld.log

Utilizzo di MySQL

Lo strumento standard per interagire con MySQL è mysql client che si installa con il mysql-server pacchetto. Il client MySQL viene utilizzato tramite un terminale.

Accesso root

  1. Per accedere a MySQL come utente root:

    mysql -u root -p
    
  2. Quando richiesto, inserisci la password di root assegnata durante l'esecuzione dello script mysql_secure_installation.

    Ti verrà quindi presentato un'intestazione di benvenuto e il prompt di MySQL come mostrato di seguito:

     mysql>
    
  3. Per generare un elenco di comandi per il prompt di MySQL, inserisci \h . Vedrai quindi:

     List of all MySQL commands:
     Note that all text commands must be first on line and end with ';'
     ?         (\?) Synonym for `help'.
     clear     (\c) Clear command.
     connect   (\r) Reconnect to the server. Optional arguments are db and host.
     delimiter (\d) Set statement delimiter. NOTE: Takes the rest of the line as new delimiter.
     edit      (\e) Edit command with $EDITOR.
     ego       (\G) Send command to mysql server, display result vertically.
     exit      (\q) Exit mysql. Same as quit.
     go        (\g) Send command to mysql server.
     help      (\h) Display this help.
     nopager   (\n) Disable pager, print to stdout.
     notee     (\t) Don't write into outfile.
     pager     (\P) Set PAGER [to_pager]. Print the query results via PAGER.
     print     (\p) Print current command.
     prompt    (\R) Change your mysql prompt.
     quit      (\q) Quit mysql.
     rehash    (\#) Rebuild completion hash.
     source    (\.) Execute an SQL script file. Takes a file name as an argument.
     status    (\s) Get status information from the server.
     system    (\!) Execute a system shell command.
     tee       (\T) Set outfile [to_outfile]. Append everything into given outfile.
     use       (\u) Use another database. Takes database name as argument.
     charset   (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
     warnings  (\W) Show warnings after every statement.
     nowarning (\w) Don't show warnings after every statement.
    
     For server side help, type 'help contents'
    
     mysql>
    

Crea un nuovo utente e database MySQL

  1. Nell'esempio seguente, testdb è il nome del database, testuser è l'utente e password è la password dell'utente.

     create database testdb;
     create user 'testuser'@'localhost' identified by 'password';
     grant all on testdb.* to 'testuser' identified by 'password';
    

    Puoi abbreviare questo processo creando l'utente mentre assegnazione delle autorizzazioni al database:

     create database testdb;
     grant all on testdb.* to 'testuser' identified by 'password';
    
  2. Quindi esci da MySQL.

    exit
    

Crea una tabella di esempio

  1. Accedi nuovamente come testuser .

    mysql -u testuser -p
    
  2. Crea una tabella di esempio denominata clienti . In questo modo viene creata una tabella con un campo ID cliente di tipo INT per intero (autoincrementato per i nuovi record, utilizzato come chiave primaria), nonché due campi per la memorizzazione del nome del cliente.

    use testdb;
    create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
    
  3. Quindi esci da MySQL.

    exit
    

Reimposta la password di root MySQL

Se dimentichi la tua password MySQL di root, può essere reimpostata.

  1. Arresta l'istanza del server MySQL corrente, quindi riavviala con un'opzione per non richiedere una password.

    sudo systemctl stop mysqld
    sudo mysqld_safe --skip-grant-tables &
    
  2. Riconnettiti al server MySQL con l'account root MySQL.

    mysql -u root
    
  3. Utilizzare i seguenti comandi per reimpostare la password di root. Sostituisci password con una password complessa.

    use mysql;
    update user SET PASSWORD=PASSWORD("password") WHERE USER='root';
    flush privileges;
    exit
    
  4. Quindi riavvia MySQL.

    sudo systemctl start mysqld
    

Ottimizza MySQL

MySQL Tuner è uno script Perl che si connette a un'istanza in esecuzione di MySQL e fornisce consigli di configurazione basati sul carico di lavoro. Idealmente, l'istanza MySQL avrebbe dovuto funzionare da almeno 24 ore prima di eseguire il sintonizzatore. Più a lungo è in esecuzione l'istanza, migliore sarà il consiglio che MySQL Tuner darà.

  1. Scarica MySQL Tuner nella tua home directory.

    wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl
    
  2. Per eseguirlo:

    perl ./mysqltuner.pl
    

    Ti verrà chiesto il nome e la password dell'utente root MySQL. L'output mostrerà due aree di interesse:Consigli generali e Variabili da regolare.

MySQL Tuner è un ottimo punto di partenza per ottimizzare un server MySQL, ma sarebbe prudente eseguire ulteriori ricerche per configurazioni su misura per le applicazioni che utilizzano MySQL sul Linode.

Ha ancora qualche domanda?

Unisciti alla nostra community e pubblica le tue domande per altri appassionati di Linode e Linux per aiutarti.

Domande correlate:
  • Come installare phpMyAdmin su Centos7
  • Come posso configurare uno stack LAMP/LEMP sul mio Linode?
  • Come faccio a eseguire sia MySQL che MongoDB?

Maggiori informazioni

Si consiglia di consultare le seguenti risorse per ulteriori informazioni su questo argomento. Sebbene questi siano forniti nella speranza che possano essere utili, tieni presente che non possiamo garantire l'accuratezza o la tempestività dei materiali ospitati esternamente.

  • Manuale di riferimento di MySQL 5.6
  • Manuale PHP MySQL
  • Esempi DBI Perl per DBD::mysql
  • Manuale utente di MySQLdb
  • Esercitazione sul sintonizzatore MySQL