Contos7 安装MySQL8.0

305 阅读3分钟

一、MySQL8.0安装

yum -y install wget(安装wget)

yum -y install vim*(安装vim)

wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm(下载rpm包)

yum -y install mysql80-community-release-el7-3.noarch.rpm(安装下载好的rpm包)

yum -y install mysql-community-server(安装MySQL服务器)

service mysqld start(启动MySQL服务)

image.png

grep "password" /var/log/mysqld.log(从日志里面找到初始密码)

image.png

mysql -uroot -p(用初始密码登录,比如上面截图的是我的初始密码TgLn(rdvlpl)

set global validate_password.policy=0;(默认是1,符合长度,必须含数字,小写或大写字母,特殊字符,改成0)

set global validate_password.length=4;(更改密码长度,密码最小长度为4)

alter user 'root'@'localhost' identified by '123456';(修改密码为123456)

image.png

安装完成:用户名root,密码123456

二、忘记密码的操作

vim /etc/my.cnf(编辑文件)

skip-grant-tables(在配置文件增加这一行字符,增加后无需密码也可以连接,注意最后要删除掉,要不然可视化工具无法连接MySQL)

image.png

service mysqld restart(重启数据库服务器)

再次登录数据库服务器是不用密码的:

mysql -uroot

update mysql.user set authentication_string="" where user="root";

flush privileges;

如何设置简单的密码需修改密码策略才可以使用简单密码:

set global validate_password.policy=0;(默认是1,符合长度,必须含数字,小写或大写字母,特殊字符)

set global validate_password.length=4;(更改密码长度,密码最小长度为4)

alter user 'root'@'localhost' identified with mysql_native_password by '123456';(使用mysql_native_password加密方式,修改密码为root密码为123456**)**

flush privileges;(刷新)

!删除/etc/my.cnf配置文件中刚才添加的skip-grant-tables字符串,再重启数据库服务器。

设置简单的密码需要更改密码策略

image.png

以下报错是给用户设置密码时密码过于简单,如需要设置类似123456这样的简单密码,需要修改密码策略,再设置密码:

set global validate_password.policy=0;

set global validate_password.length=4;

三、可视化工具无法远程连接数据库

1、Linux中防火墙中的设置:

firewall-cmd --state(查看防火墙状态running表示正在运行)

firewall-cmd --zone=public --list-ports(查看开放的端口号)

firewall-cmd --zone=public --add-port=3306/tcp --permanent(开放3306端口永久生效)

firewall-cmd --reload(重启防火墙)

firewall-cmd --zone=public --list-ports(再次查看开放的端口列表的3306/tcp)

image.png

2、MySQL数据库本身的设置:

use mysql;(选中数据库)

update user set host='%' where user = 'root';(把root用户的host改成%表示任意IP可以访问)

温馨提示:MySQL8使用了新的认证插件caching_sha2_password一些低版本的Navicat还不支持这个新的插件,连接会出现错误。navicat12.0.28已经支持新的验证方式。旧版本需要把登录验证方式改成mysql_native_password方式:

alter user 'root'@'%' identified with mysql_native_password by '123456';(用mysql_native_password的加密方式,修改密码为123456)

flush privileges;(刷新)

service mysqld restart(重启数据库服务器)

image.png

四、DBeaver连接数据库遇到的坑

1、数据库时区不对

image.png

show variables like '%time_zone%';(查看时区)

set global time_zone='+8:00';(设置时区)

image.png