我使用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
这当然与解决第一个错误有关,但我真的不确定为什么吗?
答案 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在内的联系信息。