# CentOS7怎么安裝MySQL8
## 前言
MySQL作為最流行的開源關系型數據庫之一,被廣泛應用于各種Web應用和服務中。MySQL 8.0版本帶來了諸多性能改進和新特性,如窗口函數、JSON增強、更好的性能等。本文將詳細介紹在CentOS 7系統上安裝MySQL 8.0的完整步驟,包括準備工作、安裝配置、安全設置和基本使用。
## 一、準備工作
### 1.1 系統要求
在開始安裝前,請確保您的CentOS 7系統滿足以下要求:
- 最小化安裝的CentOS 7系統
- 至少2GB內存(生產環境建議4GB以上)
- 至少10GB可用磁盤空間
- root或具有sudo權限的用戶
### 1.2 更新系統
首先更新系統軟件包到最新版本:
```bash
sudo yum update -y
sudo reboot # 如果有內核更新建議重啟
CentOS 7默認包含MariaDB,可能與MySQL沖突:
sudo yum remove mariadb* -y
sudo rm -f /etc/my.cnf
sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
sudo yum repolist enabled | grep "mysql.*-community.*"
sudo yum install -y mysql-community-server
mysql --version
# 應顯示類似:mysql Ver 8.0.xx for Linux on x86_64 (MySQL Community Server)
sudo systemctl start mysqld
sudo systemctl enable mysqld
sudo systemctl status mysqld
MySQL首次啟動會生成臨時root密碼:
sudo grep 'temporary password' /var/log/mysqld.log
# 輸出示例:2023-01-01T00:00:00.000000Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Abc123!@#
sudo mysql_secure_installation
按照提示操作: 1. 輸入臨時密碼 2. 設置新密碼(需包含大小寫字母、數字和特殊字符) 3. 移除匿名用戶(Y) 4. 禁止root遠程登錄(Y) 5. 移除測試數據庫(Y) 6. 重新加載權限表(Y)
登錄MySQL驗證:
mysql -u root -p
執行基本SQL命令:
SHOW DATABASES;
SELECT VERSION();
EXIT;
編輯MySQL配置文件:
sudo vi /etc/my.cnf
添加以下基本優化參數(根據服務器配置調整):
[mysqld]
# 通用配置
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
# 內存配置
innodb_buffer_pool_size = 1G # 建議為物理內存的50-70%
key_buffer_size = 256M
# 連接配置
max_connections = 200
wait_timeout = 300
interactive_timeout = 300
# 日志配置
slow_query_log = 1
slow_query_log_file = /var/log/mysqld-slow.log
long_query_time = 2
log_bin = mysql-bin
binlog_format = ROW
重啟MySQL使配置生效:
sudo systemctl restart mysqld
-- 創建數據庫
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 創建用戶并授權
CREATE USER 'myuser'@'%' IDENTIFIED BY 'Complex_Password123!';
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'%';
FLUSH PRIVILEGES;
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --reload
UPDATE mysql.user SET host='%' WHERE user='root';
FLUSH PRIVILEGES;
sudo systemctl stop mysqld
sudo mysqld_safe --skip-grant-tables &
UPDATE mysql.user SET authentication_string='' WHERE user='root';
FLUSH PRIVILEGES;
EXIT;
sudo systemctl restart mysqld
mysql -u root -p # 此時無密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY 'New_Password123!';
查看運行狀態:
# 查看MySQL進程
top -c | grep mysql
# 查看連接數
mysqladmin -u root -p status
# 查看慢查詢
mysqldumpslow -s t /var/log/mysqld-slow.log
確保使用utf8mb4字符集:
SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%';
使用mysqldump進行備份:
mysqldump -u root -p --all-databases > all-databases-$(date +%F).sql
創建備份腳本/usr/local/bin/mysql_backup.sh
:
#!/bin/bash
BACKUP_DIR="/var/backups/mysql"
DATE=$(date +%F)
USER="root"
PASS="Your_Password"
mkdir -p $BACKUP_DIR/$DATE
mysqldump -u$USER -p$PASS --all-databases | gzip > $BACKUP_DIR/$DATE/all-databases.sql.gz
find $BACKUP_DIR -type d -mtime +30 | xargs rm -rf
設置定時任務:
sudo chmod +x /usr/local/bin/mysql_backup.sh
sudo crontab -e
# 添加:0 2 * * * /usr/local/bin/mysql_backup.sh
sudo yum clean all
sudo yum update mysql-community-server
sudo systemctl restart mysqld
sudo systemctl stop mysqld
sudo yum remove mysql-community-*
sudo rm -rf /var/lib/mysql
sudo rm -rf /var/log/mysqld.log
sudo rm -rf /etc/my.cnf
本文詳細介紹了在CentOS 7系統上安裝配置MySQL 8.0的全過程。通過正確的安裝和優化配置,MySQL 8.0能夠為您的應用程序提供穩定高效的數據庫服務。建議定期檢查MySQL日志和性能指標,根據實際負載情況調整配置參數。
對于生產環境,還應考慮: - 設置主從復制提高可用性 - 配置定期自動備份 - 實施監控告警系統 - 定期進行安全審計
希望本指南能幫助您順利完成MySQL 8.0的安裝和配置工作。 “`
這篇文章共計約2200字,采用Markdown格式編寫,包含了從準備工作到高級配置的完整流程,并提供了常見問題解決方案和維護建議。您可以根據實際需求進一步調整內容細節。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。