• 数据库从RDS迁入自己服务器上问题记录


    背景: 原来数据库是存放在阿里的rds数据库上的,现在要迁入自己服务器上的数据库上
    ,使用navicat的数据传输,把整个数据库全部传输到自己数据库服务器上,包括自定义的函数

    出现的问题:
    1 app上的数据有的显示正常,有的不能显示,比较诡异.
    排除:
    原来rds数据库上连接时使用的用户名称是dev_x1,所以自定义函数是这样的,导入到新的服务器
    上的数据库使用root账号连接的.
    原来的自定义函数脚本:

    CREATE DEFINER=`dev_x1`@`%` FUNCTION `getLikeNum`(`did` int) RETURNS int(11)
    BEGIN
        DECLARE reScore INT;
        select count(*) into reScore from dynamiclike where  dynamicid=did;
        RETURN reScore;
    END

    在新的数据库上没有dev_x1这个用户,所以调用此自定义函数一直出错,把DEFINER=dev_x1@%改为
    DEFINER=root@% 后正常

    2 还有一部分app上的接口数据不能显示
    接口返回说dynamicComment表不存在,在原来数据上执行
    select * from dynamicComment 正常,在新的数据库上执行,
    数据库直接提示表不存在,噢,知道原因了,新的数据库默认表名称是区别大小写的
    修改忽略大小写:
    http://blog.csdn.net/wocjj/article/details/7415200
    3 有发现新的问题,在app客户端上发布的文章显示乱码,赶紧在服务器上查看数据库的字符:
    mysql> show variables like ‘character%’;
    +————————–+—————————-+
    | Variable_name | Value |
    +————————–+—————————-+
    | character_set_client | utf8 |
    | character_set_connection | utf8 |
    | character_set_database | utf8mb4 |
    | character_set_filesystem | binary |
    | character_set_results | utf8 |
    | character_set_server | latin1 |
    | character_set_system | utf8 |
    | character_sets_dir | /usr/share/mysql/charsets/ |
    +————————–+—————————-+
    8 rows in set

    连接上Mysql后,修改my.cnf
    [mysqld]
    character-set-client-handshake = FALSE
    character-set-server = utf8mb4
    collation-server = utf8mb4_unicode_ci
    init_connect=’SET NAMES utf8mb4’

  • 相关阅读:
    linux安装日志切割程序
    Linux下安装JDK
    深入理解Java注解类型(@Annotation)
    23种设计模式--代理模式-Proxy
    23种设计模式--建造者模式-Builder Pattern
    23种设计模式--工厂模式-Factory Pattern
    23种设计模式
    Java集合框架学习笔记
    MySQL入门笔记(一)
    二进制运算基础
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13310636.html
Copyright © 2020-2023  润新知