php连接mysql报错:SQLSTATE[HY000] [2006] MySQL server has gone away
MySQL新版本(8以上版本)的用户登录账户加密方式是【caching_sha2_password】,Navicat不支持这种用户登录账户加密方式。
安装好 mysql 后,一般会使用客户端连接(必须Navcat)。本文描述了怎么设置远程连接。
由于是在docker下安装的,所以步骤会比较少 1: docker pull mysql:8.0 表示pull tag为mysql8.0下的镜像 2:docker run -d -e MYSQL_ROOT_PASSWORD=root --name mysql8 -v /data/mysql/data:/var/lib/mysql -p 3306:3306 mysql:8.0 表示运行上一步下载的image镜像,端口为3306,root账户的密码是root 并且配置挂载到linux下的/data/mysql/data文件夹下
mysql8的默认密码加密方式是caching_sha2_password,PHP7.4连接mysql的加密方式也为caching_sha2_password,这个地方要注意。
按照https://blog.csdn.net/h996666/article/details/80917268安装完MySQL之后。
Client does not support authentication protocol requested by server;
2059原因,mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password
注:原因为MySql 8.0.11 换了新的身份验证插件(caching_sha2_password), 原来的身份验证插件为(mysql_native_password)。而客户端工具Navicat Premium12 中找不到新的身份验证插件(caching_sha2_password),对此,我们将mysql用户使用的 登录密码加密规则 还原成 mysql_native_password,即可登陆成功。
Mycat 目前还未全面支持MySQL 8以上的版本,可能会导致一些问题,例如Mycat连接MySQL 8时可能会报密码错误,因为新版的密码加密方式与旧版不一样。还有就是时区问题,新版的连接方式需要增加时区参数。除此之外,可能还会有一些其他问题。因此,我们需要更改Mycat的一些配置,让其能正常连接MySQL 8.x。
2.docker pull mysql 要选择starts最高的那个name 进行下载
原因:mysql 8.0 默认使用 caching_sha2_password 身份验证机制;客户端不支持新的加密方式 解决方案:修改用户(root)的加密方式
原因:由于用户加密方式不同,如果是采用caching_sha2_password会由于navicat的版本问题导致无法连接,需要设置成mysql_native_password
当程序中使用root账号连接mysql时报以下错误,但是使用命令行是可以正常连接的,那么就查询下mysql数据库的user表,查看下当前用户的密码加密方式,看看是不是unix_socket MariaDB [mysql]> select user,plugin from user; +------+-------------+ | user | plugin | +------+-------------+ | root | unix_socket | +------+-------------+ 可以更改下用户的加密方式: update user set authentication_string=password("123456"),plugin='mysql_native_password' where user='root';
我们本文将采用最常规的方式,也就是安装包的方式进行安装,这也是我推荐给新手的安装方式,因为这种安装方式更直观更可控一些,比如对 MySQL 版本的选择和密码配置等,那接下来我们就直接开始吧。
1.docker仓库搜索mysql docker search mysql /images/img/20220308164142.png 2.docker仓库拉取mysql8.0镜像 docker pull mysql:8.0 docker pull mysql #拉取最新版本的mysql 3.查看本地镜像是否安装成功 docker images mysql:8.0 /images/img/20220308164232.png 4.安装运行mysql8.0容器 docker run -p 3307:3306 --name mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0 -p 将本地主机的端口(3307)映射到docker容器端口(3306) –name 容器名称 -e 配置信息,root用户原始密码为root -d 镜像名称 注意 记得去服务器防火墙放行3307端口 5.查看mysql8.0容器运行情况 docker ps /images/img/20220308165059.png 6.docker登录mysql docker exec -it mysql bash mysql -uroot -p /images/img/20220308165341.png 7.使用客户端连接工具(navicat)远程登录mysql /images/img/20220308165538.png 会出现下面的2059错误
参数: ./mycat { console | start | stop | restart | status | dump }
但是目前MyCat仍主要面对MySQL 5.5, 5.6, 5.7版,对最新的MySQL 8尚未完全支持,需要用户对MySQL 8和MyCat的配置进行一系列的修改。
MySQL安装后,需要允许外部IP访问数据库。修改加密配置与增加新用户,配置用户权限 修改配置文件,增加默认加密方式的配置项。
发现root的host是localhost,不是%,可以加个host是%的root账号: 输入:CREATE USER ‘root’@’%’ IDENTIFIED BY ‘KC$abc123’;
在测试mysql的过程中遇到使用localhost可以连接但是127.0.0.1不能连接,原因是localhost使用的本地socket连接,127.0.0.1使用使用的tcp连接
最新版本 MySQL 下载路径:https://dev.mysql.com/downloads/windows/installer/8.0.html
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
本来村民也是打算写一写基础教程的,但是 B 站 UP 主高新强的系列视频 —— MySQL8零基础入门视频教程 十分照顾初学者,正适合新手村。村民看下来之后觉得很不错,视频内容比较全面,分 P 目录详细,示范操作讲解细致,因此就推荐给大家,但村民也会根据自己的实际需求按照视频的分P标题写一点分享,大家在观看视频的时候可以把村民的教程放在一边进行对照。
(1)、如果之前有启动过MySQL服务,则通过:net stop mysql命令(Windows系统)或者systemctl stop mysql命令(Linux环境)先停止服务。
hash大家都不陌生,不同的hash又不一样的特征,今天的主要内容就是带大家一起来学习了解一下不同的hash。
前提需求是已经完成安装了Mysql服务,Mysql的安装可参考:Docker安装Mysql 这里只介绍Mycat1.6.7.6对Mysql8支持使用配置,其他基于mycat完成读写分离、分库分表等配置详见本站其他文章
找到mysql的配置文件vim /etc/my.cnf,把密码的加密方式改成之前版本的,8.0版本更换了密码的加密方式,我们就先用旧的
我卸载掉本来的mariadb(因为我。。直接在添加mysql yum源的时候直接下载mysql失败了)
拉取mysql的镜像 docker search mysql docker pull mysql
如果是此句, 则是拉取最新版本 $ docker pull mysql:latest
请注意,本文编写于 666 天前,最后修改于 666 天前,其中某些信息可能已经过时。
提前开放好mysql需要用到的端口号,有的还需要去服务器的控制中心添加放行端口号,CentOS 7有关开放端口号的操作可以看这篇文章:CentOS 7 开启防火墙及开放指定端口
安装完MySQL8.0.11和Navicat Premium12后,我们会用Navicat去测试连接MySQL,但是测试时出现以下错误提示:
今天2021年4月23日。我买了阿里云centos服务器,安装mysql8.0,做一笔记,以供大家使用。
软件包下载地址:http://mirrors.sohu.com/mysql/MySQL-8.0/
我下载的是Windows (x86, 64-bit), ZIP Archive,主要是网不好,下载慢,所以选择第一个,
But 点击左下的Generate,将激活码激活之后,再次打开navicat12.1.25.0任然提示需要去官网购买。
原因是:默认的密码加密方式是:caching_sha2_password,而现在很多客户端工具还不支持这种加密认证方式,连接测试的时候就会报错:client does not support authentication protocol requested by server; consider upgrading MySQL client,这里的错误信息就是不支持身份认证方式,因此,去my.ini里面在[mysqld]下面加上这句话即可。
公司的服务器登陆操作都是使用堡垒机+SSH的方式进行登陆的,今天准备配置一台机器的SSH访问,所以看了看SSH相关的东西,这里简单总结下。
1、新安装的mysql8,使用激活成功教程版的navicat连接的时候一直报错,如图所示:
The server requested authentication method unknown to the client
注:两段代码分别实现了创建数据库账户。localhost为只允许本地连接数据库。%为允许该账户从任何主机连接数据库。
设置root用户在任何地方进行远程登录,并具有所有库任何操作权限。 (暴露的攻击面太大)。
2.MySQL远程连接ERROR 2003 (HY000):Can’t connect to MySQL server on’XXXXX’ (10060)
mysql> select host,user,plugin from user;
上一篇文章讲解了重置 MySQL 的密码,有同学反馈无法程连接到数据库,这是因为 MySQL 安装完成后只支持 localhost 访问,我们必须设置一下才可以远程访问,另外还有一些 MySQL 8.0 连接时的一些问题,本文也会一并进行讲解如何解决。
下载页面 MySQL :: Download MySQL Community Server
mysql 8.0 修改了加密的插件方式,导致很多旧版本的navicat无法正常访问。为了方便访问,淡定创建一个原来加密方式的账号。
领取专属 10元无门槛券
手把手带您无忧上云