万事屋的CyberPanel安装使用远程数据库的成功方案(亲测有效) - 技术宅银魂 - 科技改变生活 - 万事屋 | 生活·动漫·娱乐综合社区-银魂同好聚集地

万事屋的CyberPanel安装使用远程数据库的成功方案(亲测有效)

CyberPanel是个好东西,界面好看又简洁,稳定又好用,可以让我很方便的安装和使用OpenLiteSpeed。

万事屋的CyberPanel安装使用远程数据库的成功方案(亲测有效)

但也有麻烦的地方,比如它自带Mariadb服务器。。。

虽然安装时提供远程数据库服务器选项,但就是个摆设,几年了,死活连不上的BUG一直没修好过,苦苦等待安装到一半还还要提示错误,不得不重新安装,心中总有一万只草泥马路过想问候CyberPanel开发团队。

(╯°Д°)╯︵ /(.□ . \)

今天想了个折中方案并测试成功了,所以,来万事屋记录分享下。

先确定远程数据库设置好并测试链接成功:

假设远程数据库服务器地址:192.168.1.101 

我用的是内网,外网的话建议搞SSL,万事屋教程(https://www.rei3.com/forum-post/63411.html)。

数据库地址:192.168.1.101
数据库名:cyberpanel      // 这个建议不要改,怕万一出错就麻烦了
数据库用户名:aaa     //这个可以自定义
数据库用户密码:bbb    //这个也可以自定义
数据库端口:3306  //这个根据服务器实际情况来,默认3306

先放着,到需要安装CyberPanel的服务器上,SSH登陆。

cd /usr/local/src
sh <(curl https://cyberpanel.net/install.sh || wget -O - https://cyberpanel.net/install.sh)

不要选择全部安装,其他一律“Y”or“N”即可,MySQL默认选择“N”,低配服务器不要安装“看门狗”,要不起的。

万事屋的CyberPanel安装使用远程数据库的成功方案(亲测有效)

安装完毕后,登陆

https://你的IP地址:8090

要记录和修改三个文件:

  • /usr/local/CyberCP/CyberCP/settings.py
  • /etc/cyberpanel/mysqlPassword
  • /usr/local/CyberCP/public/phpmyadmin/config.inc.php

现在,先导出cyberpanel的本地数据库,密码和用户在“settings.py”文件里能找到:

mysqldump -u root -p cyberpanel > /home/backup/cyberpanel_backup_$(date +%Y%m%d).sql

然后SSH登陆远程数据库服务器,将上面的sql数据备份导入远程数据库服务器的“cyberpanel”数据库中:

mysql -u root -p cyberpanel < cyberpanel_backup_$(date +%Y%m%d).sql

开始转移数据链接:

先对settings.py做个备份,然后编辑:

cp /usr/local/CyberCP/CyberCP/settings.py /usr/local/CyberCP/CyberCP/settings.py.bak
nano /usr/local/CyberCP/CyberCP/settings.py

在第110行左右会看到数据库所有详细,包括“mysql”和“cyberpaenl”的,都记得保存下来后,修改成自己的远程服务器的数据库信息,root那栏随意,我没写正确居然可以正常用,那就不管了。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'cyberpanel',
        'USER': 'aaa',
        'PASSWORD': 'bbb',
        'HOST': '192.168.1.101',
        'PORT':'3306'
    },
    'rootdb': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mysql',
        'USER': 'root',
        'PASSWORD': 'YourROOTpassword',
        'HOST': '192.168.1.101',
        'PORT': '3306',
    },
}

然后是mysqlPassword,这里存储了root的数据库密码,你需要cyberpanel来管理数据库这个就是必须了

cp /etc/cyberpanel/mysqlPassword /etc/cyberpanel/mysqlPassword.bak
nano /etc/cyberpanel/mysqlPassword

对了,记得给这两文件加个buff,否则万一更新什么的就麻烦了:

sudo chattr +i /etc/cyberpanel/mysqlPassword
sudo chattr +i /usr/local/CyberCP/CyberCP/settings.py

最后这个是phpmyadmin链接远程数据库,我不用它不带表别人不用是吧?一起改了

cp /usr/local/CyberCP/public/phpmyadmin/config.inc.php /usr/local/CyberCP/public/phpmyadmin/config.inc.php.bak
nano /usr/local/CyberCP/public/phpmyadmin/config.inc.php

找这两个,一个后面输入地址,一个输入用户名

$cfg['Servers'][$i]['controlhost'] = '192.168.1.101';
$cfg['Servers'][$i]['controlport'] = '3306';
$cfg['Servers'][$i]['controluser'] = 'root';
$cfg['Servers'][$i]['controlpass'] = 'YourROOTpassword';

做完以上工作后先别急,登陆到cyberpanel web页面:

https://你的IP地址:8090

左侧烂找“Security”,选“Furewall”

新建端口:

192.168.1.101:3306

PS:如果是国内云服务器用户,可以利用安全组来设置端口,CyberPanel自带的Firewall完全可以关闭禁止开机启动甚至卸载:

systemctl status firewalld

# 停止当前运行的防火墙服务
sudo systemctl stop firewalld

# 禁止防火墙开机自启动
sudo systemctl disable firewalld

# 确认防火墙已被禁用
sudo systemctl is-enabled firewalld

最后,记得卸载CyberPanel自带的Mariadb数据库,这样本地服务器就可以省下许多资源专心做前端服务器了。

sudo systemctl stop mariadb

# 卸载主程序及相关组件
sudo apt purge -y mariadb-server mariadb-client mariadb-common mariadb-server-core-* mariadb-client-core-*

# 清理无用依赖
sudo apt autoremove -y
sudo apt autoclean

# 删除数据库数据目录(包含所有数据库文件,确认无需备份后执行)
sudo rm -rf /var/lib/mysql/

# 删除配置文件残留
sudo rm -rf /etc/mysql/
sudo rm -rf /var/log/mysql/

好了,到这里,CyberPanel就成功使用上了远程数据库,再也不用担心数据库在本地的各种麻烦了!

请登录后发表评论

    没有回复内容

万事屋新帖