我有一个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) 我在 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中但未安装在 …
对于任何k ,函数(log n)k的大O复杂度是多少?
我必须在给定范围内为生成密码的程序生成一个统一的,安全的随机整数.现在我用这个:
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#如何对溢出做出反应,我写了这个简单的代码:
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#甚至不会编译,因为代码可能会溢出.
是什么让第一个代码运行没有溢出,而编译器甚至不编译第二行?
Docker Hub 上的官方 PyTorch 镜像与NVIDIA NGC 上的 PyTorch 镜像有什么区别?
NGC 页面比 Docker Hub 页面有更多文档,后者没有任何描述。但 NGC 图像也重了几 GB,并且似乎需要 CUDA 10.2 兼容的驱动程序。
使用 NVIDIA NGC 镜像代替 Docker Hub 镜像有什么优势吗?
我对 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) 我尝试在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)