安装Mysql在Centos7

597 阅读4分钟
  • 操作系统:CentOS Linux release 7.9.2009 (Core)
  • 本次安装MySQL版本:8.0.2
  1. 删除Mariadb 第一种方法
 yum remove mariadb mariadb-server
 
 rm -rf /var/lib/mysql If your **datadir** in  **/etc/my.cnf** points to a different directory, remove that directory instead of  **/var/lib/mysql**
 
 rm /etc/my.cnf
 
 删除依赖的库
 remove mariadb-libs
 
 
 下面步骤可以不要
 
 
 Optional step: `rm ~/.my.cnf`
 
 可以参考
 https://code-examples.net/en/q/1fd13d8

第二种方法

  1. 查看centos7中是否有MariaDB

rpm -qa | grep mariadb

  1. 如果有MariaDB,需要将查询到的mairadb全部卸载,否则MySQL安装会出现问题

rpm -e --nodeps 出现的软件名

  1. 查看本机是否已经安装过MySQL

rpm -qa | grep -i mysql

  1. 如果安装过MySQL,请确定是否有数据需要备份

  2. 卸载之前的MySQL

  • 将步骤3中查询到的mysql安装包全部卸载 rpm -e --nodeps 出现的软件名

  • 查找mysql文件,并将其删除

find / -name mysql
whereis mysql

find命令和whereis命令查询到的mysql文件全部删除

rm -rf 查询到的mysql路径

 删除mysql配置文件

rm /etc/my.cnf

  • 确认是否全部删除mysql

rpm -qa | grep -i mysql

如果在安装过程发生于Mariadb冲突(残留),执行下面语句

yum remove mariadb-libs 或者 yum shell remove mariadb-libs

run

在安装mysql之前,因为我们去年装过Mariadb的repo,所以这个repo是当前的repo,要么修改这个文件。 /etc/yum.repos.d下面的mariadb.repo, 里面enable=1 修改成enable=0 或者直接删除这个repo

如果有mysql的repo也一起删除。

可以参考以下文章 zhaokaifeng.com/?p=1652

  1. 找到安装包

1.png

2.png

3.png

查询服务器是x86_64架构还是arm架构

uname -m
或者是
arch
#我的服务器是x86_64的

4.png

wget cdn.mysql.com//Downloads/…

地址可以右键复制

5.png

  1. **解压该tar **

mkdir mysql

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

解压缩到创建的mysql目录

  1. 开始安装MySQL

rpm -ivh xxx.rpm

#这里选择的是全部安装 #安装顺序如下,否则会出现依赖问题 mysql-community-common-8.0.28-1.el7.x86_64.rpm mysql-community-client-plugins-8.0.28-1.el7.x86_64.rpm mysql-community-embedded-compat-8.0.28-1.el7.x86_64.rpm mysql-community-libs-8.0.28-1.el7.x86_64.rpm mysql-community-libs-compat-8.0.28-1.el7.x86_64.rpm mysql-community-devel-8.0.28-1.el7.x86_64.rpm mysql-community-client-8.0.28-1.el7.x86_64.rpm mysql-community-icu-data-files-8.0.28-1.el7.x86_64.rpm mysql-community-server-8.0.28-1.el7.x86_64.rpm mysql-community-test-8.0.28-1.el7.x86_64.rpm

  • 以上安装rpm时可能会出现centos的动态库缺失等情况,这里记录下几种错误情况

情况1:

[root@VM-0-14-centos mysql]# rpm -ivh mysql-community-embedded-compat-8.0.26-1.el7.x86_64.rpm warning: mysql-community-embedded-compat-8.0.26-1.el7.x86_64.rpm: Header V3 DSA/SHA256 Signature, key ID 5072e1f5: NOKEY error: Failed dependencies: libnuma.so.1()(64bit) is needed by mysql-community-embedded-compat-8.0.26-1.el7.x86_64 libnuma.so.1(libnuma_1.1)(64bit) is needed by mysql-community-embedded-compat-8.0.26-1.el7.x86_64 libnuma.so.1(libnuma_1.2)(64bit) is needed by mysql-community-embedded-compat-8.0.26-1.el7.x86_64

解决方式:

yum -y install numactl

情况2

[root@VM-0-14-centos mysql]# rpm -ivh mysql-community-devel-8.0.26-1.el7.x86_64.rpm warning: mysql-community-devel-8.0.26-1.el7.x86_64.rpm: Header V3 DSA/SHA256 Signature, key ID 5072e1f5: NOKEY error: Failed dependencies: pkgconfig(openssl) is needed by mysql-community-devel-8.0.26-1.el7.x86_64

解决方式

yum install openssl-devel 情况3

[root@VM-0-14-centos mysql]# rpm -ivh mysql-community-test-8.0.26-1.el7.x86_64.rpm warning: mysql-community-test-8.0.26-1.el7.x86_64.rpm: Header V3 DSA/SHA256 Signature, key ID 5072e1f5: NOKEY error: Failed dependencies: perl(Data::Dumper) is needed by mysql-community-test-8.0.26-1.el7.x86_64

解决方式

yum -y install autoconf 情况4

[root@VM-0-14-centos mysql]# rpm -ivh mysql-community-test-8.0.26-1.el7.x86_64.rpm warning: mysql-community-test-8.0.26-1.el7.x86_64.rpm: Header V3 DSA/SHA256 Signature, key ID 5072e1f5: NOKEY error: Failed dependencies: perl(JSON) is needed by mysql-community-test-8.0.26-1.el7.x86_64

解决方式

yum install perl-JSON.noarch -y yum install perl.x86_64 perl-devel.x86_64 -y 情况5

[root@VM-0-14-centos mysql]# rpm -ivh mysql-community-test-8.0.26-1.el7.x86_64.rpm warning: mysql-community-test-8.0.26-1.el7.x86_64.rpm: Header V3 DSA/SHA256 Signature, key ID 5072e1f5: NOKEY error: Failed dependencies: perl(Test::More) is needed by mysql-community-test-8.0.26-1.el7.x86_64

解决方式:

pkgs.org/download/pe… x86_64下对应的rpm,然后打开这个rpm连接,在Download对应的部分找Binary Package,后面有对应的rpm下载连接,下载下来进行安装即可` wget mirror.centos.org/centos/7/os…

  1. 初始化数据库

mysqld --initialize --console

  1. 目录授权,否则可能会启动失败

chown -R mysql:mysql /var/lib/mysql/

  1. 启动mysql

systemctl start mysqld

  1. 查询mysql状态

systemctl status mysqld

  1. 查询mysql的临时密码

cat /var/log/mysqld.log | grep password

  1. 使用临时密码登录mysql

mysql -u root -p

输入临时密码

  1. 修改mysql的登录密码

alter user 'root'@'localhost' identified with mysql_native_password by ‘你的密码’ ;

  • 注:mysql8对密码的强度有很高的要求,具体密码要求可使用以下命令查询

SHOW VARIABLES LIKE ‘validate_password%’;

最后重启下mysql即可

  1. mysql设置远程连接

show databases ;
use mysql ;

6.png

查看可登录mysql的host

select host, user from user;

host部分全部都是localhost,说明用户只能本地连接msyql服务

7.png

  • 修改root用户的host值,并刷新mysql数据库

update user set user.host=’%'where user.user=‘root’;
flush privileges;

8.png

  1. 其他情况说明
  • 连接失败的情况

    • centos7的防火墙是否开启了3306的端口

    • 云服务器的出入站规则配置情况

主要参考了以下出处 blog.csdn.net/silence_r/a…