小编Elz*_*lzo的帖子

Node.js无法对MySQL 8.0进行身份验证

我有一个Node.js程序,它使用root帐户连接到本地MySQL数据库(这不是生产设置).这是创建连接的代码:

const mysql = require('mysql');

const dbConn = mysql.createConnection({
    host: 'localhost',
    port: 3306,
    user: 'root',
    password: 'myRootPassword',
    database: 'decldb'
});

dbConn.connect(err => {
    if (err) throw err;
    console.log('Connected!');
});
Run Code Online (Sandbox Code Playgroud)

它适用于MySQL 5.7,但自从安装MySQL 8.0后,我在启动Node.js应用程序时遇到此错误:

> node .\api-server\main.js
[2018-05-16T13:53:53.153Z] Server launched on port 3000!
C:\Users\me\project\node_server\node_modules\mysql\lib\protocol\Parser.js:80
        throw err; // Rethrow non-MySQL errors
        ^

Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
    at Handshake.Sequence._packetToError (C:\Users\me\project\node_server\node_modules\mysql\lib\protocol\sequences\Sequence.js:52:14)
    at Handshake.ErrorPacket (C:\Users\me\project\node_server\node_modules\mysql\lib\protocol\sequences\Handshake.js:130:18)
    at Protocol._parsePacket (C:\Users\me\project\node_server\node_modules\mysql\lib\protocol\Protocol.js:279:23)
    at Parser.write (C:\Users\me\project\node_server\node_modules\mysql\lib\protocol\Parser.js:76:12)
    at Protocol.write (C:\Users\me\project\node_server\node_modules\mysql\lib\protocol\Protocol.js:39:16)
    at …
Run Code Online (Sandbox Code Playgroud)

mysql authentication node.js mysql-8.0

17
推荐指数
2
解决办法
1万
查看次数

VSCode 中的 Python/Jupyter notebook 没有使用正确的环境

情况

我在 Windows 10 上使用 Anaconda 3。

我有一个 Visual Studio Code 工作区 ( my_workspace),其中包含一个 Jupyter 笔记本 ( my_notebook.ipynb)。VSCode 安装了 Python 扩展。

该文件my_workspace/settings.json包含:

{
    "python.pythonPath": "C:\\Users\\Me\\Anaconda3\\envs\\my_env\\python.exe"
}
Run Code Online (Sandbox Code Playgroud)

my_env是现有的 Anaconda 环境。我可以激活它并在 shell 中使用它,如果我jupyter lab在这样的 shell 中运行,笔记本中的代码可以my_env按预期导入的包。

如果我my_workspace在 VSCode 中打开,那么my_notebook.ipynb在选项卡my_env中,VSCode 的状态栏中也会提到(“Python 3.7.6 64-bit ('my_env': conda)”),并且my_env在我在 VSCode 的控制台中打开 PowerShell 提示符时自动激活(我跑过conda init一次)。

问题

当笔记本在 VSCode 中打开时,Jupyter 内核似乎使用base环境的 Python 解释器而不是my_env. 导入安装在my_env中但未安装在 …

python ipython anaconda windows-10 visual-studio-code

17
推荐指数
1
解决办法
1万
查看次数

15
推荐指数
4
解决办法
6万
查看次数

如何在一个范围内生成加密安全的随机整数?

我必须在给定范围内为生成密码的程序生成一个统一的,安全的随机整数.现在我用这个:

RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
byte[] rand = new byte[4];
rng.GetBytes(rand);
int i = BitConverter.ToUInt16(rand, 0);
int result = i%max;   //max is the range's upper bound (the lower is 0)
Run Code Online (Sandbox Code Playgroud)

这种方法是否可以安全地用于加密目的?如果没有,我该怎么办?

c# random cryptography

9
推荐指数
4
解决办法
5586
查看次数

为什么这个程序没有溢出?

试着研究C#如何对溢出做出反应,我写了这个简单的代码:

static uint diff(int a, int b)
{
    return (uint)(b - a);
}
static void Main(string[] args)
{
    Console.Out.WriteLine(int.MaxValue);
    uint l = diff(int.MinValue, int.MaxValue);
    Console.Out.WriteLine(l);
    Console.In.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)

我得到这个输出:

2147483647
4294967295
Run Code Online (Sandbox Code Playgroud)

我觉得它运行得很好,因为int减法diff应该给出大于的结果int.MaxValue.

但是,如果我写这个,这似乎等同于上面的代码:

uint l = (uint)(int.MaxValue - int.MinValue);
Run Code Online (Sandbox Code Playgroud)

C#甚至不会编译,因为代码可能会溢出.

是什么让第一个代码运行没有溢出,而编译器甚至不编译第二行?

c# integer-overflow

7
推荐指数
1
解决办法
327
查看次数

PyTorch:NVIDIA NGC 映像还是 Docker Hub 映像?

Docker Hub 上的官方 PyTorch 镜像NVIDIA NGC 上的 PyTorch 镜像有什么区别?

NGC 页面比 Docker Hub 页面有更多文档,后者没有任何描述。但 NGC 图像也重了几 GB,并且似乎需要 CUDA 10.2 兼容的驱动程序。

使用 NVIDIA NGC 镜像代替 Docker Hub 镜像有什么优势吗?

nvidia docker pytorch

6
推荐指数
1
解决办法
1321
查看次数

SBT 在创建项目时要求提供凭据

我对 Scala 和 SBT 完全陌生。我已经下载了SBT 1.3.2 的存档.tgz,将其解压并将其bin目录添加到我的PATHUbuntu 18.04 上。

我正在遵循官方的入门指南,该指南提供了创建一个简单项目的命令。它应该像这样运行:

$ sbt new sbt/scala-seed.g8
....
Minimum Scala build.

name [My Something Project]: hello

Template applied in ./hello
Run Code Online (Sandbox Code Playgroud)

相反,它要求我提供凭据:

$ sbt new sbt/scala_seed.g8
[info] Set current project to code (in build file:/home/user/code/)
[info] Set current project to code (in build file:/home/user/code/)
Username:
Run Code Online (Sandbox Code Playgroud)

我不知道该输入什么。我什至无法尝试猜测,因为在要求输入密码之前我只能输入一个字符。如果我再次输入一个字符,我会再次收到用户名提示。这是按两个键后的输出:

$ sbt new sbt/scala_seed.g8
[info] Set current project to code (in build file:/home/user/code/)
[info] Set current project to …
Run Code Online (Sandbox Code Playgroud)

sbt

5
推荐指数
2
解决办法
1625
查看次数

VS Code无法安装Go工具

我尝试在VSCode中开始使用Go.我已经安装了Go和Git,并在Code中创建了一个包含单个.go文件的项目.

当我输入内容时,VSCode警告我,golint缺少的工具会提示我安装它们.我点击"全部安装".

然后控制台显示:

Installing 10 tools
  gocode
  gopkgs
  go-outline
  go-symbols
  guru
  gorename
  godef
  goreturns
  golint
  gotests

Installing gocode SUCCEEDED
Installing gopkgs SUCCEEDED
Installing go-outline SUCCEEDED
Installing go-symbols FAILED
Installing guru FAILED
Installing gorename FAILED
Installing godef SUCCEEDED
Installing goreturns FAILED
Installing golint FAILED
Installing gotests FAILED

6 tools failed to install.

go-symbols:
Error: Command failed: C:\Go\bin\go.exe get -u -v github.com/newhook/go-symbols
github.com/newhook/go-symbols (download)
Fetching https://golang.org/x/tools/go/buildutil?go-get=1
Parsing meta tags from https://golang.org/x/tools/go/buildutil?go-get=1 (status code 200)
get "golang.org/x/tools/go/buildutil": found meta …
Run Code Online (Sandbox Code Playgroud)

go visual-studio-code

3
推荐指数
1
解决办法
6996
查看次数