0
点赞
收藏
分享

微信扫一扫

strapi默认数据库sqlite更改为mysql数据库

以沫的窝 2022-01-21 阅读 94

一、本地安装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命令后跟冒号)
这样就可以解决以上问题了

举报

相关推荐

0 条评论