Centos7,MySQL 5.7.23(穩定版) 生產環境,二進位制壓縮包官網安裝步驟
阿新 • • 發佈:2019-01-06
1、進入MySQL官網,下載二進位制tar.gz壓縮包
進入 MySQL Community Server 5.7 » mysql 5.7社群版下載頁面。
選擇版本、型別 然後進入下載地址。
不登入可以直接下載,下載後上傳至伺服器即可;或者直接右擊複製下載地址,在伺服器用wget命令下載。
2、解壓安裝二進位制tar,gz壓縮包
解壓剛剛下載的tar.gz 壓縮檔案,並移動至/usr/local/mysql
shell> tar -xvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
shell> mv mysql-5.7.23-linux-glibc2.12-x86_64 /usr/local/mysql
安裝依賴命令
shell> yum install libaio
建立mysql使用者、使用者組、配置環境變數
shell> groupadd -g 27 -o -r mysql #註釋:groupadd -g27 和 -o 選項用於分配一個非唯一的 group ID (GID), -r 選項使組成為系統組。 shell> useradd -M -N -g mysql -o -r -d /usr/local/mysql/data -s /bin/false -c "MySQL Server" -u 27 mysql #註釋 -M 選項為防止建立使用者主目錄 # -N 選項表示應該將使用者新增到 -g 選項指定的group中。 # -o 和 -u 27選項分配一個非唯一使用者ID (UID)。 # -r 和 -s /bin/false 選項建立的使用者不需要登入伺服器主機。mysql使用者僅用於所有權目的,而不用於登入。 # -d 選項指定使用者登入目錄,該目錄設定為MySQL資料目錄路徑。此次安裝 本機mysql的資料目錄為 /usr/local/mysql/data (安裝目錄可根據實際需求更改) # -c 選項指定了一個描述,mysql使用者 的註釋 shell> export PATH=/usr/local/mysql/bin:$PATH #將 mysql bin目錄新增至系統環境變數
建立用於匯入和匯出操作的安全目錄
為了限制檔案特權的範圍,建立一個使用者可以安全地使用檔案特權進行匯入和匯出操作的目錄。在此部署中,建立的目錄名為mysql-files
shell> cd /usr/local/mysql #進入mysql目錄
shell> mkdir mysql-files #建立資料夾
shell> chown mysql:mysql mysql-files #將 mysql-files 資料夾的 所屬組、所屬使用者 配置為 mysql組、mysql使用者
shell> chmod 750 mysql-files #將 mysql資料夾許可權配置為 750 即 所屬使用者擁有(讀、寫、執行)許可權;所屬組擁有(讀)許可權;其他使用者無許可權
# (linux檔案、資料夾許可權本文不做詳細講解)
3、初始mysql配置
建立mysql配置檔案、並分配許可權
shell> cd /etc
shell> touch my.cnf #建立 mysql 配置檔案 my.cnf
shell> chown root:root my.cnf #將mysql 配置檔案的所屬組、所屬使用者 配置為 root組、root使用者
shell> chmod 644 my.cnf #將mysql配置檔案的許可權設定為 644 即 所屬使用者擁有(讀、寫)許可權;所屬組擁有(讀)許可權;其他使用者擁有(讀)許可權
shell> vim my.cnf #編輯配置檔案 配置內容如下
my.cnf 檔案內容
[mysqld]
datadir=/usr/local/mysql/data # mysql資料儲存目錄
socket=/tmp/mysql.sock
port=3306
log-error=/usr/local/mysql/data/localhost.localdomain.err
user=mysql #固定使用者
secure_file_priv=/usr/local/mysql/mysql-files #設定匯入匯出檔案目錄
local_infile=OFF #為了避免載入資料的本地版本可能出現的安全問題,請確保預設啟用local_infile
max_connections = 200 # 支援的最大併發連結數,這個根據實際業務需求去設定
query_cache_size = 100M #指定MySQL查詢緩衝區的大小,本機記憶體為2G 設定100M左右即可
thread_cache_size = 15 # 快取的最大執行緒數,本機記憶體2G 設定15個左右即可
wait_timeout = 20 #(秒)指定一個請求的最大連線時間,預設為28800 (八小時)
expire_logs_days = 30 #超過30天的binlog刪除
long_query_time = 1 #慢查詢時間 超過1秒則為慢查詢
slow_query_log_file = /etc/mysql/slow.log #查詢日誌檔案
lower_case_table_names = 1 #不區分大小寫
初始化資料目錄
shell> cd /usr/local/mysql
shell> mkdir data #床架mysql用於存放資料的資料夾
shell> chmod 750 data #設定許可權
shell> chown mysql:mysql data #分配資料夾 所屬組、所屬使用者
shell> bin/mysqld --defaults-file=/etc/my.cnf --initialize #初始化資料目錄
#初始化的資訊輸出到了my.cnf中配置的 log-error 所在的錯誤日誌檔案中,其中包括初始的隨機密碼;結果如下圖
4、mysql啟動服務配置
shell> cd /usr/lib/systemd/system
shell> touch mysqld.service #建立mysql服務檔案
shell> chmod 644 mysqld.service #配置許可權
shell> vim mysqld.service #編輯服務檔案
#=================mysqld.service 檔案內容 start=================
[Unit]
Description=MySQL Server
Documentation=man:mysqld(7)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
Type=forking
PIDFile=/usr/local/mysql/data/mysqld.pid #pid檔案為 mysql存放資料的資料夾下
TimeoutSec=0 # 為mysqld服務禁用系統的服務啟動和停止超時邏輯。
# 啟動主服務 指定啟動服務檔案 預設配置檔案 pid檔案
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --daemonize --pid-file=/usr/local/mysql/data/mysqld.pid $MYSQLD_OPTS
EnvironmentFile=-/etc/sysconfig/mysql
# Sets open_files_limit
LimitNOFILE = 5000
Restart=on-failure
RestartPreventExitStatus=1
PrivateTmp=false
#======================== end ========================================
配置 systemd tmpfiles特性
#配置 systemd tmpfiles特性
shell> cd /usr/lib/tmpfiles.d
shell> touch mysql.conf
shell> chmod 644 mysql.conf
shell> vim mysql.conf
#==========mysql.conf 檔案內容===============
d /usr/local/mysql/data 0750 mysql mysql -
#=============== end ================
設定mysql服務開機啟動、啟動服務、檢視服務啟動狀態、停止服務
shell> systemctl enable mysqld.service #設定服務開機啟動 或者 systemctl enable mysqld
shell> systemctl start mysqld.service #開啟服務
shell> systemctl status mysqld.service #檢視服務當前狀態
shell> systemctl stop mysqld.service #停止服務
服務啟動成功狀態
5、重置mysql root賬戶密碼
shell> cd /usr/local/mysql/bin #進入mysql bin目錄
shell> ./mysql -uroot -p
#Enter password: 然後輸入剛剛的臨時密碼 進入mysql命令列
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密碼';
#Query OK, 0 rows affected (0.00 sec) 修改成功
6、開啟防火牆埠
shell> firewall-cmd --zone=public --add-port=3306/tcp --permanent # --permanent選項為永久生效,沒有此引數重啟後失效
shell> firewall-cmd --reload #重新載入防火牆