老規矩,先總結安裝步驟:
1、查看操作系統信息,下載正確的mysql安裝包
2、檢查操作系統環境,軟件殘留,依賴包,關閉防火牆等
3、開始安裝
一、查看操作系統信息
不同的內核,使用的安裝包是不同的,所以第一步必須先驗證操作系統的內核版本,然后再去下載對應的MySQL安裝包,免得在安裝的時候才發現安裝包不可用,下圖分別展示了兩種內核的CentOS7操作系統:
uname -a
對應 MySQL的官網下載版本,圖一中的x86_64內核應該下載x86,64-bit版本
圖二中的aarch64內核應該下載ARM,64-bit版本:
aarch64版本的內核目前主要是華為雲的鯤鵬系列服務器使用,阿里雲的慣用x86_64,當然,一切以實際情況為准,眼見為實。
二、檢查系統環境
1、檢查防火牆,不關閉防火牆, 及時數據庫安裝完畢,外部也無法連接
systemctl stop firewalld #關閉防火牆
systemctl disable firewalld #關閉防火牆開機自啟
setenforce 0 #臨時關閉selinux,此命令重啟服務器后失效,如果想永久關閉,則需要修改/etc/selinux/config
永久關閉selinux的操作:
vi /etc/selinux/config
修改SELINUX參數值為disabled,然后重啟服務器即可
2、查看是否安裝了mariadb,一般情況下centos都默認安裝的,在某些MySQL5.7的小版本會有沖突,必須先卸載mariadb之后才能正常安裝,如MySQL5.7.17,但是並不是所有的版本都會沖突,所以可以先查看mariadb的安裝信息,先不卸載,在安裝MySQL的過程中報錯沖突之后再來卸載,查看命令如下:
rpm -qa|grep mariadb
卸載命令:
rpm -e <mariadb的具體信息,即上條命令的結果>
3、檢查依賴包,MySQL5.7需要兩個依賴包,如果沒有的話則可能安裝失敗
yum list installed|grep libaio
yum list installed|grep numact
如果已經安裝,則會返回具體的版本號:
反之則無信息返回,那就需要手動進行安裝,先使用yum Install命令進行安裝即可,如果服務器在局域網無法連通外網,則可以手動在阿里雲的yum源網頁中下載:http://mirrors.aliyun.com/centos/
注意找對自己的操作系統
三、開始安裝
使用二進制安裝包須使用root賬號或者擁有sudo權限
1. 安裝包保存到/usr/local
2. 解壓:
cd /usr/local
tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar
mv mysql-5.7.22-linux-glibc2.12-x86_64 mysql
3. 添加用戶組和用戶
#添加用戶組
groupadd mysql
#添加用戶mysql 到用戶組mysql
useradd -g mysql mysql
4. 創建數據存放路徑並授權,我習慣把數據存放在根目錄下的data文件夾
mkdir /data
chown -R mysql:mysql /data
5. 復制啟動文件
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
cp /bin/my_print_defaults /usr/bin/
6. 修改mysql配置項,根據自己的需求配置my.cnf文件
vi /etc/my.cnf
配置如下:
[mysqld]
basedir=/usr/local/mysql
datadir=/data
socket=/tmp/mysql.sock
user = mysql
tmpdir = /tmp
symbolic-links=0
port=3306
lower_case_table_names=1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
default_password_lifetime=0
explicit_defaults_for_timestamp=on
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error=data_path/mysql_error.log
pid-file=data_path/mysql.pid
# include all files from the config directory
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
7. 初始化數據庫
/usr/local/mysql/bin/mysqld --initialize --user=mysql > /home/mysql/initialize.log 2>&1
如果初始化失敗了,則把數據存放文件夾清空,即把/data文件夾下的所有內容刪除,然后重新執行初始化命令,重復操作知道初始化成功為止
8. 啟動MySQL
加入環境變量,編輯 /etc/profile,這樣可以在任何地方用mysql命令了
vi /etc/profile
添加mysql路徑,加入下面內容,按ESC-->:wq保存
export PATH=$PATH:/usr/local/mysql/bin
刷新立即生效
source /etc/profile
/etc/init.d/mysqld start
9. 進入MySQL修改初始密碼,修改遠程連接的用戶權限問題
查看root用戶的初始化密碼,vi /home/mysql/initialize.log
mysqladmin -uroot -p初始化密碼 password "root_123456"
創建賬號跟數據庫
CREATE USER ‘數據庫用戶名’@’%’ IDENTIFIED BY '賬號密碼密碼';
CREATE USER ‘test’@’%’ IDENTIFIED BY 'test_2020';
CREATE DATABASE `數據庫名` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL privileges ON 數據庫名.* TO '數據庫用戶名'@'%';
flush privileges;
/etc/init.d/mysqld stop
至此數據庫安裝完畢!啟停命令如下:
1、啟動
su mysql
/etc/init.d/mysqld start
exit
2、停止
su mysql
/etc/init.d/mysqld stop
exit
啟動后查看MySQL進程:
P.S.
1、如果數據庫所在服務器為阿里雲或者華為雲等網絡服務器,注意創建mysql賬號時的密碼應復雜一些,否則容易被人暴力破解,安裝挖礦病毒,挖礦病毒的處理可查看博文:https://www.cnblogs.com/fivedays/p/12572178.html