1. 卸载mariadb

# 一般centos7会默认安装mariadb, 新安装的mysql8会与它造成依赖冲突,可以按下列方式进行卸载:

rpm -qa | grep mariadb

#如果出现

mariadb-libs-5.5.68-1.el7.x86_64

#执行

rpm -e mariadb-libs --nodeps

我使用的是阿里云轻量级ECS服务器,没有安装mariadb

2. 下载mysql8的rpm文件(目前这个链接是可用的)

wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.31-1.el7.x86_64.rpm-bundle.tar

#下载完成后创建目标文件夹,将其解压

cd /opt

mkdir mysql

tar -xvf mysql-8.0.31-1.el7.x86_64.rpm-bundle.tar -C /opt/mysql

#然后会出现以下几个安装包

mysql-community-client-8.0.31-1.el7.x86_64.rpm

mysql-community-client-plugins-8.0.31-1.el7.x86_64.rpm

mysql-community-common-8.0.31-1.el7.x86_64.rpm

mysql-community-debuginfo-8.0.31-1.el7.x86_64.rpm

mysql-community-devel-8.0.31-1.el7.x86_64.rpm

mysql-community-embedded-compat-8.0.31-1.el7.x86_64.rpm

mysql-community-icu-data-files-8.0.31-1.el7.x86_64.rpm

mysql-community-libs-8.0.31-1.el7.x86_64.rpm

mysql-community-libs-compat-8.0.31-1.el7.x86_64.rpm

mysql-community-server-8.0.31-1.el7.x86_64.rpm

mysql-community-server-debug-8.0.31-1.el7.x86_64.rpm

mysql-community-test-8.0.31-1.el7.x86_64.rpm

3. 安装

yum install -y perl.x86_64

rpm -ivh mysql-community-common-8.0.31-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-8.0.31-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-8.0.31-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-8.0.31-1.el7.x86_64.rpm

4、安装openssl

openssl官网为https://www.openssl.org/source/,找到需要下载的openssl版本,这里选择最新 openssl-1.1.1s.tar.gz 版本

# 下载openssl

cd /usr/local

wget https://www.openssl.org/source/openssl-1.1.1s.tar.gz

如果提示 To connect to www.openssl.org insecurely, use `--no-check-certificate'.

则使用以下命令:

wget https://www.openssl.org/source/openssl-1.1.1s.tar.gz --no-check-certificate

# 安装openssl

tar -xzvf openssl-1.1.1s.tar.gz

cd openssl-1.1.1s

# 将安装文件的路径指定为/usr/local/openssl 目录

./config --prefix=/usr/local/openssl

# 在指定的 /usr/local/openssl目录下安装openssl

make && make install

# 如果openssl路径不对,也可以使用软连接

ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

# 查看openssl当前版本

openssl version

# 将openssl添加到动态库的环境变量

vim /etc/ld.so.conf

添加以下内容,然后保存退出

/usr/local/openssl/lib

# 应用配置

ldconfig /etc/ld.so.conf

5、安装gcc

如果安装openssl的时候系统提示没有gcc:未找到gcc命令 或 gcc not found / gcc not exist

这时执行:

yum install gcc

安装好后重新执行 make && make install 安装openssl

6、mysql8安装失败卸载

# 查询安装

rpm -qa | grep -i mysql

# 卸载mysql

#使用rpm -e 命令卸载mysql安装包

# 删除mysql相关的服务

chkconfig --list | grep -i mysql

chkconfig --del mysql

# 删除系统中分散的mysql文件夹

find / -name mysql

# 清空mysql相关的所有目录以及文件

rm -rf

7、启动

# 启动

systemctl start mysqld

# 查看启动状态

systemctl status mysqld

8、修改密码

# 查看初始密码

grep 'temporary password' /var/log/mysqld.log

# 使用日志中查询到的密码登录

mysql -uroot -p

# 如果需要使用简单密码,首先需要将密码修改成复杂密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'AB!@#¥%&';

# 调整MySQL8密码验证规则:

set global validate_password.policy=0;

set global validate_password.length=1;

如果不修改密码,执行上面命令会提示:

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

# 再次将密码修改成简单密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

# 刷新权限

GRANT ALL PRIVILEGES ON *.* TO 'root'@'local' WITH GRANT OPTION;

FLUSH PRIVILEGES;

9、设置mysql远程连接

用软件登陆Mysql8数据库时,会报错:Authentication plugin 'caching_sha2_password' cannot be loaded。

出现这个原因是mysql8之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password。

解决问题方法有两种,一种是升级客户端驱动, 另一种是把mysql用户登录密码加密规则还原成mysql_native_password。简单起见我们采用第二种,修改加密规则:

1、登录Mysql:

mysql -u root -p

# 修改加密规则,

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

# 更新一下用户的密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

2、 修改用户root的localhost为‘%’

update user set host = '%' where user = 'root' and host='localhost';

3、重置密码

alter user 'root'@'%' identified WITH mysql_native_password by '123456';

4、刷新权限

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

FLUSH PRIVILEGES;

最后最好重启一次mysql

 

安装mysql经常遇到的问题

一、mysql8 error while loading shared libraries: libssl.so.10: cannot open shared object

https://vault.centos.org/centos/8/AppStream/x86_64/os/Packages/compat-openssl10-1.0.2o-3.el8.x86_64.rpm

在centos安装mysql8的过程中,提示报错mysql: error while loading shared libraries: libssl.so.10: cannot open shared object file: No such file or directory;

安装compat-openssl10-1.0.2o-3.el8.x86_64

下载地址:https://centos.pkgs.org/8/centos-appstream-x86_64/compat-openssl10-1.0.2o-3.el8.x86_64.rpm.html

rpm -ivh compat-openssl10-1.0.2o-3.el8.x86_64.rpm