新手小白第一次在WDCP面板装InnoDB引擎时,是不是经常遇到这种魔幻场景?明明照着教程敲命令,装完发现后台打不开了,或者数据库突然不认中文了。别慌!今天咱们就掰碎了聊透这个坑,手把手教你从源码安装到避雷指南。
安装前的死亡选择题
到底该用哪个configure参数?
网上教程五花八门,有的让你用--with-plugins=innobase,有的要加--with-extra-charsets=all。其实关键在于这两个参数的组合拳:
- 基础配置:./configure --prefix=/www/wdlinux/mysql/ --with-plugins=innobase
- 字符集保命符:必须追加--with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=all
去年有个兄弟第一条,结果GBK字符集体失踪,客户资料全变成火星文。记住,字符集就像方言翻译官,缺了它数据库就成文盲了。
手把手安装流程
七步成盒...哦不,七步成功指南
- 下载源码包:wget http://dl.wdlinux.cn/files/lanmp_v3.tar.gz
- 解压到指定目录:tar zxvf lanmp_v3.tar.gz
- 进mysql源码目录:cd mysql-5.1.63
- 执行configure(重点!):
./configure --prefix=/www/wdlinux/mysql/ \--with-plugins=innobase \--with-charset=utf8 \--with-collation=utf8_general_ci \--with-extra-charsets=all
- 编译安装 && make install
- 重启服务:service mysqld restart
- 检查引擎:登录mysql执行show engines;
有个学员在第三步卡了三小时,后来发现是没装gcc编译器。建议提前用yum install gcc-c++打好基础。
五大夺命连环坑
1. 装完后台404怎么办?
• 检查/www/wdlinux/mysql/var目录下的ib_logfile*文件,全删了再重启
• 修改my.cnf增加innodb_force_recovery=6临时启动
• 去年某房产网因此丢失三天数据,血的教训记得备份
2. 中文变问号怎么救?
错误现象 | 解决方案 |
---|---|
存入乱码 | 检查my.cnf的character_set_server=utf8 |
查询乱码 | 执行SET NAMES utf8强制编码 |
表级乱码 | ALTER TABLE转换字符集 |
有个做外贸的老板,因为latin1编码损失百万订单,现在见人就念叨字符集重要性。
3. 内存飙升到90%+?
innodb_buffer_pool_size别超过物理内存70%,小内存服务器建议这么配:
innodb_buffer_pool_size=512Minnodb_log_file_size=128Minnodb_flush_method=O_DIRECT
某教育机构用默认配置,结果凌晨三点数据库崩了,值班小哥差点哭出声。
4. 安装脚本报permission denied?
八成是装了云锁之类的安全软件,两条命令解决:
ps -ef | grep yunsuokill -9 进程号
卸载完记得重装,别问我怎么知道的。
5. 主从同步总失败?
检查binlog_format=ROW模式,事务隔离级别用READ-COMMITTED。有个DBA调了这两个参数,同步延迟从30分钟降到3秒。
小编踩坑实录
刚开始学的时候,觉得装引擎就是**粘贴命令的事。直到有次给客户装环境,忘记加--with-extra-charsets=all,结果第二天客户打电话骂街——他们用了十年的big5编码全乱码。现在我的安装脚本开头永远写着三行血红大字:检查字符集!检查字符集!!检查字符集!!!
最近发现个骚操作:用mysqldump导出结构时加上--default-character-set=utf8mb4,能预防99%的编码问题。不过要注意WDCP老版本对utf8mb4支持不友好,升级前最好先测试。
说真的,源码安装就像拼乐高,缺个零件整个就垮。新手建议先在虚拟机练手,装坏了直接快照恢复。别学某些愣头青直接在生产环境折腾,那真是分分钟社会性死亡。