宝塔面板mysql和mariadb主从配置

842次阅读
没有评论

最近准备配置宝塔面板 的数据库主从,然后看要收钱。。
本着能动手就不吵吵的基本原则,就开始从网上找教程和测试。
我这用的是MariaDB,主库10.4,从库10.3

第一步:
在主库的phpmyadmin创建从库的访问,
点击账号,然后创建从库的权限,如果主库从库名字一致,则创建一个不需要密码的从库,并且把从库地址填写进去。
(注意不要把原来的库干掉)

第二步:
在主库配置允许从库的访问,在宝塔面板的数据库的权限处进行配置。

第三步:
在宝塔的数据库设置,修改配置文件。
在[mysqld]下面加
binlog-do-db= 这里填主库的用户名
binlog-ignore-db=mysql #这个意思是忽略系统库
sync_binlog = 1 #确保binlog日志写入后与硬盘同步
binlog_checksum = crc32 #这个是MySQL5.6.5以后用的,这版本之前用none

修改好以后重启数据库。不是重载配置,因为我好像重载了不生效。

sync_binlog这个参数是对于MySQL系统来说是至关重要的,他不仅影响到Binlog对MySQL所带来的性能损耗,而且还影响到MySQL中数据的完整性。对于"sync_binlog"参数的各种设置的说明如下:
sync_binlog=0,当事务提交之后,MySQL不做fsync之类的磁盘同步指令刷新binlog_cache中的信息到磁盘,而让Filesystem自行决定什么时候来做同步,或者cache满了之后才同步到磁盘。
sync_binlog=n,当每进行n次事务提交之后,MySQL将进行一次fsync之类的磁盘同步指令来将binlog_cache中的数据强制写入磁盘。

在MySQL中系统默认的设置是sync_binlog=0,也就是不做任何强制性的磁盘刷新指令,这时候的性能是最好的,但是风险也是最大的。因为一旦系统Crash,在binlog_cache中的所有binlog信息都会被丢失。而当设置为“1”的时候,是最安全但是性能损耗最大的设置。因为当设置为1的时候,即使系统Crash,也最多丢失binlog_cache中未完成的一个事务,对实际数据没有任何实质性影响。

从以往经验和相关测试来看,对于高并发事务的系统来说,“sync_binlog”设置为0和设置为1的系统写入性能差距可能高达5倍甚至更多。

 

第四步:
在从库宝塔的数据库设置,修改配置文件。也是在[mysqld]下面
server-id = 2 #这里是要改成和源库不一样的
replicate-do-db=这里填从库的用户名,一般我都是一样
slave-skip-errors = all

这里有个说明:
#如果需要同步的数据库名相同
replicate-do-db=zxkang_sync #需要同步的数据库名。如果不指明同步哪些库,就去掉这行,表示所有库的同步(除了ignore忽略的库)。

#如果需要同步的数据库名不同
replicate-rewrite-db=zxkang_sync->test # master 上的数据库名为 zxkang_sync , slave 上的库名为 test

改完以后重启数据库。

 

第五步:

在从库ssh登录,然后

mysql -u 用户名 p

然后输入密码

如果你习惯的话,可以用root,那对应前面授权的时候就是root了

 

第六步,

登录进来以后,停止slave从库进程,然后配置,然后重启,然后查看状态

stop slave;   #执行同步前,要先关闭slave


change  master to master_host='主库IP',master_user='主库用户名',master_password='主库密码',master_log_file='从phpmyadmin里面,复制按钮,查看主服务器状态,那个日志信息',master_log_pos=0;  
说明:master_log_pos表示日志偏移量,我看了网上好多的数,自己也试了不行,最后改0,0 在这里表示系统自己判断

完了以后

start slave;     #这里表示启动从库进程


show slave status \G;     #这里表示查看状态

如果看到
Slave_IO_Running: Yes
Slave_SQL_Running: Yes


 就表示主从复制开始了,然后就可以去从库看了。
 
吾爱互联
版权声明:本站原创文章,由 吾爱互联 2022-05-23发表,共计1742字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
载入中...