1.下載mysql安裝包
可以在以下網站下載,找到想要安裝的版本
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
由於是離線安裝,我選擇 mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar
2.卸載包含mariadb關鍵字的RPM包
執行如下命令,查看是否含有mariadb包
rpm -qa|grep mariadb
如返回如圖,則卸載,沒有的話不要管
執行卸載命令
rpm -e mariadb-libs-5.5.44-2.el7.centos.x86_64 --nodeps
3.安裝
tar xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar
或者
tar --no-same-owner -xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar
執行後,全部暴力安裝
rpm -Uvh *.rpm --nodeps --force
4.啓動mysql服務
systemctl start mysqld
5.查看mysql狀態
systemctl status mysqld
或
ps -le | grep mysqld
6.設置開機啓動
systemctl enable mysqld
systemctl daemon-reload
7.修改本地root密碼
mysql安裝完成之後,在/var/log/mysqld.log文件中給root生成了一個默認密碼。通過以下命令找到密碼:
登錄MySQL,使用剛纔找到的密碼
mysql -u root -p
設置新密碼
set password for 'root'@'localhost'=password('why@0321');
如果報 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
則因爲不符合密碼策略
解決辦法:
輸入語句進行查看
SHOW VARIABLES LIKE 'validate_password%';
如果報 ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
則可跳過查看直接執行 以下命令,將密碼策略降到最低
set global validate_password_policy=LOW;
再執行重設密碼命令
set password for 'root'@'localhost'=password('why@0321');
如果還不行,基本就是因爲密碼太過簡單
8.修改遠程登錄密碼
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'why@0321' WITH GRANT OPTION;
刷新MySQL的系統權限相關表,否則會出現拒絕訪問
flush privileges;
9.創建mysql相關文件夾
mkdir /hdata
mkdir /hdata/mysql_data
mkdir /hdata/mysql_data/data
mkdir /hdata/mysql_data/log
mkdir /hdata/mysql_data/binlog
9.修改mysql配置 /etc/my.conf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[mysqld]
port=3308
character_set_server=utf8
init_connect='SET NAMES utf8'
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/hdata/mysql_data/data
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-error=/hdata/mysql_data/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
server-id=1
log-bin=/hdata/mysql_data/binlog/bin-log
max_allowed_packet=10485760
max_connections=1000
default-time-zone = '+08:00'
10.將/var/lib/mysql拷貝到/opt/mysqldata
cp -r /var/lib/mysql/* /hdata/mysql_data/data
修改mysql數據目錄和日誌目錄文件夾屬性
chown -R mysql:mysql /hdata/mysql_data
11.重啓mysql
systemctl restart mysqld
查看mysql啓動狀態
systemctl status mysqld
如果修改端口後,無法啓動mysql,一般是因爲系統安全設置,可以嘗試使用命令:
setenforce 0
然後再重啓。
如果啓動仍然異常,查看下mysql的啓動情況
ps -ef|grep mysql
殺掉所有mysql相關進程,再重新啓動