Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Instalowanie MySQL na CentOS 7

MySQL to popularny system zarządzania bazami danych używany w aplikacjach webowych i serwerowych. Jednak MySQL nie znajduje się już w repozytoriach CentOS, a MariaDB stała się domyślnym oferowanym systemem baz danych. MariaDB jest uważana za bezpośrednią alternatywę dla MySQL i byłaby wystarczająca, jeśli potrzebujesz tylko systemu baz danych w ogóle. Zobacz nasz przewodnik MariaDB w CentOS 7, aby uzyskać instrukcje instalacji.

Jeśli mimo wszystko wolisz MySQL, ten przewodnik przedstawi, jak zainstalować, skonfigurować i zarządzać nim na Linode z systemem CentOS 7.

Duże bazy danych MySQL mogą wymagać znacznej ilości pamięci. Z tego powodu zalecamy używanie Linode o wysokiej pamięci do takich konfiguracji.

Uwaga Ten przewodnik jest napisany dla użytkownika innego niż root. Polecenia wymagające podwyższonych uprawnień są poprzedzone przedrostkiem sudo . Jeśli nie znasz sudo polecenie, możesz sprawdzić nasz przewodnik po użytkownikach i grupach.

Zanim zaczniesz

  1. Upewnij się, że postępowałeś zgodnie z przewodnikami Wprowadzenie i zabezpieczanie serwera, a nazwa hosta Linode jest ustawiona.

    Aby sprawdzić nazwę hosta, uruchom:

    hostname
    hostname -f
    

    Pierwsze polecenie powinno pokazywać Twoją krótką nazwę hosta, a drugie powinno pokazywać w pełni kwalifikowaną nazwę domeny (FQDN).

  2. Zaktualizuj swój system:

    sudo yum update
    
  3. Będziesz potrzebować wget aby uzupełnić ten przewodnik. Można go zainstalować w następujący sposób:

    yum install wget
    

Zainstaluj MySQL

MySQL musi być zainstalowany z repozytorium społeczności.

  1. Pobierz i dodaj repozytorium, a następnie zaktualizuj.

    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. Zainstaluj MySQL jak zwykle i uruchom usługę. Podczas instalacji zostaniesz zapytany, czy chcesz zaakceptować wyniki weryfikacji GPG pliku .rpm. Jeśli nie wystąpi żaden błąd ani niezgodność, wpisz y .

    sudo yum install mysql-server
    sudo systemctl start mysqld
    

MySQL domyślnie połączy się z hostem lokalnym (127.0.0.1). Zapoznaj się z naszym przewodnikiem dotyczącym zdalnego dostępu do MySQL, aby uzyskać informacje na temat łączenia się z bazami danych za pomocą SSH.

Uwaga Zezwalanie na nieograniczony dostęp do MySQL na publicznym IP nie jest zalecane, ale możesz zmienić adres, na którym nasłuchuje, modyfikując bind-address parametr w /etc/my.cnf . Jeśli zdecydujesz się powiązać MySQL z publicznym adresem IP, powinieneś zaimplementować reguły zapory, które zezwalają na połączenia tylko z określonych adresów IP.

Harden MySQL Server

  1. Uruchom mysql_secure_installation skrypt, aby rozwiązać kilka problemów związanych z bezpieczeństwem w domyślnej instalacji MySQL.

     sudo mysql_secure_installation
    

Będziesz mieć możliwość zmiany hasła root MySQL, usunięcia kont anonimowych użytkowników, wyłączenia logowania root poza localhost i usunięcia testowych baz danych. Zaleca się odpowiedź yes do tych opcji. Możesz przeczytać więcej o skrypcie w podręczniku MySQL Reference Manual.

Uwaga

Jeśli zainstalowano MySQL 5.7, będziesz potrzebować tymczasowego hasła, które zostało utworzone podczas instalacji. To hasło jest zapisane w /var/log/mysql.log plik i można go szybko znaleźć za pomocą następującego polecenia.

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

Korzystanie z MySQL

Standardowym narzędziem do interakcji z MySQL jest mysql klient, który instaluje się z mysql-server pakiet. Klient MySQL jest używany przez terminal.

Zaloguj się jako root

  1. Aby zalogować się do MySQL jako użytkownik root:

    mysql -u root -p
    
  2. Po wyświetleniu monitu wprowadź hasło roota przypisane podczas uruchamiania skryptu mysql_secure_installation.

    Zostanie wyświetlony nagłówek powitalny i monit MySQL, jak pokazano poniżej:

     mysql>
    
  3. Aby wygenerować listę poleceń dla wiersza MySQL, wpisz \h . Zobaczysz wtedy:

     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>
    

Utwórz nowego użytkownika i bazę danych MySQL

  1. W poniższym przykładzie testdb to nazwa bazy danych, testuser to użytkownik, a password to hasło użytkownika.

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

    Możesz skrócić ten proces, tworząc użytkownika gdy przypisywanie uprawnień do bazy danych:

     create database testdb;
     grant all on testdb.* to 'testuser' identified by 'password';
    
  2. Następnie wyjdź z MySQL.

    exit
    

Utwórz przykładową tabelę

  1. Zaloguj się ponownie jako testuser .

    mysql -u testuser -p
    
  2. Utwórz przykładową tabelę o nazwie klienci . Spowoduje to utworzenie tabeli z polem identyfikatora klienta typu INT dla liczby całkowitej (z automatycznym przyrostem dla nowych rekordów, używanym jako klucz podstawowy), a także dwoma polami do przechowywania nazwy klienta.

    use testdb;
    create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
    
  3. Następnie wyjdź z MySQL.

    exit
    

Zresetuj hasło roota MySQL

Jeśli zapomnisz hasła root MySQL, możesz je zresetować.

  1. Zatrzymaj bieżącą instancję serwera MySQL, a następnie uruchom ją ponownie z opcją, aby nie pytać o hasło.

    sudo systemctl stop mysqld
    sudo mysqld_safe --skip-grant-tables &
    
  2. Połącz się ponownie z serwerem MySQL za pomocą konta głównego MySQL.

    mysql -u root
    
  3. Użyj następujących poleceń, aby zresetować hasło roota. Zastąp password z silnym hasłem.

    use mysql;
    update user SET PASSWORD=PASSWORD("password") WHERE USER='root';
    flush privileges;
    exit
    
  4. Następnie uruchom ponownie MySQL.

    sudo systemctl start mysqld
    

Dostosuj MySQL

MySQL Tuner to skrypt Perla, który łączy się z działającą instancją MySQL i udostępnia zalecenia dotyczące konfiguracji na podstawie obciążenia. W idealnym przypadku instancja MySQL powinna działać przez co najmniej 24 godziny przed uruchomieniem tunera. Im dłużej działa instancja, tym lepsze porady udzieli MySQL Tuner.

  1. Pobierz MySQL Tuner do swojego katalogu domowego.

    wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl
    
  2. Aby go uruchomić:

    perl ./mysqltuner.pl
    

    Zostaniesz poproszony o podanie nazwy i hasła użytkownika root MySQL. Dane wyjściowe pokażą dwa obszary zainteresowania:zalecenia ogólne i zmienne do dostosowania.

MySQL Tuner to doskonały punkt wyjścia do optymalizacji serwera MySQL, ale rozsądnie byłoby przeprowadzić dodatkowe badania pod kątem konfiguracji dostosowanych do aplikacji wykorzystujących MySQL na twoim Linode.

Masz jeszcze kilka pytań?

Dołącz do naszej społeczności i opublikuj swoje pytania dla innych entuzjastów Linode i Linuksa, którzy Ci pomogą.

Powiązane pytania:
  • Jak zainstalować phpMyAdmin na Centos7
  • Jak mogę ustawić stos LAMP/LEMP na moim Linode?
  • Jak uruchomić MySQL i MongoDB?

Więcej informacji

Dodatkowe informacje na ten temat można znaleźć w poniższych zasobach. Chociaż są one dostarczane w nadziei, że będą przydatne, należy pamiętać, że nie możemy ręczyć za dokładność ani aktualność materiałów hostowanych zewnętrznie.

  • Podręcznik MySQL 5.6
  • Instrukcja PHP MySQL
  • Przykłady Perl DBI dla DBD::mysql
  • Podręcznik użytkownika MySQLdb
  • Samouczek programu MySQL Tuner

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wybierz TOP X (lub dolny) procent dla wartości liczbowych w MySQL

  2. Przyznaj MySQL uprawnienia do tabel i kolumn

  3. Jak działa operator SOUNDS LIKE w MySQL

  4. Lokalizacja pliku my.cnf w systemie macOS

  5. Skuteczne monitorowanie MySQL za pomocą pulpitów nawigacyjnych SCUMM:część pierwsza