前述
本身是学java的,因为种种原因需要用到php,小菜一枚,自有服务器linux(centos7) 原有mysql(已经有其他项目在使用了)。然后有个新项目要用php,于是就找了linux 一键安装phpstudy(PHP+Apache+Mysql),安装完后才发现由于粗心没发现一键安装自带了mysql覆盖了原来的mysql,万幸的是原mysql的数据还在,只是原来的启动方式启不来了。。。于是开始了复原mysql之旅,继而修改phpstudy 的web 80端口(已经有其他项目占用了80所以得让phpstudy启用其他的端口),禁止自启自停mysql,独立mysql。。。。
停止phpstudy stop后
1、复原mysql
其实也可以把旧数据都导到phpstudy自带的mysql上,但是phpstudy的启动和停止都会影响mysql的启动和停止,所以放弃了移数据的想法。
之前的启动方式是service mysqld start,试了一下系统报了 unit xxx mysqld.service not found.
我想应该是mysqld的服务不见了,于是从 /usr/sbin 和 /usr/bin 查看相关的mysql文件发现
/usr/bin下my开头的一些服务文件不见了,于是就找回它们(从其他机子,或其他可运行的mysql上找到这些文件放回去)
/usr/sbin下的mysqld文件不见了,于是就找回它
继续执行 service mysqld start,依然报unit xxx...但好像多了一个 not found /bin/systemcl....的提示,我怀疑是系统服务不在,/usr/lib/systemd/system进入找回它们mysqld@.service 和 mysqld.service
继续执行发现错误信息变了,但提示 see ... message detail,意思是让人去看详细日志
进入/var/log/ 查看message 发现
有一些我复制找回来的文件没有执行权限 chmod u+x 修复它
有一些我复制找回来的文件没有读写权限 chmod 777 修复它
xxx.pid不存在,创建它修改my.conf的pid指向等等
有些文件夹不存在,create it...(比如/var/lib/mysql-files)
【有时报了
Unable to determine if daemon is running: Inappropriate ioctl for device
mysqld.service: control process exited, code=exited status=1
此时就需要去看/var/log/mysqld.log了【如果是service mysql start就看mysql.log】因为message告诉我们系统在Starting MySQL Server...了所以有错误就需要去看mysqld.log启动日志
经查看报/usr/sbin/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 2 - No such file or directory),说是mysqld.pid不能写,于是创建这个目录
】
不断的启动并查看message的提示。。。。
哈哈,至此mysql启动成功,还原成功
2、废弃phpstudy自带的mysql ,把mysql独立出来
旧mysql是还原了,但是在启动phpstudy start / stop的时候,mysql会随便它 start 和 stop,于是需要去除phpstudy与mysql的硬性关联。
在/usr/bin下查找phpstudy启动脚本(它指向的是/phpstudy/phpstudy.sh),发现它执行了mysql
注释掉 /phpstudy/mysql/support-files/mysql.server start
并在do_stop中注释掉killall mysqld
到此取消了mysql的随phpstudy自启自停(本来是要启动试试phpstudy的,但是在phpstudy启动脚本中发现了httpd Apache的相关操作,考虑到服务器上之前运行了禅道也是使用了Apache 所以得继续优化这个脚本)
3、优化phpstudy中的Apache
继续打开/usr/bin/phpstudy脚本
将do_stop中的killall httpd注释,并增加一行/phpstudy/server/httpd/bin/apachectl stop (停止apache的操作)
将do_restart中的killall httpd注释,并增加一行/phpstudy/server/httpd/bin/apachectl stop (停止apache的操作)
将virtualhost *:80的端口改为自己定义例如8081,然后保存
phpstudy启动脚本修改完成
接下来修改apache的脚本,打开/phpstudy/server/httpd/conf/httpd.conf
将Listen 80的端口修改为自己定义例如8081
将VirtualHost *:80的端口修改为自己定义例如8081
apache的脚本修改完成
4、测试
phpstudy start 启动没有问题
phpstudy restart 重启没有问题,访问正常,其apache的程序也不影响
phpstudy stop 停止没有问题,停止后查看mysql,mysql 线程依然存在