sqlite导出数据 导入 mysql/PbootCMS mysql/mysql 8.0

环境

1.Server version: 8.0.21 MySQL Community Server - GPL
2.PBooyCMS 3
3.sqlite数据转移到mysql

问题描述

由于mysql升级到8.0版本;字符集设置,以及数据库的连接认证都会与之前版本不一致,造成诸多报错。所做的工作,便是将多项设置,人为的改回与先前版本兼容的设置内容。

报错

1.Server sent charset unknown to the client
1.The server requested authentication method unknown to the client

设置my.cnf

  1. 大致在
/etc/mysql/
  1. 追加内容
[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
default_authentication_plugin= mysql_native_password
character-set-server=utf8

  • 注意:变为原来的验证方式,然后从新创建用户并授权即可
    default_authentication_plugin= mysql_native_password

创建数据库

  1. 登录mysql
    mysql -u root -p
    
  2. 新建表
    CREATE DATABASE `mydb` CHARACTER SET utf8 COLLATE utf8_general_ci;
    use mydb;
    
  3. 设置字符
    set names utf8;
    
  4. 导入SQL文件
    source /PbootCMS/static/backup/sql/pbootcms.sql
    
    这里导入的SQL文件,即默认的原始文件。因为这份文件没有错误,用于创建表结构,表数据在后续步骤会被更新。

数据库转移

1.直接安装Navicat15
使用这个版本的,可以直接将sqlite打开并且准确导出数据到文件,最后再导入到 mysql.
2.navicat 连接mysql
3.Navicat 打开sqlite
4.将sqlite里的数据通过导出引导,把数据全部导出到txt,设置几乎一路默认。
5.在打开的mysql数据库里,应该有默认已经建好的表,直接右键导入引导,将所有已导出的txt选中,默认设置,注意更改删除原数据,而非追加数据。完成后,便可将原来的sqlite数据全部导入到mysql中。

PBootCMS 设置mysql数据库

将config文件夹下的database.php内容改为

 //'type' => 'sqlite', // 数据库连接驱动类型: mysqli,sqlite,pdo_mysql,pdo_sqlite
        
        'type' => 'mysqli', // 数据库连接驱动类型: mysqli,sqlite,pdo_mysql,pdo_sqlite
        
        'host' => '127.0.0.1', // 数据库服务器
        
        'user' => 'root', // 数据库连接用户名
        
        'passwd' => 'XXXXXXX', // 数据库连接密码
        
        'port' => '3306', // 数据库端口
                          
        'dbname' => 'XXXXXX' // 去掉注释,启用mysql数据库,注意修改前面的连接信息及type为mysqli
        
        //'dbname' => '/data/b202929125310c0ed423b705584bd13a.db' // 去掉注释,启用Sqlite数据库,注意修改type为sqlite

其他问题欢迎留言讨论

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页