系统环境
操作系统: CentOS 7.5 64位
数据库 : MySQL 8.0.13 -->待安装
建议最好安装5.7版本的Mysql,因为Mysql存在很多兼容问题,且现在很多系统都用的是5.x版本的Mysql
安装步骤
卸载系统自带的mariadb-lib。centos7 已经不支持MySQL,因为收费了,所以内部集成了mariadb,而安装MySQL的话会和mariadb的文件冲突,所以需要先卸载掉mariadb。
查看mariadb版本
rpm -qa | grep mariadb
卸载mariadb
rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps
重启
到镜像网站去下载自己所需的tar包,这里给出一个网址。一开始我是去官网下的rpm包来安装,速度十分感人,只有几十KB/s。
MySQL镜像
使用tar命令解压MySQL安装包,得到如下红色字体标注的rpm
接下来要按照一定的顺序安装。
必须安装
rpm -ivh mysql-community-common-8.0.17-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.17-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.17-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.17-1.el7.x86_64.rpm
非必须,个人选择安装,同样有安装顺序
rpm -ivh mysql-community-libs-compat-8.0.17-1.el7.x86_64.rpm
rpm -ivh mysql-community-embedded-compat-8.0.17-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.17-1.el7.x86_64.rpm
rpm -ivh mysql-community-test-8.0.17-1.el7.x86_64.rpm
安装过程中可能会出现的问题(都遇到了。。。。缺失各种依赖)
1.出现问题:
error:
Failed dependencies:
libnuma.so.1()(64bit) is needed by mysql-community-server-8.0.13-1.el7.x86_64 libnuma.so.1(libnuma_1.1)(64bit) is needed by mysql-community-server-8.0.13-1.el7.x86_64 libnuma.so.1(libnuma_1.2)(64bit) is needed by mysql-community-server-8.0.13-1.el7.x86_64
解决办法:
yum install numactl
2.出现问题:
error:
Failed dependencies:
pkgconfig(openssl) is needed by mysql-community-devel-8.0.13-1.el7.x86_64
解决办法:
yum install openssl-devel.x86_64 openssl.x86_64 -y
3.出现问题:
error:
Failed dependencies:
perl(Data::Dumper) is needed by mysql-community-test-8.0.13-1.el7.x86_64
解决办法:
yum -y install autoconf
4.出现问题:
error:
Failed dependencies:
perl(JSON) is needed by mysql-community-test-8.0.13-1.el7.x86_64
解决办法:
yum install perl.x86_64 perl-devel.x86_64 -y
yum install perl-JSON.noarch -y
对数据库进行初始化
mysqld --initialize --console
对MySQL目录进行授权
chown -R mysql:mysql /var/lib/mysql/
启动MySQL服务
systemctl start mysqld
停止命令为:service mysqld stop
查看MySQL服务的状态
service mysqld status
查看临时密码
cat /var/log/mysqld.log
用临时密码登陆数据库,同时修改密码
mysql -u root -p + 回车. 然后输入临时密码,再输入下一条命令修改密码
alter USER 'root'@'localhost' IDENTIFIED BY '新密码(必须包含:数字大小写字母特殊字符)';
授权MySQL的远程登陆
查看所有用户是否可以远程连接,依次执行下列命令:
show databases;
use mysql;
select host, user, authentication_string, plugin from user;
可以看到我这里root用户的主机已经修改为任意IP了,默认是localhost的,即只能本地登陆。
修改root用户host值,这样就能让root用户远程登陆
update user set host = "%" where user='root';
刷新
flush privileges;
使用MySQL客户端登陆数据库
建议使用8.0+版本的Navicat,因为MySQL8之前的版本中加密规则是mysql_native_password。
而在MySQL8之后,加密规则是caching_sha2_password。可能会出现Client does not support authentication protocol requested by server;
面对这种错误,你可以升级Navicat驱动,也可以把MySQL用户登录密码加密规则还原成mysql_native_password.
alter USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root用户的密码';
flush privileges;