linux用rpm包方式安装MySQL8
一. Linux操作系统MySQL安装包分类
Linux操作系统MySQL安装包分为以下3类
RPM: RPM软件包是一种在Linux平台下的安装文件,通过安装命令可以很方便地安装与卸载。MySQL的RPM安装文件包分为两个:服务器和客户端,需要分别下载和安装或者下载整包,分别安装。
Generic Binaries: 二进制软件包,经过编译生成的二进制文件软件包。
源码包:MySQL数据库的源代码,用户需要自己编译成二进制文件之后才能安装
二. 系统环境
virtualBox虚拟软件安装: Redhat Enterprise Linux 7.2
三. MySQL官网下载软件包
可以直接到 mysql官网 选择对应版本进行下载。
或下载页地址:https://downloads.mysql.com/archives/community/
四. MySQL8的rpm软包安装步骤
1. 上传到tmp目录
上传已下载MySQL的RPM软件包到安装的linux服务器上。
我使用的WinSCP软件工具。
2. 解压下载的tar包
命令:tar -xvf mysql-8.0.20-1.el7.x86_64.rpm-bundle.tar
mysql-community-client-8.0.20-1.el7.x86_64.rpm 是客户端的安装包
mysql-community-server-8.0.20-1.el7.x86_64.rpm是服务端的安装包
mysql-community-devel-8.0.20-1.el7.x86_64.rpm是包含开发用的库头文件安装包
mysql-community-test-8.0.20-1.el7.x86_64.rpm是一些测试的安装包
mysql-community-embedded-compat-8.0.20-1.el7.x86_64.rpm是嵌入式MySQL的安装包
一般情况下,只需要安装Client和server两个包,如果需要c/c++ MySQL相关开发,请安装devel。
3. 切换到root
命令:su – root
4. 查检是否已安装MySQL
命令:rpm -qa|grep -I mysql
如果存在,确认不需要后卸载,
命令:rpm -ev mysql_info(上面查出来的信息)
5. 安装MySQL 8 服务端
命令:rpm -ivh /tmp/mysql-community-server-8.0.20-1.el7.x86_64.rpm
弹出警告:warning: /tmp/mysql-community-server-8.0.20-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
原因:这是由于yum安装了旧版本的GPG keys造成的
解决办法:后面加上 --force –nodeps
–force就是强制安装
–nodeps就是安装时不检查依赖关系
命令:rpm -ivh /tmp/mysql-community-server-8.0.20-1.el7.x86_64.rpm --force --nodeps
6. 启动服务
命令:service mysqld start
service 是用来管理Linux服务的
service start/stop/restart/status 启动服务/停止服务/重启服务/查看服务状态
7. 安装MySQL 8 客户端
命令:rpm -ivh mysql-community-client-8.0.20-1.el7.x86_64.rpm --force --nodeps
8. 安装完成之后,使用命令行登录
命令:mysql -u root -p
说明:mysql5.6是密码为空直接进入数据库的,但是mysql5.7之后就需要初始密码
从安装日志获取初始密码:
命令:cat /var/log/mysqld.log | grep password
再次执行命令:mysql -u root -p 回车,输入查到的初始密码,登录成功
9. 必须修改初始密码
命令:use mysql;
提示必须修改密码使用alter user语句。
密码有最基本的规则校验,默认如下:
validate_password.policy默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符
查看密码规范:SHOW VARIABLES LIKE ‘validate_password%’;
validate_password.length(密码长度)参数默认为8
可以直接按照规则设置密码,如果想设置简单密码,临时修改规则校验
mysql8.0设置策略和长度设置:
set global validate_password.policy=0;
set global validate_password.length=1;
修改密码
alter user ‘root’@‘localhost’ identified by ‘123456’;
查看当前root用户相关信息,在mysql数据库的user表中
select host, user, authentication_string, plugin from mysql.user;
host: 允许用户登录的ip‘位置’%表示可以远程;
user:当前数据库的用户名;
authentication_string: 用户密码;在mysql 5.7.9以后废弃了password字段和password()函数;
plugin: 密码加密方式
MySQL8另外一种方式登录系统修改密码:
- 修改配置文件成登录跳过密码校验
- 无密码登录后,按上述操作修改密码
- 还原配置文件,重启数据库服务
五. 创建远程用户
说明:root用户现在是localhost访问,是最大权限用户,所以我们创建普通用户,赋与相应的权限的远程用户。
1. 创建数据库:test
create database test default character set utf8mb4 collate utf8mb4_bin;
2. 创建任意IP访问的远程用户:test_admin
create user ‘test_admin’@‘%’ identified by ‘123456’;
3. 授予权限
授予test_admin远程用户test数据库的创建、修改、删除和表的增删改查的权限
grant create,alter,drop,select,insert,update,delete on test.* to test_admin@‘%’;
查看test_admin权限:
show grants for test_admin;
刷新服务使配置生效:
Flush privileges;
4. 客户端登录
virtualbox虚拟机环境:关闭防火墙或防火墙开启mysql默认3306端口。
客户端使用创建的test_admin用户登录,只有test数据库权限。
六. MySQL安装目录说明
打开mysql8安装后默认配置文件:
命令:cat /etc/my.cnf
/var/lib/mysql:日志文件和数据库
/var/log/:服务器日志
/var/run/mysqld/mysqld.pid: mysql服务进程
其他目录说明:
/usr/bin/: 客户端和脚本,如:mysql,mysqladmin等命令
/usr/sbin/: mysqld服务器,如:mysqld
七. 配置mysql开机启动
查看MySQL是不是开机自启,可以执行命令查看开机自启列表
查看mysqld开机启动:systemctl list-unit-files|grep mysqld
如果未开启:systemctl enable mysqld
再次查看:systemctl list-unit-files|grep mysqld