使用新的主机

最近感觉我的服务器内存有点低,只有1G的,然后就想更换新的,旧的不能弹性升级...

主要是新的服务器的软件安装,以及数据恢复,顺便也做个软件升级,例如pipmysql等,于是问题就来了,下面说说我遇到了什么样的问题吧。

首先安装pip9.0.0

安装好了,使用pip的时候,遇到个UnicodeError的问题,我就找哪里的编码又问题了,后来发觉环境变量LC_ALL没设定,而locale查看,全部的编码都是zh_CN_UTF-8,那我就试试修改LC_ALL="en_US.UTF-8”,结果不报错了。不知道是哪个部分的编码设置问题,不过后来看pip 的github上已经修复了这个问题,估计在9.0.1版本里解决了吧

安装mysql5.7

安装mysql 遇到 mysqld_safe问题

才发现mysqld_safe用来启动mysqld的,然后可能是文件权限的问题,后来stop之后,再启动就好了。 restart没什么效果

安装必要软件/包

yum install gcc python-devel mysql-devel openssl pcre openssl-devel pcre-devel

恢复mysql数据

遇到一个问题就是,我重新启动项目的时候,表已经建立在数据库里,然后我使用备份的数据文件的数据,里面的表的字段顺序,有一些和新的表不一样,导致Insert的字段对不上

  1. 解决办法就在Insert 的表后面加上字段名

  2. 也可以使用下面这个方法备份恢复

select `timebasemodel_ptr_id`, `title`, `category_id`, `enable_comment`, `plubished`, `content`, `file_used` from `blog_article` into outfile "/tmp/blog_article.sql";
LOAD DATA INFILE "/tmp/blog_article.sql" into table `blog_article`(`timebasemodel_ptr_id`, `title`, `category_id`, `enable_comment`, `plubished`, `content`, `file_used`);

注意这个方法的使用条件:

  1. dump和load都需要root用户
  2. 报错The MySQL server is running with the --secure-file-priv option so it cannot execute this statement的解决办法:查看位置:SHOW VARIABLES LIKE "secure_file_priv”; , 将文件放入对应的secure-file 位置

额外问题

mysql使用的版本是5.7,项目在写入表的时候出现编码问题,解决办法:

连接数据库的时候在mysql_url后面应该加上?charset=utf8

由于我项目少,数据少,否则就非常吃力了。有时间要学习下Docker的使用啊,迁移项目的时候也不用烦安装软件的问题了,哈哈...