“客户端不支持身份验证协议”-已修复错误,但导致管理员错误

时间:2018-08-26 17:12:49

标签: mysql node.js database docker

我使用docker,node,sequelize,adminer和mysql在另一台计算机上启动了一个项目。然后,我有一台新计算机并下载了该项目,但是当尝试在新计算机上启动该项目时,出现以下错误:

Unhandled rejection SequelizeConnectionError: Client does not support authentication protocol requested by server; consider upgrading MySQL client

此错误仅影响项目的特定部分,而不影响具有管理员权限的部分,在此状态下可以正常工作。我可以登录到它,并查看使用docker创建的数据库。然后,我使用以下代码解决错误:

docker exec -it ticketgo_database_1 bash

mysql --user=root --password

ALTER USER 'root' IDENTIFIED WITH mysql_native_password BY ‘pass’;

现在该代码的特定部分可以工作,但是当我尝试登录到Adminer时,出现以下错误:

mysql has gone away 

这当然与解决第一个错误有关,但我真的不确定为什么吗?

1 个答案:

答案 0 :(得分:0)

my.cnf [mysqld]部分的建议(RPS =每秒速率)

# 20180828 0707 from mysqlservertuning.com
# log_error=/var/lib/mysql/2cd908c24352-error.log  # from default of stderr, for log
# max_connect_errors=10  # from 100 - why give a cracker/hacker more than 10 shots?
# thread_cache_size=32  # from 9 for thread breathing room
# innodb_io_capacity=2000  # from 200 to allow more IOPS
# expire_logs_days=10  # from 0 for limited historical logs
# general_log=1  # from OFF until you get a handle on Adminer failure!!!

#    IN ANY CASE 10 Minutes after START of INSTANCE, 
# SET GLOBAL general_log=0 to avoid filling your storage media completely full.

# innodb_buffer_pool_dump_pct=90  # from 25 percent for more WARM cache at start
# innodb_page_cleaners=2  # from 1 to expedite page clean operations
# open_files_limit=30000  # from 1 million for a more reasonable upper limit
# slow_query_log=1  # from OFF should be ON for detection, prevention, if possible

每天,使用日期已定时的文件名(例如20180827hhmm-my.cnf)将您当前的my.ini保存在\ history中,以便快速恢复上次使用my.ini的时间。

将此块(包括开始日期和我们的网站名称)复制到[mysqld]部分的END,并通过删除前导#和空格字符来启用每天一次更改,在进行下一个更改之前进行监视。

使用前导#和空格键禁用EARLIER相同的NAMED变量,以免造成混淆。在5年内,您仍将拥有my.ini更改的历史记录以及大约的日期。

通常每天仅更改一次,请先监控一次,然后再进行下一次更改。如果更改似乎有害,请返回上次运行的my.ini,并让我们知道。

根据您的情况,我将启用所有建议。这还不像您正在生产中。

有关其他建议(您还有更多机会),请查看配置文件,网络配置文件,以获取包括我的Skype ID在内的联系信息。