মাইএসকিউএল ৮.০ - ক্লায়েন্ট সার্ভারের দ্বারা অনুরোধ করা প্রমাণীকরণ প্রোটোকল সমর্থন করে না; মাইএসকিউএল ক্লায়েন্টকে আপগ্রেড করার কথা বিবেচনা করুন


272

আমি কোনও কারণে সার্ভারের সাথে একটি সহজ সংযোগ করতে পারি না। আমি ডিফল্ট সেটিংস সহ নোড.জেএস সহ নতুন মাইএসকিউএল সম্প্রদায় 8.0 ডাটাবেস ইনস্টল করি।

এটি আমার নোড.জেএস কোড

    var mysql = require('mysql');

    var con = mysql.createConnection({
      host: "localhost",
      user: "root",
      password: "password",
      insecureAuth : true
    });

    con.connect(function(err) {
      if (err) throw err;
      console.log("Connected!");
    });

নীচে কমান্ড প্রম্পটে ত্রুটি পাওয়া গেছে:

C:\Users\mysql-test>node app.js
    C:\Users\mysql-test\node_modules\mysql\lib\protocol\Parse
    r.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\mysql-
test\node_modules\mysql\lib\protocol\sequences\Sequence.js:52:14)
    at Handshake.ErrorPacket (C:\Users\mysql-test\node_mo
dules\mysql\lib\protocol\sequences\Handshake.js:130:18)
    at Protocol._parsePacket (C:\Users\mysql-test\node_mo
dules\mysql\lib\protocol\Protocol.js:279:23)
    at Parser.write (C:\Users\mysql-test\node_modules\mys
ql\lib\protocol\Parser.js:76:12)
    at Protocol.write (C:\Users\mysql-test\node_modules\m
ysql\lib\protocol\Protocol.js:39:16)
    at Socket.<anonymous> (C:\Users\mysql-test\node_modul
es\mysql\lib\Connection.js:103:28)
    at Socket.emit (events.js:159:13)
    at addChunk (_stream_readable.js:265:12)
    at readableAddChunk (_stream_readable.js:252:11)
    at Socket.Readable.push (_stream_readable.js:209:10)
    --------------------
    at Protocol._enqueue (C:\Users\mysql-test\node_module
s\mysql\lib\protocol\Protocol.js:145:48)
    at Protocol.handshake (C:\Users\mysql-test\node_modul
es\mysql\lib\protocol\Protocol.js:52:23)
    at Connection.connect (C:\Users\mysql-test\node_modul
es\mysql\lib\Connection.js:130:18)
    at Object.<anonymous> (C:\Users\mysql-test\server.js:
11:5)
at Module._compile (module.js:660:30)
at Object.Module._extensions..js (module.js:671:10)
at Module.load (module.js:573:32)
at tryModuleLoad (module.js:513:12)
at Function.Module._load (module.js:505:3)
at Function.Module.runMain (module.js:701:10)

আমি কিছু বিষয় যেমন: https://dev.mysql.com/doc/refman/5.5/en/old-client.html https://github.com/mysqljs/mysql/issues/1507 পড়েছি

তবে আমি কীভাবে আমার সমস্যার সমাধান করব তা নিশ্চিত নই। যে কোনও সাহায্যের প্রশংসা করা হবে: ডি


2
সমস্ত ভিএস কোড ব্যবহারকারী যারা এসকিউএলটুলস এক্সটেনশন ব্যবহার করেন তাদের যদি এই সমস্যাটি হয় সে ক্ষেত্রে এই পোস্টটি উল্লেখ করা উচিত, বিশেষত আপনি যদি কেবলমাত্র আপনার বিকাশ কম্পিউটারে
কোনও মাইএসকিএল

উত্তর:


676

এমওয়াইএসকিউএল ওয়ার্কবেঞ্চে নিম্নলিখিত কোয়েরিটি সম্পাদন করুন

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'

যেখানে rootআপনার ব্যবহারকারী localhostহিসাবে আপনার URL passwordহিসাবে এবং আপনার পাসওয়ার্ড হিসাবে

তারপরে সুযোগগুলি রিফ্রেশ করতে এই ক্যোয়ারীটি চালান:

flush privileges;

নোড ব্যবহার করার পরে আপনি এটি সংযুক্ত করার চেষ্টা করুন।

যদি এটি কাজ না করে তবে অংশবিহীন চেষ্টা করে দেখুন @'localhost'


47
এটি আমার পক্ষে কাজ করেছে। flush privileges;পরে ভুলবেন না ।
আলী হেসারি


10
'
রুশ

11
এটি কাজ করে ...... তবে এটি কেন আগে কাজ করছিল না এবং কেন এই কোয়েরির পরে এটি কাজ করেছে তা এখনও একটি প্রশ্ন।
সাকশাম

9
হাই @ গুয়েলহেরেম্যাটুয়েলা এটি কারণ caching_sha2_passwordমাইএসকিউএল ৮.০ এ প্রবর্তিত হয়েছে, তবে নোড.জেএস সংস্করণটি এখনও কার্যকর হয়নি।
দক্ষিণ গার্গাস

105

আসুন আগে এটি পরিষ্কার করা যাক কী চলছে।

মাইএসকিউএল 8 প্লাগেবল প্রমাণীকরণ পদ্ধতি সমর্থন করে। ডিফল্টরূপে, তাদের নামের মধ্যে caching_sha2_passwordএকটি আমাদের ভাল পুরাতন mysql_native_password( উত্স ) এর চেয়ে বেশি ব্যবহৃত হয় । এটি সুস্পষ্ট হওয়া উচিত যে বেশ কয়েকটি হ্যান্ডশেক সহ একটি ক্রিপ্টো অ্যালগরিদম ব্যবহার 24 বছরের জন্য সেখানে থাকা সরল পাসওয়ার্ডের চেয়ে আরও সুরক্ষিত !

এখন, সমস্যাটি mysqljsনোডে রয়েছে (আপনি যে প্যাকেজটি দিয়ে ইনস্টল করেন npm i mysqlএবং এটি আপনার নোড কোডে ব্যবহার করেন) এটি এখনও মাইএসকিউএল 8 এর নতুন ডিফল্ট প্রমাণীকরণ পদ্ধতি সমর্থন করে না। সমস্যাটি এখানে রয়েছে: https://github.com/mysqljs/mysql/issues/1507 এবং জুলাই 2019 পর্যন্ত 3 বছর পরে এখনও খোলা আছে।

: (আপডেট জুন 2019 একটা হল নতুন জনসংযোগ mysqljs মধ্যে এখন এই সমাধানের জন্য! ) (2020 আপডেট ফেব্রুয়ারী: দৃশ্যত এটি হচ্ছে mysqljs 3 নং সংস্করণ আসা নির্ধারিত)

আপনার বিকল্পগুলি

বিকল্প 1) ভাল পুরানো "নেটিভ_পাসওয়ার্ড" ব্যবহার করে প্রমাণীকরণের জন্য "মাইএসকিউএল" ডাউনগ্রেড করুন

সকলেই এখানে পরামর্শ দেয় (উদাহরণস্বরূপ উপরে উত্তর )। আপনি কেবল লেখার জন্য পুরানো পদ্ধতিটি ব্যবহার করে mysqlএকটি ক্যোয়ারী বলছেন rootযা ঠিক আছে native_password:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password ...

ভাল জিনিসটি হল, জীবন সহজ হতে চলেছে এবং আপনি এখনও কোনও সমস্যা ছাড়াই সিকোয়েল প্রো এর মতো ভাল পুরানো সরঞ্জামগুলি ব্যবহার করতে পারেন । তবে সমস্যাটি হ'ল, আপনি আপনার কাছে উপলব্ধ আরও নিরাপদ (এবং শীতল, নীচে পড়ুন) স্টাফগুলির সুবিধা নিচ্ছেন না।

বিকল্প 2) "নোড" প্যাকেজটি মাইএসকিউএল সংযোগকারী এক্স ডিভাপিআই দিয়ে প্রতিস্থাপন করুন

নোডের জন্য মাইএসকিউএল এক্স ডিভাপিআই হ'ল নোডের মাইসকিএলজেস প্যাকেজের প্রতিস্থাপন , এটি http://dev.mysql.com অফিসিয়াল ছেলেরা সরবরাহ করে।

এটি মোহন সমর্থনকারী caching_sha2_passwordপ্রমাণীকরণের মতো কাজ করে । (কেবল এক্স প্রোটোকল কমুনিউনিকেশনের33060 জন্য আপনি বন্দর ব্যবহার করেছেন তা নিশ্চিত করুন ))

খারাপ জিনিসটি হল, আপনি আমাদের পুরানো mysqlপ্যাকেজটি রেখে গেছেন যে প্রত্যেকে এতটা অভ্যস্ত এবং নির্ভর করে।

ভাল জিনিসটি হল, আপনার অ্যাপ্লিকেশনটি এখন আরও সুরক্ষিত এবং আপনি আমাদের ভাল পুরানো বন্ধুরা সরবরাহ না করে এমন এক টন নতুন জিনিস ব্যবহার করতে পারেন! এক্স এক্স ডিএপিআইপি-টিউটোরিয়ালটি কেবল পরীক্ষা করে দেখুন এবং দেখতে পাবেন এটিতে এক টন নতুন সেক্সি বৈশিষ্ট্য রয়েছে যা কাজে আসতে পারে। আপনাকে কেবল একটি শিখন কার্ভের মূল্য প্রদান করতে হবে, যা প্রত্যাশিতভাবে কোনও প্রযুক্তির আপগ্রেড নিয়ে আসে। :)

পুনশ্চ. দুর্ভাগ্যক্রমে, এই এক্সডিভাপি প্যাকেজটিতে এখনও প্রকারের সংজ্ঞা নেই (টাইপস্ক্রিপ্ট দ্বারা উপলব্ধিযোগ্য), সুতরাং আপনি যদি টাইপ স্ক্রিপ্টে থাকেন তবে আপনার সমস্যা হবে। আমি .d.ts ব্যবহার উৎপন্ন করার চেষ্টা dts-genএবং dtsmake, কিন্তু কোন সাফল্য। সুতরাং, এটা মনে রেখো।

চিয়ার্স!


3
এক বছরের পুরানো প্রশ্নের জন্য বিস্তারিত উত্তর পোস্ট করার জন্য ধন্যবাদ। :]
দক্ষিণ গার্গাস

3
সুন্দর, একটি উত্তর যা আসলে এটি করতে আপনাকে বলার পরিবর্তে mysql_native_password ব্যাখ্যা করে
উইজলোক

1
হ্যাঁ, একবারের জন্য একটি সঠিক ব্যাখ্যা explanation আইডিন তোমার জন্য ভাল আমি কীভাবে সংযুক্ত অ্যাপ্লিকেশনগুলি মাইএসকিউএলে 3306 পোর্টটি স্বয়ংক্রিয়ভাবে কনফিগার করে নি। মাইএসকিউএল এবং মারিয়াডিবি 3306 থেকে দূরে রাখতে আমাদের যথেষ্ট সমস্যা হচ্ছে
ট্রাঙ্ক

: ওরাকল প্লাগইনগুলির সাবধান, আপনি একটি বড় শাস্তি পেতে পারে theregister.co.uk/2019/10/04/oracle_virtualbox_merula
জুহাকে Untinen

এটি একটি চমত্কার উত্তর আরও উচ্চতর দাবিদার!
জুন ওয়েনেস্টন

82

পুরানো mysql_native_passwordকাজ ব্যবহার :

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourRootPassword';
-- or
CREATE USER 'foo'@'%' IDENTIFIED WITH mysql_native_password BY 'bar';
-- then
FLUSH PRIVILEGES;

এটি caching_sha2_passwordমাইএসকিউএল 8.0 এ প্রবর্তিত হওয়ার কারণে , তবে নোড.জেএস সংস্করণটি এখনও কার্যকর হয়নি। আপনি আরও তথ্যের জন্য এই টান অনুরোধ এবং এই সমস্যাটি দেখতে পারেন । সম্ভবত একটি সংশোধন শীঘ্রই আসবে!


কবজির মতো কাজ করুন। কি শান্তি!
টুপি


অনুসন্ধান কাজ করে। তবে এখনও নোড মাইএসকিউএল সার্ভারের সাথে সংযোগ করতে পারেনি। কোন ধারণা? এখানে ত্রুটি, {"কোড": "ER_ACCESS_DENIED_ERROR", "errno": 1045, "sqlMessage": "ব্যবহারকারীর 'রুট' @ 'লোকালহোস্ট' (পাসওয়ার্ড ব্যবহার: YES)", "sqlState": "28000" , "মারাত্মক": সত্য}
সঞ্জয় প্রদীপ

26

মাইএসকিউএল 8 এর সম্পূর্ণ পদক্ষেপ

মাইএসকিউএলে কানেক্ট করুন

$ mysql -u root -p
Enter password: (enter your root password)

আপনার পাসওয়ার্ড পুনরায় সেট করুন

( your_new_passwordআপনি যে পাসওয়ার্ডটি ব্যবহার করতে চান তা দিয়ে প্রতিস্থাপন করুন )

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_password';
mysql> FLUSH PRIVILEGES;
mysql> quit

তারপরে নোড ব্যবহার করে সংযোগ দেওয়ার চেষ্টা করুন


@ এসকি বিস্তারিত জানতে আমার উত্তর দেখুন।
এইডিন

1
অ্যাডিন ধন্যবাদ, এটি খুব সহায়ক।
স্কাই

17

যদিও গৃহীত উত্তরটি সঠিক, আমি একটি নতুন ব্যবহারকারী তৈরি করা এবং তারপরে সেই ব্যবহারকারীকে ডেটাবেস অ্যাক্সেস করতে ব্যবহার করতে পছন্দ করব।

create user nodeuser@localhost identified by 'nodeuser@1234';
grant all privileges on node.* to nodeuser@localhost;
ALTER USER 'nodeuser'@localhost IDENTIFIED WITH mysql_native_password BY 'nodeuser@1234';

2
যদি কেউ এই পথে যেতে চান, তবে এখানে কিছু ব্যাখ্যা সহ একটি নিবন্ধটি দেওয়া হয়েছে: ডিজিটালওসন / কম্যুনিটি / টিউটোরিয়ালস_…
ডেভিন

12

আপনি যদি এই ত্রুটির মুখোমুখি হয়ে থাকেন তবে তবুও MySQLসংস্করণ ৮ ব্যবহার করতে চান তবে আপনি যখন ডাটাবেসটি ব্যবহার করে তৈরি করেন তখন মাইএসকিউএল সার্ভারকে উত্তরাধিকার প্রমাণীকরণ প্লাগইন ব্যবহার করতে বলার মাধ্যমে এটি অর্জন করতে পারেন Docker

সুতরাং, আপনার composeফাইলটি দেখতে এইরকম হবে:

# Use root/example as user/password credentials

version: '3.1'

services:

  db:
    image: mysql:8.0.15
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
       MYSQL_ROOT_PASSWORD: 'pass'
       MYSQL_DATABASE: 'db'
       MYSQL_USER: 'user'
       MYSQL_PASSWORD: 'pass'
    ports:
      - 3318:3306
    # Change this to your local path
    volumes:
      - ~/Database/ORM_Test:/var/lib/mysql

আমি এটি ব্যবহার করছি command, তবে mysqlনোড.জেএস
পেয়েছি

পূর্ণ ক্ষেত্রে স্টেকট্র্যাস এখানে: pastebin.com/SzayQzdh এবং Docker-compose.yml : pastebin.com/7pUrWYDs ত্রুটি নিজেই:Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
জুহাকে Untinen

1
@ জুহান্টিন নিশ্চিত করে নিন যে আপনি কোনও ডকার পাত্রে (ডকার-কমপোজ দ্বারা তৈরি একটি) এবং ভলিউম (~ / ডাটাবেস / ওআরএম_স্টেস্ট) সরিয়েছেন এবং তারপরে আবার 'ডকার-কমপোজ আপ' চালিয়েছেন। অন্যথায় 'কমান্ড' থেকে পরিবর্তনগুলি প্রয়োগ করা হবে না। এটি আমার ক্ষেত্রে সহায়তা করেছে।
ভিটালি ইভানভ

11

মাইকিউএল সর্বশেষতম ডকার পাত্রে

ALTER USER root IDENTIFIED WITH mysql_native_password BY 'password';

9

যদি অল্টার ব্যবহারকারী ... কমান্ড লাইনটি আপনার পক্ষে কাজ করে না এবং আপনি যদি উইন্ডোজ 10 ব্যবহার করেন তবে এই পদক্ষেপগুলি অনুসরণ করার চেষ্টা করুন:

1) উইন্ডোজ অনুসন্ধান বারে মাইএসকিউএল টাইপ করুন

2) মাইএসকিউএল উইন্ডোজ ইনস্টলার - সম্প্রদায়টি খুলুন

3) "মাইএসকিউএল সার্ভার" সন্ধান করুন এবং পুনরায় কনফিগার করতে ক্লিক করুন ধাপ 3

4) "প্রমাণীকরণের পদ্ধতি" পর্যায়ে পৌঁছা পর্যন্ত "পরবর্তী" এ ক্লিক করুন

5) "প্রমাণীকরণের পদ্ধতি" পর্যায়ে দ্বিতীয় বিকল্প "লিগ্যাসি প্রমাণীকরণের পদ্ধতি ব্যবহার করুন" পরীক্ষা করুন পদক্ষেপ 5

6) তারপরে উইন্ডোজ ইনস্টলার দ্বারা শেষ অবধি প্রদত্ত পদক্ষেপগুলি অনুসরণ করুন

)) এটি হয়ে গেলে, উইন্ডোজ অনুসন্ধান বার থেকে "পরিষেবাদি" এ যান, "মাই এসকিএল ৮১" ক্লিক করুন "

এখন, আবার চেষ্টা করুন, মাইএসকিউএল এবং নোড.জেএস এর মধ্যে সংযোগ কাজ করা উচিত!


4

মাইএসকিউএল ৮.০-এ, এর caching_sha2_passwordচেয়ে ডিফল্ট প্রমাণীকরণ প্লাগইনmysql_native_password. ...

এই প্রশ্নের বেশিরভাগ উত্তরগুলির থেকে প্রমাণীকরণ প্রক্রিয়াটি ডাউন-গ্রেডে পরিণত caching_sha2_passwordহয় mysql_native_password। সুরক্ষা দৃষ্টিকোণ থেকে এটি বেশ হতাশাব্যঞ্জক।

এই দস্তাবেজটি ব্যাপকভাবে আলোচনা করে caching_sha2_passwordএবং অবশ্যই প্রমাণীকরণ পদ্ধতিটি ডাউনগ্রেড করার জন্য কেন এটি প্রথম পছন্দ নয়।

সেই সাথে, আমি বিশ্বাস করি যে এইডিনের উত্তরটি গ্রহণযোগ্য উত্তর হওয়া উচিত। প্রমাণীকরণ পদ্ধতিটি ডাউনগ্রেড করার পরিবর্তে, এমন সংযোগকারী ব্যবহার করুন যা সার্ভারের সংস্করণটির পরিবর্তে মিলে।


3

মূল ডকুমেন্টেশন আপনি এখানে দেখতে পাবেন: https://dev.mysql.com/doc/dev/connector-nodejs/8.0/

'use strict';

const mysqlx = require('@mysql/xdevapi');

const options = {
  host: 'localhost',
  port: 33060,
  password: '******',
  user: 'root',
  schema: 'yourconference'
};

mysqlx.getSession(options)
  .then(session => {
          console.log(session.inspect());
           session.close();
  }).catch(err => {
    console.error(err.stack);
    process.exit(1);
  });

এটি আরও জটিল দেখায়, তবে আমি মনে করি আমাদের সরকারী গাইড অনুসরণ করা উচিত! খ
জুনিয়উং ওহ

3

আমার সার্ভারে এমওয়াইএসকিউএল এবং অন্য সার্ভারে নোডেজ অ্যাপ্লিকেশন রয়েছে

এমওয়াইএসকিউএল ওয়ার্কবেঞ্চে নিম্নলিখিত কোয়েরিটি সম্পাদন করুন

মাইএসকিএল_নেটিভ_প্যাসওয়ার্ডের মাধ্যমে ব্যবহারকারীর 'রুট' @ '%' সনাক্তকরণের পরিবর্তে 'পাসওয়ার্ড'


2

উইন্ডোজ 10 মাইএসকিএল-তে বিদ্যমান মাইএসকিএল 8.0 ইনস্টল করার জন্য,

(1) লঞ্চ ইনস্টলার,

(২) কুইকএকশন (মাইএসকিউএল সার্ভারের বাম দিকে) এর অধীনে "পুনরায় কনফিগার করুন" ক্লিক করুন click

(3) আগত না হওয়া পর্যন্ত পরবর্তী 2 টি স্ক্রিনের মাধ্যমে অগ্রিম ক্লিক করুন

(4) "প্রমাণীকরণ পদ্ধতি" এ, "উত্তরাধিকার প্রমাণীকরণ পদ্ধতি ব্যবহার করুন (মাইএসকিউএল 5.x সামঞ্জস্য পুনরুদ্ধার করুন" নির্বাচন করুন)

(5) ইনস্টল সম্পূর্ণ না হওয়া পর্যন্ত ক্লিক করা চালিয়ে যান


2

মাইএসকিউএল 8+ এর সাথে নতুন ডিফল্ট প্রমাণীকরণের caching_sha2_passwordপরিবর্তে mysql_native_password। নতুন এবং আরও সুরক্ষিত প্রমাণীকরণ পদ্ধতিটি দেশীয় mysqlপ্যাকেজটির দ্বারা এখনও সমর্থিত নয় , তবে এর @mysql/xdevapiপরিবর্তে আপনার প্যাকেজটি ব্যবহার করা উচিত , যা আনুষ্ঠানিকভাবে ওরাকল দ্বারা সমর্থিত এবং রক্ষণাবেক্ষণ করা হয়েছে।

নতুন প্যাকেজ ইনস্টল করতে, চালান:

npm install @mysql/xdevapi --save --save-exact

ডাটাবেসের সাথে সংযোগ স্থাপন করতে এবং কিছু ভ্যালু অন্তর্ভুক্ত করুন:

const mysqlx = require('@mysql/xdevapi');
var myTable;

mysqlx
    .getSession({
        user: 'root',
        password: '*****',
        host: 'localhost',
        port: 33060
    })
    .then(function (session) {

    // Accessing an existing table
    myTable = session.getSchema('Database_Name').getTable('Table_Name');

    // Insert SQL Table data
    return myTable
        .insert(['first_name', 'last_name'])
        .values(['John', 'Doe'])
        .execute()
    });

অফিসিয়াল প্যাকেজ নথিপত্রগুলি এখানে পাওয়া যাবে: https://dev.mysql.com/doc/dev/connector-nodejs/8.0/


2

আপনি যদি ডকার ব্যবহার করেন তবে এটি আমার পক্ষে কাজ করেছিল!

মধ্যে docker-compose.ymlনিম্নলিখিত পংক্তিগুলি যোগ করুন:

mysql:
   ...    
   command: --default-authentication-plugin=mysql_native_password
   restart: always

তারপরে, আবার downধারক এবংup


1

উপরের উত্তরগুলি ছাড়াও; নীচের আদেশটি কার্যকর করার পরে

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'

আপনি যদি ত্রুটি পান তবে:

[ERROR] Column count of mysql.user is wrong. Expected 42, found 44. The table is probably corrupted

তারপরে প্রশাসক হিসাবে সেমিডিতে চেষ্টা করুন; সেমিডিতে মাইএসকিউএল সার্ভার বিন ফোল্ডারের পথ নির্ধারণ করুন

set path=%PATH%;D:\xampp\mysql\bin;

এবং তারপরে কমান্ডটি চালান:

mysql_upgrade --force -uroot -p

এটি সার্ভার এবং সিস্টেম সারণী আপডেট করা উচিত।

তারপরে ওয়ার্কবেঞ্চের কোয়েরিতে আপনার নীচের কমান্ডগুলি সফলভাবে চালাতে সক্ষম হবেন:

 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'    

তারপরে নিম্নলিখিত কমান্ডটি কার্যকর করতে ভুলবেন না:

flush privileges;

এই সমস্ত পদক্ষেপের পরে আপনার মাইএসকিউএল ডাটাবেসে সফলভাবে সংযোগ করতে সক্ষম হওয়া উচিত। আশাকরি এটা সাহায্য করবে...


0

কেবল মাইএসকিউএল সার্ভার ইনস্টলার ইনস্টল করুন এবং আমার এসকিউএল সার্ভারটি পুনরায় কনফিগার করুন ... এটি আমার পক্ষে কাজ করেছে।


0

আপনার মাইএসকিউএল ব্যবহারকারীর জন্য সুবিধাগুলি এবং ব্যবহারকারীর নাম / পাসওয়ার্ড পরীক্ষা করুন।

ত্রুটিগুলি ধরায়ের জন্য ওভাররাইড _delegateErrorপদ্ধতিটি ব্যবহার করা সর্বদা কার্যকর । আপনার ক্ষেত্রে এটি দেখতে হবে:

var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "password",
  insecureAuth : true
});

var _delegateError = con._protocol._delegateError;

con._protocol._delegateError = function(err, sequence) {
    if (err.fatal)
        console.trace('MySQL fatal error: ' + err.message);

    return _delegateError.call(this, err, sequence);
};

con.connect(function(err) {
  if (err) throw err;

  console.log("Connected!");
});

এই নির্মাণ আপনাকে মারাত্মক ত্রুটিগুলি সনাক্ত করতে সহায়তা করবে।


0

স্রেফ অসংখ্য জিনিস চেষ্টা করার পরে এটি বের করে আনা হয়েছে। পরিশেষে আমার জন্য এটি কী করেছিল তা require('dotenv').config()আমার .sequelizercফাইলে যুক্ত হয়েছিল । দৃশ্যত সিক্যুয়ালাইজ-ক্লাইভ এনভ ভেরিয়েবলগুলি পড়ে না।


0

ডাউন গ্রেডিং হিসাবে ভাল বিকল্প হতে পারে না:

  1. এটি কোনও কারণে আপগ্রেড করা হয়েছে (আরও ভাল প্রমাণীকরণ সরবরাহ করতে)।
  2. এই ধরণের পরিবর্তনগুলি করার জন্য আপনার কাছে পর্যাপ্ত অনুমতি নাও থাকতে পারে।

mysql2এর জায়গায় আপনি প্যাকেজ ব্যবহার করতে পারেন mysql। এটি বেশিরভাগ এপিআই মাইএসকিএলজেএস এর সাথে সামঞ্জস্যপূর্ণ। এছাড়াও, এটি সমর্থন প্রতিশ্রুতি আছে।

এটি ব্যবহার করুন: const mysql = require('mysql2/promise')

আপনি mysql2এখানে আরও পড়তে পারেন : https://www.npmjs.com/package/mysql2

আশা করি এটা সাহায্য করবে. :)


0

আপনি ওআরএম, বিল্ডার ইত্যাদিকে এড়িয়ে যেতে পারেন এবং এবং আপনার ডিবি / এসকিউএল পরিচালনকে সহজ করে sqlerএবং ব্যবহার করতে পারেন sqler-mdb

-- create this file at: db/mdb/read.table.rows.sql
SELECT TST.ID AS "id", TST.NAME AS "name", NULL AS "report",
TST.CREATED_AT AS "created", TST.UPDATED_AT AS "updated"
FROM TEST TST
WHERE UPPER(TST.NAME) LIKE CONCAT(CONCAT('%', UPPER(:name)), '%') 
const conf = {
  "univ": {
    "db": {
      "mdb": {
        "host": "localhost",
        "username":"admin",
        "password": "mysqlpassword"
      }
    }
  },
  "db": {
    "dialects": {
      "mdb": "sqler-mdb"
    },
    "connections": [
      {
        "id": "mdb",
        "name": "mdb",
        "dir": "db/mdb",
        "service": "MySQL",
        "dialect": "mdb",
        "pool": {},
        "driverOptions": {
          "connection": {
            "multipleStatements": true
          }
        }
      }
    ]
  }
};

// create/initialize manager
const manager = new Manager(conf);
await manager.init();

// .sql file path is path to db function
const result = await manager.db.mdb.read.table.rows({
  binds: {
    name: 'Some Name'
  }
});

console.log('Result:', result);

// after we're done using the manager we should close it
process.on('SIGINT', async function sigintDB() {
  await manager.close();
  console.log('Manager has been closed');
});

-1

আমার মাইএসকিউএলে একই সমস্যা রয়েছে এবং আমি মাইএসকিউএলের সাথে সংযোগ স্থাপনের জন্য এক্সএএমপিপি ব্যবহার করে মাইএসকিউএল (নিয়ন্ত্রণ প্যানেল - প্রশাসনিক সরঞ্জাম - পরিষেবাদি) এবং উইন্ডোজ db.js ফোল্ডারে (ডাটাবেসের জন্য দায়ী) I পাসওয়ার্ডটি খালি করুন (এখানে আপনি দেখতে পারেন :)

const mysql = require('mysql');
const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: ''
});

দয়া করে যে সমস্যার মুখোমুখি হয়েছিলেন তার জবাব হিসাবে আপনি যে সমস্যার মুখোমুখি হয়ে যাবেন না
অ্যালো এ সেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.