1 下载mysql5.7对应版本
https://downloads.mysql.com/archives/community/
Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit), RPM Bundle
mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar
2 卸载系统自带的Mariadb或mysql
rpm -qa|grep mariadb //查询出已安装的mariadb
rpm -qa | grep mysql
rpm -e --nodeps 文件名 //卸载 , 文件名为使用rpm -qa|grep mariadb 命令查出的所有文件
3 解压并执行安装命令
tar -xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar
rpm -Uvh *.rpm --nodeps --force
4 从安装日志中获取默认密码
# 不知用日志在哪就用这个命令找
find / -name mysqld.log
# 如果mysql日志是空的,需要启动mysql才能看到日志
systemctl start mysqld
# 获取默认密码
awk '/temporary password/{print $11}' /var/log/mysqld.log|xargs
5 修改配置文件/etc/my.cnf,关闭密码校验并重启
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
skip-name-resolve
# 跳过授权,即免密登录,可以通过这个方式改密码,这里不采用
# skip-grant-tables
#设置3306端口
port=3306
socket=/var/lib/mysql/mysql.sock
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
# 关闭密码校验
validate_password=OFF
6 重启mysql并使用安装默认密码登录mysql
service mysqld restart # 二取一
systemctl restart mysqld
# 登录mysql
mysql -uroot -p{default_password}
7 修改密码, 修改后重启mysql
# 修改密码
ALTER user 'root'@'localhost'IDENTIFIED BY '12345678';
# 刷新权限
flush privileges
8 设置mysql远程连接
use mysql;
update user set host = '%' where user = 'root';
9 修改密码备用方法(以上方式不能改密码就用这个)
#输入命令回车进入,出现输入密码提示直接回车
mysql> set password for root@localhost = password('123456');
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
mysql> flush privileges; #更新权限
Query OK, 0 rows affected (0.00 sec)
mysql> set password for root@localhost = password('123456');
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql>flush privileges; #更新权限
mysql>quit; #退出
service mysqld stop # 停止mysql服务, 恢复mysql配置
vim /etc/my.cnf #修改配置文件
# Disabling symbolic-links is recommended to prevent assorted security risks
# skip-grant-tables # 注释掉这句话
symbolic-links=0
service mysqld start # 启动mysql服务
mysql -uroot -p # 输入新密码登录
10 设置mysql开机自启(如果源码安装需要手动设置,这里不需要)
systemctl enable mysqld