-
查看 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 服务:
#安装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临时密码 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 后自动恢复默认密码策略,想要永久修改 mysql 配置文件,一般来说临时修改密码策略就够了
- 许外部访问 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#';