原创文章,转载请注明出处
一、安装数据库
先提个醒:用yum安装因网络原因,可能需要安装一小时以上,还有就是请先关闭centos防火墙或者开放3306端口。
下载mysql社区版的yum源
下载对应linux系统版本下载,并上传到服务器上
执行安装yum源命令
yum -y localinstall mysql80-community-release-el8-1.noarch.rpmyum makecache #重置yum缓存
可以执行语句检查是否已经安装好yum源
yum repolist enabled | grep "mysql.*-community.*"
安装好的repo文件在
/etc/yum.repos.d/mysql-community.repo
以下语句可以查看yum源所有mysql版本,我这里只有8.0
yum repolist all | grep mysql
直接运行yum命令安装mysql数据库,安装之后就是最新版本
yum -y install mysql-community-server
但是出现如下
错误
此时需要先屏蔽linux8的mysql模块,然后再次执行上面的安装语句即可
yum module disable mysql
经过漫长的等待终于安装完成,安装后数据库为超级管理员root用户创建了默认登录密码
systemctl start mysqldgrep 'temporary password' /var/log/mysqld.log
用上面查询出来的密码登录,至此数据安装完成。
mysql -uroot -p
二、修改root用户为简单密码
默认密码太难记,修改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 '123456'; #再次更改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