原服务器环境:
手工搭建LNMP环境(CentOS7.2 PHP7.0 mysql5.7)
因为一些需求,想迁移到宝塔环境,直接安装宝塔:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
安装好bt面板,打开提示的网址登陆,但是访问不了。
当看到:
Warning:
If you cannot access the panel,
release the following port (8888|888|80|443|20|21) in the security group
立马去设置防火墙开放端口。
参考:
https://blog.csdn.net/weixin_34080571/article/details/93165595
https://blog.csdn.net/irokay/article/details/72717132
yum install iptables-services
vim /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8888 -j ACCEPT
systemctl restart iptables.service
iptables -L -n
或者直接指令添加:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 8888 -j ACCEPT
iptables -A INPUT -p tcp --dport 888 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
结果还是访问不了,搞了蛮久,朋友说服务器商的后台还要开放端口才行
又是一波端口开放操作,终于看到宝塔界面了。
进入界面,提示LNMP包环境(php5.6 nginx mysql5.6...)和 Apache环境,
然后手贱,没有备份数据库,直接点了安装。
然后原网站访问不了,数据库也访问不了...
经过十来分钟bt安装好了环境,立即添加网站,
然后把数据库mydata文件夹复制到宝塔数据库目录下/www/server/data:
cp /var/lib/mysql/database /www/server/data/database -r
配置账号,设置权限,所属用户mysql
原以为ok了,谁知数据库中有些表是Innodb
当使用InnoDB
引擎时,一共会产生三种文件:
.ibd
:包含每个table的数据和索引.frm
:用来描述table的结构等ibdata1
:包含所有table的字典和历史操作
即在data
文件夹中,每个数据库分别是一个文件夹,此文件夹中包含每个table
的.ibd
文件和.frm
文件;同时,在data
文件夹下,ibdata1
文件会记录MySQL中所有InnoDB
数据库中table
的字典和历史操作。
所以一定要记得ibdata1
这个文件。
注意还有innodb_file_per_table
这个参数设置问题
参照:https://blog.csdn.net/u012278016/article/details/88073325
直接复制数据库文件过去访问不了,然后
cp /var/lib/mysql/ib_logfile* /www/server/data/
cp /var/lib/mysql/ibdata1 /www/server/data/
结果还是不行,卸载bt的mysql5.6,提示删不了,要用rm -rf 删除目录
安装了bt的mysql5.7,再复制数据库和ib_logfile0 ib_logfile1 ibdata1过去,
表还是打不开,提示表不存在table xxx doesn't exist
一波操作,修改cnf文件啊,添加innodb_file_per_table
这个参数啊,
最后还是不行,连服务都启动不了
但是我没有删除/www/server/data/下的*.pid *.err *.index *-slow文件,不知道行不行
然后把数据库卸载,参照:
mysql安装和完全卸载
https://blog.csdn.net/Seven_tester/article/details/82663949
yum list installed | grep mysql
删除已安装的mysql
执行命令:yum -y remove [第一步命令中出现的包名]
删除mysql相关文件
执行命令:find / -name mysql
执行命令:rm -rf [上面命令查出的结果目录]
重新安装MySQL Community Server 5.7,把数据库和ib_logfile0 ib_logfile1 ibdata1覆盖过去也不行。
最后还是把数据库文件和ib_logfile0 ib_logfile1 ibdata1打包到本地的mysql5.7下成运行了,
也能读取所有的表,也是奇怪了,为啥服务器上不行
赶紧本地导出sql文件,上宝塔安装mysql,再导入
网站访问500错误,因为tp5系统的伪静态问题,配置宝塔自带的伪静态
还出现:Warning: require(): open_basedir restriction in effect....
防跨目录导致,tp5是跨目录的
参考:https://www.cnblogs.com/grimm/p/11133242.html
删除user.ini
不行!
配置open_basedir=/home/wwwroot/xlboo.com/:/tmp/:/proc/
也不行!!
重新配置目录所属者权限,分配给www
还有一些其他操作不记得了,反正最后终于终于终于能访问了...
7.3免费版的宝塔有些坑的是,phpmyadmin安装了用不了,查看端口888没有生效,
换了端口也没见成功
其他参考:
linux MySQL Community Server 5.7.9 更换数据目录位置
https://blog.csdn.net/u012576527/article/details/52268318