一、下载安装文件
先到官网下载rpm包
https://dev.mysql.com/downloads/mysql/
放到服务器,解压之后会出来好多个rpm文件,服务器上只需要安装几个就行了
二、开始安装
在开始安装之前,如果centos中安装了mariadb数据库,则需要先删除,如果没有安装则可以继续安装mysql
rpm -qa | grep mariadb -- 查看mariadb安装包
我没有安装,所以不需要删除。
根据官网提示,大部分情况只需要安装其中的几个rpm包
发现解压出来的文件,并没有
mysql-community-libs-compat 这个rpm包,其实这个不装也可以的,但是其他几个的安装有先后顺序。
应当按照common–>libs–>client–>server的顺序安装,否则安装过程会提醒依赖,其他的为非必须安装包。
yum install -y mysql-community-common-8.0.22-1.el8.x86_64.rpm
yum install -y mysql-community-client-plugins-8.0.22-1.el8.x86_64.rpm -- 在安装libs的时候会提示依赖client-plugins所以提前安装
yum install -y mysql-community-libs-8.0.22-1.el8.x86_64.rpm
yum install -y mysql-community-client-8.0.22-1.el8.x86_64.rpm
yum install -y mysql-community-server-8.0.22-1.el8.x86_64.rpm
以上命令运行完成之后,可以通过以下命令检查是否安装成功
rpm -qa|grep mysql
根据官网给出的目录结构
也可以通过rpm的命令查看安装目录做对比
rpm -ql mysql-community-server-8.0.22-1.el8.x86_64
三、启动mysql并登录
安装完mysql数据库默认是不启动的,运行命令启动
systemctl start mysqld
初次启动比较慢,等一下就好了,启动完之后,查看数据库状态
systemctl status mysqld
从图中可以看出启动成功,通过root用户登录,先找到自动生成的密码
grep 'temporary password' /var/log/mysqld.log
默认密码太难记,修改root的密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
出现了这个错误是因为mysql8有密码策略要求,需要一个复杂的密码,例如
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Kww@123456';
那么到底密码策略有哪些要求呢,可以用个以下命令查看
show variables like '%password%';
validate_password.policy:密码策略,默认为MEDIUM策略
validate_password.dictionary_file:密码策略文件,策略为STRONG才需要
validate_password.length:密码最少长度
validate_password.mixed_case_count:大小写字符长度,至少1个
validate_password.number_count:数字至少1个
validate_password.special_char_count:特殊字符至少1个
上述参数是默认策略
MEDIUM的密码检查规则。
修改密码策略:
在
/etc/my.cnf 文件修改密码策略,在
[mysqld]项下添加如下配置
#设置为ON的时候表示能将密码设置成当前用户名validate_password.check_user_name=OFF#密码最小长度validate_password.length=4#大小写字符长度,至少1个validate_password.mixed_case_count=0#数字最小个数validate_password.number_count=0#密码策略(0=LOW,1=MEDIUM,2=STRONG)validate_password.policy=0#特殊字符数validate_password.special_char_count=0
重新启动mysql服务使配置生效:
systemctl restart mysqld
重新查看密码策略发现已经生效了
现在可以为root用修改简单密码了,例如修改为123456
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
四、设置远程连接数据库
虽然现在可以登陆了,但是只能在本地登录,远程ip登录或者第三方工具连接是不行的,切换到mysql数据库查看用户权限
use mysql; #切换到mysql数据库
select host, user from user;
update user set host='%' where user='root'; #把root用户改为任意IP都可以登录
flush privileges; #刷新权限
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码'; #再次更改root用户密码,使其可以在任意IP访问
flush privileges; #刷新权限
select host,user,plugin from user; #查看修改后的用户状态
使用第三方工具连接数据库,我下面用的是DataGrid
截图里的完整URL
jdbc:mysql://数据库IP地址:3306/mysql?characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai