Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Bereitstellen relationaler MySQL-Datenbanken auf Ubuntu 12.04 (Precise Pangolin)

MySQL ist ein beliebtes Datenbankverwaltungssystem, das für Web- und Serveranwendungen verwendet wird. Diese Anleitung stellt vor, wie MySQL auf einem Linode mit Ubuntu 12.04 LTS (Precise Pangolin) installiert, konfiguriert und verwaltet wird.

Hinweis Dieses Handbuch wurde für Nicht-Root-Benutzer geschrieben. Befehlen, die erhöhte Berechtigungen erfordern, wird das Präfix sudo vorangestellt . Wenn Sie mit sudo nicht vertraut sind Befehl finden Sie in unserem Handbuch für Benutzer und Gruppen.

Voraussetzungen

  1. Wenn Sie dies noch nicht getan haben, erstellen Sie ein Linode-Konto und eine Compute-Instanz. Sehen Sie sich unsere Leitfäden Erste Schritte mit Linode und Erstellen einer Compute-Instanz an.

  2. Folgen Sie unserem Leitfaden zum Einrichten und Sichern einer Compute-Instanz, um Ihr System zu aktualisieren und Ihren Hostnamen zu konfigurieren. Möglicherweise möchten Sie auch die Zeitzone festlegen, ein eingeschränktes Benutzerkonto erstellen und den SSH-Zugriff härten.

    Um Ihren Hostnamen zu überprüfen, führen Sie Folgendes aus:

    hostname
    hostname -f
    

    Der erste Befehl sollte Ihren kurzen Hostnamen anzeigen, und der zweite sollte Ihren vollständig qualifizierten Domänennamen (FQDN) anzeigen, falls Sie einen zugewiesen haben.

Installieren Sie MySQL

sudo apt-get install mysql-server

Während des Installationsvorgangs werden Sie aufgefordert, ein Passwort für den MySQL-Root-Benutzer festzulegen, wie unten gezeigt. Wählen Sie ein sicheres Passwort und bewahren Sie es an einem sicheren Ort auf, damit Sie später darauf zurückgreifen können.

MySQL bindet standardmäßig an localhost (127.0.0.1). Weitere Informationen zum Herstellen einer Verbindung zu Ihren Datenbanken über einen SSH-Tunnel finden Sie in unserem Leitfaden für den MySQL-Fernzugriff.

Hinweis Es wird nicht empfohlen, uneingeschränkten Zugriff auf MySQL auf einer öffentlichen IP-Adresse zuzulassen, aber Sie können die Adresse ändern, auf der MySQL lauscht, indem Sie die bind-address ändern Parameter in /etc/my.cnf . Wenn Sie sich entscheiden, MySQL an Ihre öffentliche IP zu binden, sollten Sie Firewall-Regeln implementieren, die nur Verbindungen von bestimmten IP-Adressen zulassen.

Mysql-Server härten

Führen Sie das Skript mysql_secure_installation aus, um mehrere Sicherheitsbedenken in einer standardmäßigen MySQL-Installation zu beheben.

sudo mysql_secure_installation

Sie haben die Wahl, das MySQL-Root-Passwort zu ändern, anonyme Benutzerkonten zu entfernen, die Root-Datenbankanmeldung außerhalb von localhost zu deaktivieren und Testdatenbanken zu entfernen. Es wird empfohlen, diese Optionen mit Ja zu beantworten. Sie können mehr über das Skript im MySQL-Referenzhandbuch nachlesen.

MySQL bereitstellen

Das Standardwerkzeug für die Interaktion mit MySQL ist mysql client, der mit dem mysql-server installiert wird Paket.

Root-Anmeldung

  1. So melden Sie sich als Root-Benutzer bei MySQL an:

    mysql -u root -p
    
  2. Wenn Sie dazu aufgefordert werden, geben Sie das Root-Passwort ein, das Sie bei der mysql_secure_installation zugewiesen haben Skript wurde ausgeführt.

    Daraufhin wird Ihnen die MySQL-Monitor-Eingabeaufforderung angezeigt:

    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. Um eine Liste mit Befehlen für die MySQL-Eingabeaufforderung zu generieren, geben Sie \h ein . Sie sehen dann:

    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>
    

Erstellen Sie einen neuen MySQL-Benutzer und eine neue Datenbank

  1. Im folgenden Beispiel testdb ist der Name der Datenbank, testuser ist der Benutzer und password ist das Passwort des Benutzers.

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

    Sie können diesen Vorgang abkürzen, indem Sie den Benutzer while erstellen Datenbankberechtigungen zuweisen:

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

    exit
    

Erstellen Sie eine Beispieltabelle

  1. Melden Sie sich erneut als testuser an .

    mysql -u testuser -p
    
  2. Erstellen Sie eine Beispieltabelle namens customers . Dadurch wird eine Tabelle mit einem Kunden-ID-Feld vom Typ INT erstellt für Integer (automatisch inkrementiert für neue Datensätze, verwendet als Primärschlüssel), sowie zwei Felder zum Speichern des Kundennamens.

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

    exit
    

Setzen Sie das MySQL-Root-Passwort zurück

Wenn Sie Ihr MySQL-Root-Passwort vergessen, kann es zurückgesetzt werden.

  1. Beenden Sie die aktuelle MySQL-Serverinstanz.

    sudo service mysql stop
    
  2. Verwenden Sie dpkg, um den Konfigurationsprozess erneut auszuführen, den MySQL bei der Erstinstallation durchläuft. Sie werden erneut aufgefordert, ein Root-Passwort festzulegen.

    sudo dpkg-reconfigure mysql-server-5.5
    

Sie können sich jetzt wieder mit mysql -u root -p anmelden .

MySQL optimieren

MySQL Tuner ist ein Perl-Skript, das eine Verbindung zu einer laufenden Instanz von MySQL herstellt und Konfigurationsempfehlungen basierend auf der Arbeitslast bereitstellt. Idealerweise sollte die MySQL-Instanz mindestens 24 Stunden in Betrieb gewesen sein, bevor der Tuner ausgeführt wird. Die Empfehlungen des MySQL-Tuners werden umso präziser, je länger die Instanz läuft.

  1. Installieren Sie MySQL Tuner aus den Repositories von Ubuntu.

    sudo apt-get install mysqltuner
    
  2. Um es auszuführen:

    mysqltuner
    

    Sie werden nach dem Namen und dem Passwort des MySQL-Root-Benutzers gefragt. Die Ausgabe zeigt zwei interessante Bereiche:Allgemeine Empfehlungen und Anzupassende Variablen.

MySQL Tuner ist ein ausgezeichneter Ausgangspunkt, um einen MySQL-Server zu optimieren, aber zusätzliche Forschung wird für Konfigurationen empfohlen, die auf die Anwendung(en) zugeschnitten sind, die MySQL auf Ihrem Linode verwenden.

Weitere Informationen

Weitere Informationen zu diesem Thema finden Sie in den folgenden Ressourcen. Obwohl diese in der Hoffnung bereitgestellt werden, dass sie nützlich sind, beachten Sie bitte, dass wir nicht für die Genauigkeit oder Aktualität extern gehosteter Materialien garantieren können.

  • MySQL 5.1 Referenzhandbuch
  • PHP-MySQL-Handbuch
  • Perl-DBI-Beispiele für DBD::mysql
  • MySQLdb-Benutzerhandbuch