目录
一、使用宝塔原因
二、初始化环境准备
三、安装mysql高可用之双主复制
1、安装mysql
2、管理root密码重置
3、linux 系统登录mysql 搭建1主1从
3.1、查看skip_networking的状态
3.3、配置从服务器
3.4、配置链接到主服务器的相关信息
3.5、查看同步状态
3.6、可视化界面测试
3.6.1、主数据库创建一个数据库 text
3.6.2、其他
4、mysql双主双从搭建(主主复制)
一、使用宝塔原因
因为作为一个java开发者来说,手工输入命令安装各类软件,操作起来费时费力并且容易出错,而且需要记住很多Linux的命令,非常复杂。
使用宝塔2分钟装好面板,一键管理服务器,鼠标点几下就能替代以前的复杂繁多命令,操作简单,看一眼就会使用。
所以为了节约时间 我使用的宝塔管理linux系统。
二、初始化环境准备
安装好linux系统或者云服务器链接好系统,当这个系统是空白的,才可以安装宝塔!
特别提醒要干净系统 ,难免对你的数据造成丢失,请提前做好备份啥的!!
宝塔安装:这是去拿去宝塔安装的代码在你的服务器使用命令就行
https://www.bt.cn/new/download.html
如我是centos系统我执行
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
进行安装当出现以下界面表示我的宝塔安装成功!
三、安装mysql高可用之双主复制
这里为了实现这个效果我准备了2台服务器都安装了宝塔界面
192.168.10.100 | mysql 5.7.40 |
192.168.10.101 | mysql 5.7.40 |
1、安装mysql
登录宝塔界面-->点击软件商店--->搜索mysql 进行安装
由于我这里是按照好了所以是更新、设置 、卸载展示。如果你没有安装只会出现安装按钮。
安装完成后点击设置首页展示 如上图所示就行。
2、管理root密码重置
点击左侧数据库 --->root密码 --->修改密码 提交 我这里为了好操作设置的123456 后续为了安全可以设置更复杂的密码体系,你也可以点击输入框右边的刷新按钮会出现比较复杂的密码。
3、linux 系统登录mysql 搭建1主1从
远程终端连接后你可以使用命令查看mysql是否安装成功!命令如下:
rpm -qa | grep mysql
如果安装成功展示如下:
登录mysql使用命令 :
mysql -uroot -p123456
3.1、查看skip_networking的状态
确保在主服务器上的skip_networking 选项处于OFF 关闭状态,这是默认值。
如果是启用,则从站无法与主站通信,并且复制失败。命令如下:
show variables like '%skip_networking%';
3.2、创建一个专门用来复制的用户
CREATE USER 'repl'@'%' identified by '123456';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
3.3、配置从服务器
由于我的从服务器是192.168.10.101 所以我打对应的宝塔界面找到myql打开mysql管理--->点击配置修改 找到第35行 server-id 改为2
然后重启mysql
3.4、配置链接到主服务器的相关信息
在从服务器配置链接到主服务器的相关信息(在从服务器的mysql执行)
CHANGE MASTER TO MASTER_HOST='192.168.10.100',MASTER_PORT=3306,MASTER_USER='repl',MASTER_PASSWORD='123456';
你自己确认你的 ip 端口 用户名及密码 我这里为了方便全是最简单的。
启动从服务器的线程
start slave;
3.5、查看同步状态
show slave status \G;
如图所示只有1个yes表示链接失败 下面Last_IO_Error会描述具体错误信息。
你根据这个错误信息进行百度解决就行。像我这就是3306防火墙端口没有打开。点击左侧安全---->添加端口规则 就行。
解决问题 先关闭从服务器的线程:
stop slave;
然后再开启线程:
start slave;
然后再查看同步状态:
有2个YES 表示同步成功!
3.6、可视化界面测试
我这里使用的是 navicat对mysql进行可视化管理的
分别链接192.168.10.100与101的数据库
如果你们用root连接后并没有4个基础表,表示你的权限不够,是因为宝塔创建mysql的时候root有很多权限并没有授予,需要你自己使用ssh方式进入mysql执行以下命令:
use mysql;
update user set Update_priv ='Y' where user = 'root';
update user set Select_priv ='Y' where user = 'root';
update user set Insert_priv ='Y' where user = 'root';
update user set Update_priv ='Y' where user = 'root';
update user set Delete_priv ='Y' where user = 'root';
update user set Create_priv ='Y' where user = 'root';
update user set Drop_priv ='Y' where user = 'root';
update user set Reload_priv ='Y' where user = 'root';
update user set Shutdown_priv ='Y' where user = 'root';
update user set Process_priv ='Y' where user = 'root';
update user set File_priv ='Y' where user = 'root';
update user set Grant_priv ='Y' where user = 'root';
update user set References_priv ='Y' where user = 'root';
update user set Index_priv ='Y' where user = 'root';
update user set Alter_priv ='Y' where user = 'root';
update user set Show_db_priv ='Y' where user = 'root';
update user set Super_priv ='Y' where user = 'root';
update user set Create_tmp_table_priv ='Y' where user = 'root';
update user set Lock_tables_priv ='Y' where user = 'root';
update user set Execute_priv ='Y' where user = 'root';
update user set Repl_slave_priv ='Y' where user = 'root';
update user set Repl_client_priv ='Y' where user = 'root';
update user set Create_view_priv ='Y' where user = 'root';
update user set Show_view_priv ='Y' where user = 'root';
update user set Create_routine_priv ='Y' where user = 'root';
update user set Alter_routine_priv ='Y' where user = 'root';
update user set Create_user_priv ='Y' where user = 'root';
update user set Event_priv ='Y' where user = 'root';
update user set Trigger_priv ='Y' where user = 'root';
执行效果如下:
然后重启mysql 你就发现root就有狠毒权限了。
3.6.1、主数据库创建一个数据库 text
从数据刷新
发现也会自动出现一个数据库为text。
3.6.2、主数据库 text创建一个名为textname的表格
发现从表也有一张一样的表格
主表填入值
从表也会展示相应的值
现在一主一从搭建完毕!
3.6.2、其他
如果你还想整一个从服务器 在安装流程3.3到3.5配置一套就可以
新建的从服务器,会自动保存主服务器之前的数据。(测试结果)
4、mysql双主双从搭建(主主复制)
如果你上面的主从复制搞定了,那么实现主主复制就很简单了。我们把上面的从服务器也改成主服务器。
1、修改上面的从服务器的my.cnf,和主服务器的一样(注意这个server-id不能一样)然后重启服务器(如果是宝塔安装的mysql当前步骤可以忽略)
2、在从服务器里面创建一个复制用户创建命令一样(这里可以修改一下用户名为repl2)
CREATE USER 'repl2'@'%' identified by '123456';
GRANT REPLICATION SLAVE ON *.* TO 'repl2'@'%';
3、在之前的主服务器里面运行下面这个代码
CHANGE MASTER TO MASTER_HOST='192.168.10.101',MASTER_PORT=3306,MASTER_USER='repl2',MASTER_PASSWORD='123456';
start slave;
4、查看同步状态
show slave status \G;
双yes表示已经同步成功
5、测试
到此 主主同步已经实现! 如果你觉得对你有帮助请点赞 收藏谢谢!有什么更好的方式也可以在评论区评论!我会采集各位的意见的!