以TP5.1为例,lamp环境下配置部署mysql读写分离

以TP5.1为例,lamp环境下配置部署mysql读写分离

环境:

主服务器:192.168.72.232 系统 Centos7 localhost
从服务器:192.168.72.152 系统 Centos7 localhost
(以下为两台服务器mysql正确安装完毕)

首先下载TP5.1框架,然后配置config.php->database.php数据库配置文件,如下图所示,“服务器地址”,默认第一个是主服务器,后面是从服务器,如果用户名,密码,端口号不一样的话,要每个都按照顺序写上以“,”逗号分隔开,如果一样的话,可以只写一个如下图,数据库部署方式,选择“1”(分布式主从服务器),从服务器序号,可以不用配置。
在这里插入图片描述

配置mysql远程连接访问

增加远程访问权限
登录mysql

MariaDB [(none)]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
MariaDB [mysql]> grant all privileges on *.* to root@'%' identified by 'root' with grant option;
Query OK, 0 rows affected (0.03 sec)
MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.01 sec)

说明:GRANT ALL PRIVILEGES ON . TO ‘账号’@’%’ IDENTIFIED BY ‘密码’ WITH
GRANT OPTION;   //提权 flush privileges;  //刷新

在这里插入图片描述
至此,看似配置已经结束了,但是在服务器上部署项目之后,一直无法访问,页面报错提示如下:
在这里插入图片描述
很显然,提示的问题是数据库无法连接访问,此刻,可以确定的是数据库,通过外部的navicat可以正常连接,也在外部phpstudy环境下部署了同样一套代码,没有任何的修改,数据库是可以正常连接访问的,只是在192.168.72.232主服务器本地部署就提示数据库无法连接访问,然后基本可以确定的是lamp环境中Apache在作祟,尝试着百度了“centos Apache无法解析mysql ip连接”

同一服务器上,使用php中mysql_connect连接MySQL数据库,只能localhost联结,无法通过IP访问(以GRANT ALL PRIVILEGES ON给权限了)。报错:Can’t connect to mysql server on ‘ip或域名’ (13),如果用命令行连接MySQL,则一切正常,

原来是Linux限制了httpd对外访问的权限。将其开启即可:

httpd访问网络配置httpd_can_network_connect

1、查看httpd_can_network_connect的值是否为off(例如:httpd_can_network_connect --> off)

getsebool -a | grep httpd_can_network_connect

结果如下
在这里插入图片描述

[root@localhost ~]# getsebool -a | grep httpd_can_network_connect
httpd_can_network_connect --> off
httpd_can_network_connect_cobbler --> off
httpd_can_network_connect_db --> off

2、执行如下命令打开:

Linux命令,临时配置,重启后失效

setsebool httpd_can_network_connect=1

(永久配置)写入配置文件的命令,重启后保留

setsebool -P httpd_can_network_connect 1

在这里插入图片描述

3、 重新验证httpd_can_network_connect
getsebool -a | grep httpd_can_network_connect

4、 重启http

systemctl restart httpd

至此,读写分离就正式完成了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`getsebool` 命令用于获取SELinux的布尔值(boolean),可以通过 `grep` 命令过滤出与 httpd 相关的SELinux策略。具体使用方法如下: 1. 打开终端,输入以下命令并按下回车键: ``` getsebool -a | grep httpd ``` 2. 等待命令执行完成,它将输出所有与 httpd 相关的SELinux布尔值,如下所示: ``` httpd_anon_write --> off httpd_builtin_scripting --> on httpd_can_check_spam --> off httpd_can_connect_ftp --> off httpd_can_connect_ldap --> off httpd_can_connect_mythtv --> off httpd_can_connect_zabbix --> off httpd_can_network_connect --> off httpd_can_network_connect_cobbler --> off httpd_can_network_connect_db --> off httpd_can_network_memcache --> off httpd_can_network_relay --> off httpd_can_sendmail --> off httpd_dbus_avahi --> on httpd_dbus_sssd --> off httpd_dontaudit_search_dirs --> off httpd_enable_cgi --> on httpd_enable_ftp_server --> off httpd_enable_homedirs --> off httpd_execmem --> off httpd_graceful_shutdown --> on httpd_manage_ipa --> off httpd_mod_auth_ntlm_winbind --> off httpd_mod_auth_pam --> off httpd_read_user_content --> off httpd_run_stickshift --> off httpd_serve_cobbler_files --> off httpd_setrlimit --> off httpd_ssi_exec --> off httpd_sys_script_anon_write --> off httpd_tmp_exec --> off httpd_tty_comm --> off httpd_unified --> on httpd_use_cifs --> off httpd_use_fusefs --> off httpd_use_gpg --> off httpd_use_nfs --> off httpd_use_openstack --> off httpd_use_sasl --> off httpd_verify_dns --> off ``` 3. 在输出中查找与网络相关的布尔值,例如 `httpd_can_network_connect`,如果该值为 `on`,则表示允许 httpd 进程连接到网络。如果该值为 `off`,则需要修改SELinux的策略以允许 httpd 进程连接到网络。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值