配置时环境:腾讯云服务器,云服务器上的MySQL5.7,未配置过主从,如环境不一致,请谨慎操作。我的公网IP是119.29.234.43,内网ip是10.104.190.222,请修改为你自己的并在下面代码包含公网IP的地方进行相应的修改。(蓝色字体是所有操作主机的命令步骤,绿色字体是操作从机的命令步骤,底部是所有命令集合)
腾讯云服务器如图所示:
具体步骤:
1.登录云服务器(如主机,从机未安装jdk和MySQL请操作2 3 ,否请跳过),下面是控制台用户命令操作
2.安装JDK:
sudo apt-get install openjdk-8-jdk
y
3.安装MySQL:
sudo apt-get install mysql-server
账号: root
密码: root
主机配置
4.修改mysqld.cnf文件信息
cd /etc/mysql/mysql.conf.d/
sudo vim mysqld.cnf 此时打开mysqld.cnf出现大量信息
i 进入编辑模式
↓ 一直操作向下箭头,找到信息底部白色的两行代码,这部分代码即是被注释的代码,如图:
删除#,修改binglog_do_db = db_zhanye_sm,binlog_ignore_db = mysql 。 其中db_zhanye_sm是要同步的数据库名称,操作后如下图所示
找到bing-adress 把127.0.0.1修改为腾讯云主机内网ip 10.104.190.222,不修改会导致等下MySQL无法重启
Esc 退出vim编辑状态
:wq 保存修改内容,并回到控制台(第一步":"具体操作按同时按住Shift ;两个键 第二步w 第三步q 第四步回车键 )
mysql -u root -p 打开数据库,接下来输入数据库密码
root 输入密码后进入数据库
接下来是创建一个新用户用来远程连接使用:
在MySQL中输入此以下命令 说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器。MySQL里面输入命令:CREATE USER ‘username‘@‘host‘ IDENTIFIED BY ‘password‘;
create user ‘Edward‘@‘%‘ IDENTIFIED BY ‘123‘;
在MySQL中操作此命令,此处是授权命令。例如:GRANT privileges ON databasename.tablename TO ‘username‘@‘host‘;privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*. 例子:( GRANT SELECT, INSERT ON test.user TO ‘pig‘@‘%‘;)
GRANT SELECT,INSERT ON db_zhanye_sm.* TO ‘Edward‘@‘%‘;
用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令: GRANT privileges ON databasename.tablename TO ‘username‘@‘host‘ WITH GRANT OPTION;
GRANT privileges ON db_zhanye_sm.test TO ‘Edward‘@‘%‘ WITH GRANT OPTION;
授予从机复制表权限,示例:GRANT REPLICATION SLAVE ON *.* TO ‘user‘@‘X.X.X.X‘ IDENTIFIED BY ‘password‘;
GRANT REPLICATION SLAVE ON *.* TO ‘Edward‘@‘%‘ IDENTIFIED BY ‘123‘;
exit 退出数据库操作
sudo /etc/init.d/mysql restart 重启数据库
mysql -u root -p 登录数据库,
root
show master status; 显示信息如下图所示,注:执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化。记录File 和 Position的值并给从机使用;
从机配置: