【问题4】
[问题3] 解决了 预防“代码文件”丢失的问题,但是 还有个 MySQL 数据库,如何处理?
1、把 MySQL 的 data 目录移到 /www 目录下(注意:配置文件中得 data 目录也得调整);
2、把 MySQL 的 运行用户名 由 mysql 改为 当前用户(jianbao)
后来,我干脆把 MySQL 的安装位置给整体调整了,由先前的 /opt/software/mysql 拷贝 一份为 /www/mysql 。 注意:有些生成的静态库拷贝不过去,即使是 root 权限也不行。主要是在编译安装PHP时,用到了编译参数:
--mysql=/opt/software/mysql --with-pdo-mysql=/opt/software/mysql --with-mysqli=/opt/software/mysql/bin/mysql_config
编译PHP时,会在 /opt/software/mysql 目录生成一些不可移动的(只读的),PHP(php-fpm)自身又需要用到的 MySQL 相关类库。
所以,不要删除 /opt/software/mysql 目录,也不要删除 mysql 用户。
另外,/www/mysql 中的数据库也不要重新“初始化安装”,即不要执行 “/www/mysql/scripts/mysql_install_db”等命令,只需要把类似 basedir,datadir 配置改下即可!
安装 MySQL 可参考:Ubuntu 12 安装 MySQL 5.6.26 及 问题汇总
【问题5】
[问题4]解决了 MySQL 数据存储位置转移问题,但是当我重启系统后,发现设置得 MySQL“自启动”没有生效,即启动失败。
“自启动”是通过以下命令安装服务实现的:
sudo update-rc.d mysqld defaults
通过查看 MySQL 的错误日志,提示说 /www/mysql 目录不存在。很显然,在开机后内核执行“service mysqld start”时,Windows下的“共享文件夹”ubuntu 还未开始(或还未成功)挂载到 /www 目录,所以导致 MySQL "自启动"失败。
同理,Nginx 也“自启动”失败。最后的解决方案如下:
$ sudo vim /etc/rc.local
在 exit 0 代码前添加如下代码:
service nginx start
service mysqld start
删除通过工具 update-rc.d 设置的 Nginx、MySQL 开机自启动服务:
sudo update-rc.d -f mysqld remove
sudo update-rc.d -f nginx remove
注意:系统服务 service nginx start|stop|restart 是不会受影响的,只是开机的时不会去调用 service nginx start 罢了。