- 操作系统:CentOS Linux release 7.9.2009 (Core)
- 本次安装MySQL版本:8.0.2
- 删除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
第二种方法
- 查看centos7中是否有MariaDB
rpm -qa | grep mariadb
- 如果有
MariaDB,需要将查询到的mairadb全部卸载,否则MySQL安装会出现问题
rpm -e --nodeps 出现的软件名
- 查看本机是否已经安装过MySQL
rpm -qa | grep -i mysql
-
如果安装过
MySQL,请确定是否有数据需要备份 -
卸载之前的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
- 找到安装包
查询服务器是x86_64架构还是arm架构
uname -m
或者是
arch
#我的服务器是x86_64的
wget cdn.mysql.com//Downloads/…
地址可以右键复制
- **解压该tar **
mkdir mysql
tar -xvf mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar -C ./mysql
解压缩到创建的mysql目录
- 开始安装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…
- 初始化数据库
mysqld --initialize --console
- 目录授权,否则可能会启动失败
chown -R mysql:mysql /var/lib/mysql/
- 启动mysql
systemctl start mysqld
- 查询mysql状态
systemctl status mysqld
- 查询mysql的临时密码
cat /var/log/mysqld.log | grep password
- 使用临时密码登录mysql
mysql -u root -p
输入临时密码
- 修改mysql的登录密码
alter user 'root'@'localhost' identified with mysql_native_password by ‘你的密码’ ;
- 注:mysql8对密码的强度有很高的要求,具体密码要求可使用以下命令查询
SHOW VARIABLES LIKE ‘validate_password%’;
最后重启下mysql即可
- mysql设置远程连接
show databases ;
use mysql ;
查看可登录mysql的host
select host, user from user;
host部分全部都是localhost,说明用户只能本地连接msyql服务
- 修改
root用户的host值,并刷新mysql数据库
update user set user.host=’%'where user.user=‘root’;
flush privileges;
- 其他情况说明
-
连接失败的情况
-
centos7的防火墙是否开启了3306的端口
-
云服务器的出入站规则配置情况
-
主要参考了以下出处 blog.csdn.net/silence_r/a…