mysql - "Client does not support authentication protocol"- 错误已修复,但会导致管理员出错

标签 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’;

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

mysql has gone away 

这肯定与修复第一个错误有关,但我真的不确定为什么?

最佳答案

针对 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

每天,将当前的 my.ini 保存在\history 中,并使用指定日期的定时文件名(例如 20180827hhmm-my.cnf),以便快速返回到上次工作的 my.ini。

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

禁用带有前导 # 和空格键的早期相同命名变量,以避免混淆。 5 年后,您仍将拥有 my.ini 更改历史记录以及大致日期。

通常每天仅进行一次更改,在进行下一次更改之前进行监控。如果更改看起来有害,请返回到上次工作的 my.ini 并告知我们。

根据您的情况,我会启用所有建议。现在还没有进入生产阶段。

如需其他建议(您还有更多机会),请查看个人资料、网络个人资料以及包括我的 Skype ID 在内的联系信息。

关于mysql - "Client does not support authentication protocol"- 错误已修复,但会导致管理员出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52028530/

相关文章:

javascript - Jade lang - 如何手动添加新行?

java - 前端有很多按钮的表格数据插入删除代码怎么写?

.net - T SQL 和 DO - 我收到有关 SQL 的面试问题,但没有关于 ADO 的问题,这正常吗?

sql-server - 如何测量Azure sql server数据库中用户消耗的数据?

mysql - 如何防止mysql数据库中的activerecord写入冲突?

mysql - 以下 MySQL create 语句有什么问题?

python - 如何使用 Django 2.* mysqlclient 在 MySQL 数据库中设置排序规则?

mysql 联合全部不工作

node.js - 运行 V8 javascript 引擎示例代码时出错

node.js - 使用 dynamoose.js 时如何避免将 aws config 设置为外部环境变量