一、准备Linux服务器
- 云服务器或者虚拟机都可以
- Linux版本为CentOS7
二、下载Linux版MySQL安装包
官网:https://downloads.mysql.com/archives/community/
选择对应的版本
- Product Version:8.0.33
- Operating System:Red Hat Enterprise Linux Oracle Linux
- OS Version:Red Hat Enterprise Linux 7 Oracle Linux 7 (x86,64-bit)
三、上传MySQL安装包
3.1 通过XShell7直接将安装拖到Linux目录上
3.2 在root用户的家目录下创建mysql文件夹(保存解压文件)
mkdir mysql
3.3 解压
tar -xvf mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar -C mysql
执行这条命令将压缩包解压并存放到mysql文件夹中
- 查看解压文件:
cd mysql/
ll
可以看到,解压出来的安装包都是rpm为后缀的安装包,接下来就开始安装这些rpm包了
四、安装rpm安装包
切换到mysql目录下,因为对于rpm的包资源管理器来说,它是不会处理它们的依赖关系的,所以要按照一定的顺序安装,依次执行如下命令:
cd mysql/
rpm -ivh mysql-community-common-8.0.33-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.33-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.33-1.el7.x86_64.rpm
注意:在执行第三条rpm指令时,可能会报与Linux自带的mariadb冲突的错误,错误提示如下:
- `warning: mysql-community-libs-8.0.33-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 3a79bd29: NOKEY error: Failed dependencies:
- mariadb-libs is obsoleted by mysql-community-libs-8.0.33-1.el7.x86_64
此时执行
rpm -e mariadb-libs --nodeps
语句,然后再执行第三条rpm指令即可
rpm -ivh mysql-community-libs-compat-8.0.33-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.33-1.el7.x86_64.rpm
- 注意:在执行第五条rpm指令时,会报一个依赖检测失败的错误,需要一个
pkgconfig(openssl)
的依赖,此时就需要安装这个依赖,执行指令yum install openssl-devel
进行安装,之后再执行第五条指令即可安装客户端:
rpm -ivh mysql-community-client-8.0.33-1.el7.x86_64.rpm
安装服务端:
rpm -ivh mysql-community-server-8.0.33-1.el7.x86_64.rpm --nodeps --force
- 具体操作:
五、启动MySQL服务
- 启动服务:
systemctl start mysqld
- 重启服务:
systemctl restart mysqld
- 关闭服务:
systemctl stop mysqld
- 查询自动生成的root用户密码:
cat /var/log/mysqld.log
- 完成mysql登录:
mysql -uroot -p
- 修改MySQL密码:
打开MySQL官方文档:https://dev.mysql.com/doc/refman/8.0/en/
搜索validate_password查看
- 密码校验的信息:
- 设置校验规则:
- 设置之前需要先设置一个符合原校验规则(即长度为8位,包含数据、字母大小写和特殊字符)的密码,再执行如下指令:
set global validate_password.policy = 0;
set global validate_password.length=4;
设置完上述指令后,即可设置简单密码(如1234)
六、创建用户
默认的root用户只能当前节点1oca1host访问,是无法远程访问的,我们还需要创建一个root账户,用户远程访问(在所有主机上均可访问)
create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '1234';
- 分配权限(所有)
grant all on *.* to 'root'@'%';
- 远程连接,这里使用DataGrip演示:
- 1.添加数据库:
- 2.输入Linux的ip地址,输入mysql用户名和密码
注意:这里可能会提示连接失败,需要查看Linux的防火墙是否开启了3306端口的监听
- Linux防火墙检查3306端口:
netstat -tunlp | grep 3306
- 配置防火墙规则:
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
此时,还要注意mysql的时区设置:
- 检查Linux中mysql的时区:
show variables like '%time_zone%';
- 设置时区:
set global time_zone = '+8:00';
重启mysql后再次检查,完成即可,此时进行远程连接,提示成功连接