Mysql
 sql >> Base de données >  >> RDS >> Mysql

Déployer des bases de données relationnelles MySQL sur Ubuntu 12.04 (Precise Pangolin)

MySQL est un système de gestion de base de données populaire utilisé pour les applications Web et serveur. Ce guide présentera comment installer, configurer et gérer MySQL sur un Linode exécutant Ubuntu 12.04 LTS (Precise Pangolin).

Remarque Ce guide est écrit pour un utilisateur non root. Les commandes qui nécessitent des privilèges élevés sont préfixées par sudo . Si vous n'êtes pas familier avec le sudo commande, vous pouvez consulter notreGuide des utilisateurs et des groupes.

Prérequis

  1. Si vous ne l'avez pas déjà fait, créez un compte Linode et une instance de calcul. Consultez nos guides Premiers pas avec Linode et Création d'une instance de calcul.

  2. Suivez notre guide Configuration et sécurisation d'une instance de calcul pour mettre à jour votre système et configurer votre nom d'hôte. Vous pouvez également définir le fuseau horaire, créer un compte utilisateur limité et renforcer l'accès SSH.

    Pour vérifier votre nom d'hôte, exécutez :

    hostname
    hostname -f
    

    La première commande doit afficher votre nom d'hôte court et la seconde doit afficher votre nom de domaine complet (FQDN) si vous en avez un attribué.

Installer MySQL

sudo apt-get install mysql-server

Au cours du processus d'installation, vous serez invité à définir un mot de passe pour l'utilisateur racine MySQL, comme indiqué ci-dessous. Choisissez un mot de passe fort et conservez-le dans un endroit sûr pour référence future.

MySQL se liera à localhost (127.0.0.1) par défaut. Veuillez consulter notre guide d'accès à distance MySQL pour plus d'informations sur la connexion à vos bases de données à l'aide d'un tunnel SSH.

Remarque Autoriser un accès illimité à MySQL sur une adresse IP publique n'est pas conseillé, mais vous pouvez changer l'adresse sur laquelle il écoute en modifiant le bind-address paramètre dans /etc/my.cnf . Si vous décidez de lier MySQL à votre adresse IP publique, vous devez implémenter des règles de pare-feu qui autorisent uniquement les connexions à partir d'adresses IP spécifiques.

Renforcer le serveur MySQL

Exécutez le script mysql_secure_installation pour résoudre plusieurs problèmes de sécurité dans une installation MySQL par défaut.

sudo mysql_secure_installation

Vous aurez le choix de modifier le mot de passe root MySQL, de supprimer les comptes d'utilisateurs anonymes, de désactiver la connexion à la base de données root en dehors de localhost et de supprimer les bases de données de test. Il est recommandé de répondre oui à ces options. Vous pouvez en savoir plus sur le script dans le manuel de référence MySQL.

Déployer MySQL

L'outil standard pour interagir avec MySQL est le mysql client, qui s'installe avec le mysql-server paquet.

Connexion racine

  1. Pour vous connecter à MySQL en tant qu'utilisateur root :

    mysql -u root -p
    
  2. Lorsque vous y êtes invité, entrez le mot de passe root que vous avez attribué lors de l'mysql_secure_installation le script a été exécuté.

    L'invite du moniteur MySQL vous sera alors présentée :

    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 1
    Server version: 5.0.45 Source distribution
    
    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
    
    mysql>
    
  3. Pour générer une liste de commandes pour l'invite MySQL, entrez \h . Vous verrez alors :

    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>
    

Créer un nouvel utilisateur et une nouvelle base de données MySQL

  1. Dans l'exemple ci-dessous, testdb est le nom de la base de données, testuser est l'utilisateur, et password est le mot de passe de l'utilisateur.

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

    Vous pouvez raccourcir ce processus en créant l'utilisateur while attribution des autorisations de base de données :

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

    exit
    

Créer un exemple de tableau

  1. Reconnectez-vous en tant que testuser .

    mysql -u testuser -p
    
  2. Créez un exemple de table appelée customers . Cela crée une table avec un champ ID client de type INT pour entier (auto-incrémenté pour les nouveaux enregistrements, utilisé comme clé primaire), ainsi que deux champs pour stocker le nom du client.

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

    exit
    

Réinitialiser le mot de passe racine MySQL

Si vous oubliez votre mot de passe root MySQL, il peut être réinitialisé.

  1. Arrêtez l'instance actuelle du serveur MySQL.

    sudo service mysql stop
    
  2. Utilisez dpkg pour relancer le processus de configuration suivi par MySQL lors de la première installation. Il vous sera à nouveau demandé de définir un mot de passe root.

    sudo dpkg-reconfigure mysql-server-5.5
    

Vous pourrez maintenant vous reconnecter en utilisant mysql -u root -p .

Régler MySQL

MySQL Tuner est un script Perl qui se connecte à une instance en cours d'exécution de MySQL et fournit des recommandations de configuration basées sur la charge de travail. Idéalement, l'instance MySQL devrait avoir fonctionné pendant au moins 24 heures avant d'exécuter le tuner. Les recommandations de MySQL Tuner seront plus précises au fur et à mesure que l'instance sera en cours d'exécution.

  1. Installez MySQL Tuner à partir des dépôts d'Ubuntu.

    sudo apt-get install mysqltuner
    
  2. Pour l'exécuter :

    mysqltuner
    

    Le nom et le mot de passe de l'utilisateur racine MySQL vous seront demandés. La sortie affichera deux domaines d'intérêt :les recommandations générales et les variables à ajuster.

MySQL Tuner est un excellent point de départ pour optimiser un serveur MySQL, mais des recherches supplémentaires sont recommandées pour les configurations adaptées aux applications utilisant MySQL sur votre Linode.

Plus d'informations

Vous pouvez consulter les ressources suivantes pour plus d'informations sur ce sujet. Bien que ceux-ci soient fournis dans l'espoir qu'ils seront utiles, veuillez noter que nous ne pouvons pas garantir l'exactitude ou l'actualité des documents hébergés en externe.

  • Manuel de référence de MySQL 5.1
  • Manuel PHP MySQL
  • Exemples Perl DBI pour DBD::mysql
  • Guide de l'utilisateur de MySQLdb