Trong bài viết này, chúng tôi sẽ thảo luận về cài đặt MySQL tarball nhị phân. Chúng ta sẽ thảo luận về việc cài đặt MySQL 8 bằng cách sử dụng bóng nhị phân và cài đặt MySQL 8 trên CentOS 7 bằng cách sử dụng bóng nhị phân. Cài đặt dựa trên tarballs nhị phân có ưu và nhược điểm riêng, chúng ta sẽ cùng tìm hiểu kỹ điều đó. Cài đặt từ tarballs nhị phân độc lập với bản phân phối Linux hoặc hệ thống init mà bản phân phối sử dụng. Điều này có nghĩa là phương pháp cài đặt tương tự hoạt động trên RPM và các hệ thống đã chết chẳng hạn, nhưng nó cũng sẽ hoạt động trên các bản phân phối kỳ lạ hơn như Gen 2. Có một tarball nhị phân cho macOS cũng có sẵn và quy trình cài đặt không khác nhiều, phương pháp này cần một từ thủ công hơn. Tập lệnh mysql_install_db không được chấp nhận trong MySQL 5.7 và bị xóa khỏi MySQL 8. Việc tạo cơ sở dữ liệu ban đầu có thể được thực hiện bằng lệnh mysqld –initialize. Bây giờ chúng ta sẽ cài đặt MySQL theo cách thủ công, chúng ta sẽ sử dụng lệnh mysqld –initialize để tạo một cơ sở dữ liệu trống.
Đầu tiên chúng ta hãy làm một số công việc dọn dẹp. Chúng tôi sẽ xóa phiên bản mariadb-libs rất cũ, cung cấp my.cnf sẽ xung đột với phiên bản của chúng tôi.
Xóa Mariadb libs:
[[email protected] ~] # sudo yum xóa -y mariadb-libs
Tải xuống tarball nguồn của khảo sát cộng đồng MySQL 8.0
[[email protected] ~] # curl -L -O https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-x86_64.tar .gz% Tổng% Đã nhận% Xferd Tốc độ trung bình Thời gian Thời gian Hiện tại Tải lên Tổng chi phí Tốc độ còn lại0 0 0 0 0 0 0 0 -:-:- 0:00:01 -:-:- 0100 575M 100 575 triệu 0 0 7726k 0 0:01:16 0:01:16 -:-:- 8516 nghìn
[[email protected] ~] # ll-rw-r - r--. 1 root root 603019898 23 Tháng 7 10:31 mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz
Tarball không được tải xuống vì vậy hãy giải nén nó vào usr / local
[[email protected] ~] # sudo tar xvfz mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz -C / usr / local /
Hoàn thành các yêu cầu trước
hãy cài đặt libaio.
[[email protected] ~] # sudo yum -y install libaio
Tạo một nhóm MySQL, điều này thường được thực hiện bởi các gói nhưng vì chúng tôi đang cài đặt nó theo cách thủ công từ nhị phân tarball nên bây giờ chúng tôi cần thực hiện điều đó.
[[email protected] ~] # sudo groupadd mysql
Hãy tạo một người dùng MySQL bạn
[[email protected] ~] # sudo useradd -r -g mysql -s / bin / false mysql
xác minh người dùng mysql có ở đó không
[[email protected] ~] # getent passwd | grep mysqlmysql:x:988:1001 ::/ home / mysql:/ bin / false
got / usr / local và tạo một liên kết tượng trưng rồi kiểm tra nó
[[email protected] ~] # cd /usr/local[[email protected] local] # sudo ln -s mysql-8.0.11-linux-glibc2.12-x86_64 mysql [[email protected] cục bộ] # ls -la mysqllrwxrwxrwx. 1 root root 35 Jul 23 15:08 mysql -> mysql-8.0.11-linux-glibc2.12-x86_64
tạo thư mục tệp MySQL sẽ giữ quyền sở hữu và quyền của tập dữ liệu khi đứng trong / usr / local /
[[email protected] local] # sudo mkdir mysql-files [[email protected] local] # sudo chown mysql:mysql mysql-files [[email protected] local] # sudo chmod 750 mysql-files
Khởi tạo MySQL
Đi tới thư mục mysql và Khởi tạo mysqld, trên các phiên bản trước, nó được gọi là mysql_installed_db
[[email protected] local] # cd mysql [[email protected] mysql] # sudo ./bin/mysqld --initialize --user =mysql2020-07-23T12:12:10.028247Z 0 [Hệ thống] [MY-013169] [Máy chủ] /usr/local/mysql-8.0.11-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.11) đang tiến hành khởi chạy máy chủ trong quá trình 250142020-07-23T12:12 :15.470538Z 5 [Lưu ý] [MY-010454] [Máy chủ] Mật khẩu tạm thời được tạo cho [email protected]:Hqn + jK6lfzNS2020-07-23T12:12:18.875370Z 0 [Hệ thống] [MY-013170] [Máy chủ ] /usr/local/mysql-8.0.11-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.11) khởi tạo máy chủ đã hoàn tất
Lưu ý rằng mật khẩu gốc tạm thời được tạo trong trường hợp của tôi là ([email protected]:Hqn + jK6lfzNS)
Sao chép tập lệnh init từ tệp hỗ trợ vào /etc/init.d
[[email protected] mysql] # sudo cp ./support-files/mysql.server /etc/init.d/
khởi động máy chủ mysql bằng tệp init mà chúng tôi vừa sao chép
[[email protected] mysql] # sudo /etc/init.d/mysql.server start Bắt đầu MySQL. Đăng nhập vào '/usr/local/mysql/data/localhost.localdomain.err' .. THÀNH CÔNG!Bây giờ hãy kết nối ro mysql bằng cách cung cấp mật khẩu tạm thời được tạo trước đó
[[email protected] mysql] # ./bin/mysql -uroot -pEnter password:Chào mừng bạn đến với màn hình MySQL. Các lệnh kết thúc bằng; hoặc \ g. Id kết nối MySQL của bạn là phiên bản 8Server:8.0.11Copyright (c) 2000, 2018, Oracle và / hoặc các chi nhánh của nó. Mọi quyền được bảo lưu.Oracle là thương hiệu đã đăng ký của Oracle Corporation và / hoặc các chi nhánh của nó. Các tên khác có thể là thương hiệu của các chủ sở hữu tương ứng của chúng. hoặc '\ h' để được trợ giúp. Nhập '\ c' để xóa câu lệnh nhập hiện tại.mysql>Hãy thay đổi mật khẩu tạm thời cho người dùng root.
mysql> thay đổi người dùng 'root' @ 'localhost' được xác định bởi 'My_root_pass1!'; Truy vấn OK, 0 hàng bị ảnh hưởng (0,07 giây)Kiểm tra vị trí tệp socket:
mysql> hiển thị các biến như 'socket'; + --------------- + ----------------- + | Tên_biến | Giá trị | + --------------- + ----------------- + | ổ cắm | /tmp/mysql.sock | + --------------- + ----------------- + 1 hàng trong bộ (0,01 giây)Để tránh phải luôn nhập tên đường dẫn của các chương trình khách khi bạn đang làm việc với MySQL, bạn có thể thêm thư mục / usr / local / mysql / bin vào biến PATH của mình:
[[email protected] mysql] # export PATH =$ PATH:/ usr / local / mysql / bin[[email protected] mysql] # ps -ef | grep mysqlroot 25130 1 0 15:16 pts / 1 00:00:00 / bin / sh / usr / local / mysql / bin / mysqld_safe --datadir =/ usr / local / mysql / data --pid-file =/ usr /local/mysql/data/localhost.localdomain.pidmysql 25215 25130 1 15:16 pts / 1 00:00:42 / usr / local / mysql / bin / mysqld --basedir =/ usr / local / mysql --datadir =/ usr / local / mysql / data --plugin-dir =/ usr / local / mysql / lib / plugin --user =mysql --log-error =localhost.localdomain.err --pid-file =/ usr / local /mysql/data/localhost.localdomain.pidroot 26171 21375 0 16:21 pts / 1 00:00:00 mysql -uroot -px xxxxxxxxxxxxroot 26191 25365 0 16:23 pts / 2 00:00:00 grep --color =auto mysq