Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cài đặt MySQL trên CentOS 7

MySQL là một hệ quản trị cơ sở dữ liệu phổ biến được sử dụng cho các ứng dụng web và máy chủ. Tuy nhiên, MySQL không còn nằm trong kho của CentOS và MariaDB đã trở thành hệ thống cơ sở dữ liệu mặc định được cung cấp. MariaDB được coi là sự thay thế bổ sung cho MySQL và sẽ là đủ nếu bạn chỉ cần một hệ thống cơ sở dữ liệu nói chung. Xem hướng dẫn về MariaDB trong CentOS 7 của chúng tôi để biết hướng dẫn cài đặt.

Nếu bạn vẫn thích MySQL, hướng dẫn này sẽ giới thiệu cách cài đặt, cấu hình và quản lý nó trên Linode chạy CentOS 7.

Cơ sở dữ liệu MySQL lớn có thể yêu cầu một lượng bộ nhớ đáng kể. Vì lý do này, chúng tôi khuyên bạn nên sử dụng aHigh Memory Linode cho các thiết lập như vậy.

Lưu ý Hướng dẫn này được viết cho người dùng không phải root. Các lệnh yêu cầu đặc quyền nâng cao có tiền tố là sudo . Nếu bạn không quen với sudo lệnh, bạn có thể xem hướng dẫn Người dùng và Nhóm của chúng tôi.

Trước khi bạn bắt đầu

  1. Đảm bảo rằng bạn đã làm theo hướng dẫn Bắt đầu và Bảo mật Máy chủ của bạn và Tên máy chủ của Linode đã được đặt.

    Để kiểm tra tên máy chủ của bạn chạy:

    hostname
    hostname -f
    

    Lệnh đầu tiên sẽ hiển thị tên máy chủ ngắn của bạn và lệnh thứ hai sẽ hiển thị tên miền đủ điều kiện (FQDN) của bạn.

  2. Cập nhật hệ thống của bạn:

    sudo yum update
    
  3. Bạn sẽ cần wget để hoàn thành hướng dẫn này. Nó có thể được cài đặt như sau:

    yum install wget
    

Cài đặt MySQL

MySQL phải được cài đặt từ kho lưu trữ cộng đồng.

  1. Tải xuống và thêm kho lưu trữ, sau đó cập nhật.

    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. Cài đặt MySQL như bình thường và khởi động dịch vụ. Trong khi cài đặt, bạn sẽ được hỏi có muốn chấp nhận kết quả từ xác minh GPG của tệp .rpm hay không. Nếu không xảy ra lỗi hoặc không khớp, hãy nhập y .

    sudo yum install mysql-server
    sudo systemctl start mysqld
    

MySQL sẽ liên kết với localhost (127.0.0.1) theo mặc định. Vui lòng tham khảo hướng dẫn truy cập từ xa MySQL của chúng tôi để biết thông tin về cách kết nối với cơ sở dữ liệu của bạn bằng SSH.

Lưu ý Không nên cho phép truy cập không hạn chế vào MySQL trên một IP công cộng nhưng bạn có thể thay đổi địa chỉ mà nó lắng nghe bằng cách sửa đổi bind-address tham số trong /etc/my.cnf . Nếu bạn quyết định ràng buộc MySQL với IP công cộng của mình, bạn nên triển khai các quy tắc tường lửa chỉ cho phép kết nối từ các địa chỉ IP cụ thể.

Máy chủ MySQL Harden

  1. Chạy mysql_secure_installation script để giải quyết một số lo ngại về bảo mật trong cài đặt MySQL mặc định.

     sudo mysql_secure_installation
    

Bạn sẽ được lựa chọn thay đổi mật khẩu gốc MySQL, xóa tài khoản người dùng ẩn danh, vô hiệu hóa thông tin đăng nhập root bên ngoài localhost và xóa cơ sở dữ liệu thử nghiệm. Bạn nên trả lời yes các tùy chọn này. Bạn có thể đọc thêm về tập lệnh trong Hướng dẫn tham khảo MySQL.

Lưu ý

Nếu MySQL 5.7 đã được cài đặt, bạn sẽ cần mật khẩu tạm thời đã được tạo trong quá trình cài đặt. Mật khẩu này được ghi trong /var/log/mysql.log và có thể nhanh chóng được tìm thấy bằng lệnh sau.

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

Sử dụng MySQL

Công cụ tiêu chuẩn để tương tác với MySQL là mysql ứng dụng khách cài đặt với mysql-server bưu kiện. Máy khách MySQL được sử dụng thông qua một thiết bị đầu cuối.

Root Login

  1. Để đăng nhập vào MySQL với tư cách người dùng gốc:

    mysql -u root -p
    
  2. Khi được nhắc, hãy nhập mật khẩu gốc mà bạn đã chỉ định khi chạy tập lệnh mysql_secure_installation.

    Sau đó, bạn sẽ được hiển thị với tiêu đề chào mừng và lời nhắc MySQL như được hiển thị bên dưới:

     mysql>
    
  3. Để tạo danh sách các lệnh cho lời nhắc MySQL, hãy nhập \h . Sau đó, bạn sẽ thấy:

     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>
    

Tạo Cơ sở dữ liệu và Người dùng MySQL Mới

  1. Trong ví dụ dưới đây, testdb là tên của cơ sở dữ liệu, testuser là người dùng và password là mật khẩu của người dùng.

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

    Bạn có thể rút ngắn quy trình này bằng cách tạo người dùng while gán quyền cơ sở dữ liệu:

     create database testdb;
     grant all on testdb.* to 'testuser' identified by 'password';
    
  2. Sau đó thoát khỏi MySQL.

    exit
    

Tạo bảng mẫu

  1. Đăng nhập lại với tư cách testuser .

    mysql -u testuser -p
    
  2. Tạo một bảng mẫu có tên là khách hàng . Thao tác này tạo một bảng có trường ID khách hàng thuộc loại INT cho số nguyên (tự động tăng dần cho các bản ghi mới, được sử dụng làm khóa chính), cũng như hai trường để lưu trữ tên của khách hàng.

    use testdb;
    create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
    
  3. Sau đó thoát khỏi MySQL.

    exit
    

Đặt lại mật khẩu gốc của MySQL

Nếu bạn quên mật khẩu MySQL gốc của mình, bạn có thể đặt lại mật khẩu này.

  1. Dừng phiên bản máy chủ MySQL hiện tại, sau đó khởi động lại nó với tùy chọn không yêu cầu mật khẩu.

    sudo systemctl stop mysqld
    sudo mysqld_safe --skip-grant-tables &
    
  2. Kết nối lại với máy chủ MySQL bằng tài khoản gốc MySQL.

    mysql -u root
    
  3. Sử dụng các lệnh sau để đặt lại mật khẩu của người chủ. Thay thế password với một mật khẩu mạnh.

    use mysql;
    update user SET PASSWORD=PASSWORD("password") WHERE USER='root';
    flush privileges;
    exit
    
  4. Sau đó khởi động lại MySQL.

    sudo systemctl start mysqld
    

Chỉnh MySQL

MySQL Tuner là một tập lệnh Perl kết nối với một phiên bản MySQL đang chạy và cung cấp các đề xuất cấu hình dựa trên khối lượng công việc. Lý tưởng nhất là phiên bản MySQL phải hoạt động ít nhất 24 giờ trước khi chạy bộ chỉnh. Phiên bản đã chạy càng lâu, MySQL Tuner sẽ đưa ra lời khuyên tốt hơn.

  1. Tải xuống MySQL Tuner vào thư mục chính của bạn.

    wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl
    
  2. Để chạy nó:

    perl ./mysqltuner.pl
    

    Bạn sẽ được hỏi về tên và mật khẩu của người dùng gốc MySQL. Kết quả sẽ hiển thị hai lĩnh vực quan tâm:Các khuyến nghị chung và Các biến số cần điều chỉnh.

MySQL Tuner là một điểm khởi đầu tuyệt vời để tối ưu hóa máy chủ MySQL nhưng sẽ rất thận trọng khi thực hiện nghiên cứu bổ sung cho các cấu hình phù hợp với (các) ứng dụng sử dụng MySQL trên Linode của bạn.

Bạn vẫn còn một số câu hỏi?

Tham gia Cộng đồng của chúng tôi và đăng câu hỏi của bạn để những người đam mê Linode và Linux khác giúp bạn.

Câu hỏi liên quan:
  • Cách cài đặt phpMyAdmin trên Centos7
  • Làm cách nào để thiết lập ngăn xếp LAMP / LEMP trên Linode của tôi?
  • Làm cách nào để chạy cả MySQL và MongoDB?

Thông tin khác

Bạn có thể muốn tham khảo các nguồn sau đây để biết thêm thông tin về chủ đề này. Mặc dù những điều này được cung cấp với hy vọng rằng chúng sẽ hữu ích, xin lưu ý rằng chúng tôi không thể đảm bảo tính chính xác hoặc kịp thời của các tài liệu được lưu trữ bên ngoài.

  • Hướng dẫn sử dụng tham chiếu MySQL 5.6
  • Hướng dẫn sử dụng PHP MySQL
  • Các ví dụ về Perl DBI cho DBD ::mysql
  • Hướng dẫn sử dụng MySQLdb
  • Hướng dẫn 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. Danh sách các thủ tục / hàm được lưu trữ Dòng lệnh Mysql

  2. Cách sửa giá trị chuỗi không chính xác trong MySQL

  3. Ví dụ về vòng lặp trong MySQL

  4. Nâng cấp MySQL lên MariaDB 10 (Phần 1 - Cài đặt MariaDB 5.5)

  5. một cách tiếp cận tốt hơn so với việc lưu trữ mật khẩu mysql ở dạng văn bản thuần túy trong tệp cấu hình?