您的位置:首页 > 数据库

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

2017-05-06 20:27 351 查看
背景: 原来数据库是存放在阿里的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’
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐