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.cnf
# 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相关进程,再重新启动