阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MySQL 5.7.18的安装与主从复制

171次阅读
没有评论

共计 4031 个字符,预计需要花费 11 分钟才能阅读完成。

CentOS6.7 安装 MySQL5.7.18

MySQL 5.7.18 的安装与主从复制

1、解压到 /usr/local 目录

# tar -zxvf mysql-5.7.18-linux-glibc2.5-i686.tar.gz -C /usr/local

2、mysql-5.7.18-linux-glibc2.5-i686 文件夹重命名为 mysql

# cd /usr/local

# mv mysql-5.7.18-linux-glibc2.5-i686/ mysql

3、新建 mysql 用户组和 mysql 用户

# groupadd mysql

# useradd -r -g mysql mysql

4、新建数据目录

# cd /usr/local/mysql

# mkdir data

5、更改所有者以及授权 755

# cd /usr/local

# chown -R mysql:mysql mysql/

# chmod -R 755 mysql/

6、初始化 mysqld

# cd /usr/local/mysql

# ./bin/mysqld –user=mysql –basedir=/usr/local/mysql –datadir=/usr/local/mysql/data –initialize

 MySQL 5.7.18 的安装与主从复制

记录下 root 的初始密码 : GjlI08>p4kDw

7、将 mysqld 添加成服务,并启动它

# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

建立 mysql 默认的配置文件 /etc/my.cnf,并添加图片中内容

MySQL 5.7.18 的安装与主从复制

# vim /etc/my.cnf

保存并退出 my.cnf,启动 mysqld

# service mysqld start

出现如下信息表示启动成功

  MySQL 5.7.18 的安装与主从复制

查看 mysql 是否启动成功

# ps -ef|grep mysql

出现如下信息表示启动成功

  MySQL 5.7.18 的安装与主从复制

当然也可以查看 mysqld 的状态

# service mysqld status

  MySQL 5.7.18 的安装与主从复制

8、登录 mysql 并修改 root 密码

# cd /usr/local/mysql

# ./bin/mysql -uroot –p

输入初始密码,步骤 6 中有生成,出现如下信息表示登录成功

  MySQL 5.7.18 的安装与主从复制

修改 root 密码

mysql> SET PASSWORD = PASSWORD(‘123456’);

mysql> FLUSH PRIVILEGES;

初次登录没有修改 root 的密码,操作数据库会出现如下错误提示,那么需要修改 root 用户的密码

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

9、设置 mysql 远程可访问 (前提是防火墙必须关闭,chkconfig iptables off: 设置自动启动为关闭,service iptables sto: 关闭防火墙)

先登录到 mysql

mysql> use mysql

mysql> update user set host = ‘192.168.0.4’ where user = ‘root’;

mysql> FLUSH PRIVILEGES;

192.168.0.4 即是可远程访问本地 mysql 的远程 ip,若想任意 ip 都能访问本地 mysql,那么只需要将 192.168.0.4 换成 % 即可

mysql> update user set host = ‘%’ where user = ‘root’;

mysql 主从复制

windows 上 mysql 做 master,linux 上 mysql 做 slave,mysql 版本是 5.7.18;windows 的 ip 为 192.168.0.4,linux 的 ip 为 192.168.0.223

1、master 上开启 binlog 日志

      在 mysql 的 home 目录找到 my.ini 文件 (没有则新建),配置上如下内容

[mysqld]
# set basedir to your installation path
basedir=D:\\mysql-5.7.18
# set datadir to the location of your data directory
datadir=D:\\mysql-5.7.18\\data
port = 3306

log-bin = mysql-bin #[必须] 启用二进制日志 server-id = 4 #[必须] 服务器唯一 ID,默认是 1,最好取 ip 的后 3 位 expire-logs-days = 7 #只保留 7 天的二进制日志,以防磁盘被日志占满 binlog-ignore-db = mysql #不备份的数据库 binlog-ignore-db = information_schema binlog-ignore-db = performation_schema binlog-ignore-db = sys binlog-do-db=mybatis #需要做复制的数据库名

      测试 log_bin 是否成功开启

      mysql> show variables like ‘%log_bin%’;

      出现下图,log_bin 为 ON 则表示开启成功,OFF 表示开启失败

  MySQL 5.7.18 的安装与主从复制     

2、master 的数据库中建立备份账号 :backup 为用户名,% 表示任何远程地址,如下表示密码为 1234 的任何远程地址的 backup 都可以连接 master 主机

mysql> grant replication slave on *.* to ‘backup’@’%’ identified by ‘1234’;

mysql> use mysql

mysql> select user,authentication_string,host from user;

可看到我们刚创建的备份账号:

  MySQL 5.7.18 的安装与主从复制

3、拷贝数据

      重启 MySQL 服务并设置读取锁定

net stop MySQL

net start MySQL

登录 mysql

      mysql> flush tables with read lock;

读取锁定的意思是只能读取,不能更新,以便获得一个一致性的快照

查看主服务器上当前的二进制日志名和偏移量值   

mysql> show master status \G

  MySQL 5.7.18 的安装与主从复制

复制的过程如下:

  MySQL 5.7.18 的安装与主从复制

File 表示实现复制功能的日志,即上图中的 Binary log;Position 则表示 binlog 日志文件的偏移量之后的都会同步到 slave 中,那么在偏移量之前的则需要我们手动导入

      从 master 导出数据,然后导入到 slave 中

            另外开一个命令窗口,用 mysqldump 命令进行数据的导出

  MySQL 5.7.18 的安装与主从复制

将 d:\a.txt 拷贝到 slave 上,然后导入到 mysql 数据库中,slave 上的 mybatis 数据库不存在则先创建,然后再导入

  MySQL 5.7.18 的安装与主从复制

导出是 mysqldump,导入是 mysql

4、配置 slave(192.168.0.223)

      slave 是 linux 环境,mysql 的配置文件是 /etc/my.cnf,不存在则新建,配上如下内容

[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
user=mysql
port=3306

log-bin=mysql-bin
server-id=223

      重启 slave 数据库

# service mysqld restart

      登录 slave 数据库,并做如下设置

mysql> stop slave;

mysql> change master to

                  master_host=’192.168.0.4′,

                master_user=’backup’,

                  master_password=’1234′,

                  master_log_file=’mysql-bin.000005′,

                  master_log_pos=601;

              各个参数含义:

              master_host 实现复制的主机的 IP 地址

              master_user 实现复制的远程登录 master 的 mysql 的用户,在步骤 2 有设置

              master_password 实现复制的远程登录 master 的 mysql 的面,在步骤 2 有设置

              master_log_file 实现复制的 binlog 日志文件 在步骤 3 标红的框框中

              master_log_pos 实现复制的 binlog 日志文件的偏移量 在步骤 3 标红的框框中

mysql> start slave;

查看 slave 从机的状态

              mysql> show slave status \G

MySQL 5.7.18 的安装与主从复制

MySQL 5.7.18 的安装与主从复制

若图中标记的那两项的值为 Yes,则表示 slave 设置成功

5、关闭掉主数据库的读取锁定

      mysql> unlock tables;

6、测试

前面没出问题的话, 那么 master 上的 mybatis 数据的操作都会同步到 slave 的 mybatis 上

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-08/146086.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-22发表,共计4031字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中