一、本地安装mysql数据库
终端输入如下命令
1、PATH="$PATH":/usr/local/mysql/bin
2、mysql -u root -p
3、create database 数据库名称 default character set utf8 collate utf8_general_ci; [//]: # 创建数据库
4、drop database <数据库名>; 删除数据库
二、更改了strapi项目中config/database.js文件
module.exports = ({ env }) => ({
defaultConnection: 'default',
connections: {
default: {
connector: 'bookshelf',
settings: {
// client: 'sqlite',
// filename: env('DATABASE_FILENAME', '.tmp/data.db'),
client: 'mysql',
host: 'localhost',
port: 3306,
database: 'meishu',
username: 'root',
password: '123456',
},
options: {
useNullAsDefault: true,
},
},
},
});
完成以上步骤之后npm run develop运行strapi项目,发现报错,报错内容如下:
[2022-01-21T06:18:08.800Z] debug ⛔️ Server wasn't able to start properly.
[2022-01-21T06:18:08.801Z] error Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
at Handshake.Sequence._packetToError (/Users/tu/Desktop/company-project/fineartsstrapi/node_modules/mysql/lib/protocol/sequences/Sequence.js:47:14)
at Handshake.ErrorPacket (/Users/tu/Desktop/company-project/fineartsstrapi/node_modules/mysql/lib/protocol/sequences/Handshake.js:123:18)
at Protocol._parsePacket (/Users/tu/Desktop/company-project/fineartsstrapi/node_modules/mysql/lib/protocol/Protocol.js:291:23)
at Parser._parsePacket (/Users/tu/Desktop/company-project/fineartsstrapi/node_modules/mysql/lib/protocol/Parser.js:433:10)
at Parser.write (/Users/tu/Desktop/company-project/fineartsstrapi/node_modules/mysql/lib/protocol/Parser.js:43:10)
at Protocol.write (/Users/tu/Desktop/company-project/fineartsstrapi/node_modules/mysql/lib/protocol/Protocol.js:38:16)
at Socket.<anonymous> (/Users/tu/Desktop/company-project/fineartsstrapi/node_modules/mysql/lib/Connection.js:88:28)
at Socket.<anonymous> (/Users/tu/Desktop/company-project/fineartsstrapi/node_modules/mysql/lib/Connection.js:526:10)
at Socket.emit (events.js:375:28)
at addChunk (internal/streams/readable.js:290:12)
at readableAddChunk (internal/streams/readable.js:265:9)
at Socket.Readable.push (internal/streams/readable.js:204:10)
at TCP.onStreamRead (internal/stream_base_commons.js:188:23)
--------------------
at Protocol._enqueue (/Users/tu/Desktop/company-project/fineartsstrapi/node_modules/mysql/lib/protocol/Protocol.js:144:48)
at Protocol.handshake (/Users/tu/Desktop/company-project/fineartsstrapi/node_modules/mysql/lib/protocol/Protocol.js:51:23)
at Connection.connect (/Users/tu/Desktop/company-project/fineartsstrapi/node_modules/mysql/lib/Connection.js:116:18)
at /Users/tu/Desktop/company-project/fineartsstrapi/node_modules/knex/lib/dialects/mysql/index.js:68:18
at new Promise (<anonymous>)
at Client_MySQL.acquireRawConnection (/Users/tu/Desktop/company-project/fineartsstrapi/node_modules/knex/lib/dialects/mysql/index.js:63:12)
at create (/Users/tu/Desktop/company-project/fineartsstrapi/node_modules/knex/lib/client.js:290:39)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! my-project@0.1.0 develop: `strapi develop`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the my-project@0.1.0 develop script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/tu/.npm/_logs/2022-01-21T06_18_08_820Z-debug.log
TUdeMac-mini-3:fineartsstrapi tu$ npm run develop
根据报错信息了解到 mysql8.0以上加密方式,Node还不支持
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’;(输入如下命令重启mysql,mysql命令后跟冒号)
这样就可以解决以上问题了