查看 myslq 是否安装:
rpm -qa|grep mysql
-
如果已经安装,可执行命令来删除软件包:
rpm -e --nodeps 包名
-
下载 repo 源:
http://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
-
执行命令安装 rpm 源(根据下载的 rpm 源进行选择)
#CentOS7 安装mysql8 rpm -ivh mysql80-community-release-el7-7.noarch.rpm
-
查看 mysql yum 仓库中 mysql 版本,使用如下命令
yum repolist all | grep mysql
-
可以看到 MySQL 5.5 5.6 5.7 为禁用状态,而 Mysql 8.0 为启用状态
-
修改相对应的版本为启用状态最新版本为禁用状态(自行选择)
yum-config-manager --disable mysql80-community yum-config-manager --enable mysql57-community
-
-
安装 MySQL 服务:
#安装mysql服务 yum install mysql-community-server #查看mysql版本 mysql -V
-
启动 MySQL:
#查看mysql运行状态 systemctl status mysqld.service #启动mysql systemctl start mysqld #停止mysql systemctl stop mysqld #重启mysql systemctl restart mysqld
-
开启 mysql 开机自启动:
#开启mysql开机自启动 systemctl enable mysqld #关闭mysql开机自启动 systemctl disable mysqld
-
-
设置 mysql 密码:
-
获取临时密码
//获取MySQL临时密码 grep 'temporary password' /var/log/mysqld.log
-
登录 mysql:密码是上面获取的临时密码
//登录mysql mysql -uroot -p
-
用临时密码登陆后,设置 mysql 永久密码:
show variables like 'validate_password.%'; //根据下图中的密码策略设置mysql数据库密码(你不设置密码就无法进行其它操作) alter user 'root'@'localhost' identified by 'Zjx123456#';
-
注意:你的密码不符合密码策略的话是无法设置成功的,mysql8 默认密码策略如下图(最少 8 位,至少包含一个数字,至少包含一个特殊字符)
-
-
修改密码策略:
-
只能临时修改密码策略,重启 mysql 后自动恢复默认密码策略,想要永久修改 mysql 配置文件,一般来说临时修改密码策略就够了
//设置密码长度 set global validate_password.length = 6; //设置密码风险等级(等级越高要求密码越复杂),分为0、1、2级 set global validate_password.policy = 0; //查询密码策略 show variables like 'validate_password.%'; //设置mysql数据库密码 (这里是密码) alter user 'root'@'localhost' identified by 'Zjx123456#';
-
-
许外部访问 mysql 数据库:
//创建用户 (远程连接用的账号) (远程连接用的密码) create user 'root'@'%' identified by 'mypassword'; //mysql8.0版本 //create user 'root'@'%' identified with mysql_native_password by 'Zjx123456#'; //分配权限,运行远程连接 (允许root账号远程连接) grant all privileges on *.* to 'root'@'%' with grant option; //刷新权限 flush privileges;
-
远程链接数据库,如果远程连接不上,考虑防火墙是否开放了 mysql 端口 (3306) 和服务器上的 MySQL 端口(3306)
-
在使用 Navicat for mysql 链接 mysql 8.0时会报如下错误:
Authentication plugin 'caching_sha2_password' cannot be loaded:
-
mysql 8.0 引入了新特性 caching_sha2_password,这种密码加密方式客户端不支持,客户端支持的是 mysql_native_password 这种加密方式
-
我们可以查看 mysql 数据库中 user 表的 plugin 字段
use mysql; select host,user,plugin from user;
-
可以使用命令将他修改成 mysql_native_password 加密方式:
update user set plugin='mysql_native_password' where user='root'; //或者创建user时直接指定加密模式 create user 'root'@'%' identified with mysql_native_password by 'Zjx123456#';
-