二进制安装MySQL5.7实现GTID功能实验
2019-08-12 06:32
1626 查看
环境:
192.168.205.37: as master server 192.168.205.47: as slave server
版本:
OS: centos 7 1810 with mini install mysql-5.7.26-el7-x86_64.tar.gz
目地:
GTID(global transaction ID)全局事务标识符,mysql5.6版本开始支持,GTID复制不像传统的复制方式(异步延复制、半同步复制)需要找到binlog和pos点,只需要知道master的IP、端口、账号、密码即可,开启GDIT后,执行change master to master_auto_position=1即可,它会自动寻找同步。我们使用mysql5.7开启两个server,一个为主另一个为从,测试GDIT功能。
步骤:
- 解压缩文件
[root@centos7 mysql]#tar xvf mysql-5.7.26-el7-x86_64.tar.gz -C /usr/local/
- 创建软链接
[root@centos7 local]#ln -s mysql-5.7.26-el7-x86_64/ mysql
- 添加mysql帐号
[root@centos7 local]#useradd -r -s /bin/false mysql
- 准备环境变量
[root@centos7 mysql]#echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh [root@centos7 mysql]#echo $PATH
- 准备数据目录(可以不建,初始化数据库时会自动创建)
[root@centos7 mysql]#mkdir /data/mysql [root@centos7 mysql]#chown mysql:mysql /data/mysql
- 安装相关包(跟据需要安装,初始化时会提示)
[root@centos7 mysql]#yum install libaio
- 初步化数据库
[root@centos7 mysql]#mysqld --initialize --user=mysql --datadir=/data/mysql 2019-08-12T00:43:03.799485Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2019-08-12T00:43:04.007086Z 0 [Warning] InnoDB: New log files created, LSN=45790 2019-08-12T00:43:04.043130Z 0 [Warning] InnoDB: Creating foreign key constraint system tables. 2019-08-12T00:43:04.100702Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 24ddb90b-bc9a-11e9-856e-000c2956e1ea. 2019-08-12T00:43:04.101693Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened. 2019-08-12T00:43:04.102159Z 1 [Note] A temporary password is generated for root@localhost: Ia-ClrMga7L/
- 修改数据库配置文件
[root@centos7 mysql]#cp -b /etc/my.cnf{,.bak} [root@centos7 mysql]#rpm -qf /etc/my.cnf mariadb-libs-5.5.60-1.el7_5.x86_64 [root@centos7 mysql]#vi /etc/my.cnf [mysqld] datadir=/data/mysql socket=/data/mysql/mysql.sock log-error=/data/mysql/mysql.log pid-file=/data/mysql/mysql.pid [client] socket=/data/mysql/mysql.sock
- 准备启动脚本
[root@centos7 mysql]#cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld [root@centos7 mysql]#chkconfig --list [root@centos7 mysql]#chkconfig --add mysqld [root@centos7 mysql]#chkconfig --list [root@centos7 mysql]#service mysqld start Starting MySQL.Logging to '/data/mysql/mysql.log'. SUCCESS!
- 修改密码
[root@centos7 mysql]#mysql -p"Ia-ClrMga7L/" [root@centos7 mysql]#mysqladmin -uroot -p"Ia-ClrMga7L/" password centos [root@centos7 mysql]#mysql -pcentos
- 数据库的用户帐号存放的表发生了变化,没有password,用authentication_string代替
mysql> desc user; mysql> select user,host,authentication_string from user; +---------------+-----------+-------------------------------------------+ | user | host | authentication_string | +---------------+-----------+-------------------------------------------+ | root | localhost | *128977E278358FF80A246B5046F51043A2B1FCED | | mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | | mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | +---------------+-----------+-------------------------------------------+ 3 rows in set (0.00 sec)
- 编辑配置文件设置主服务器,开启GTID功能
[root@centos7 ~]#vi /etc/my.cnf [mysqld] server-id=37 log-bin gtid_mode=ON enforce_gtid_consistency datadir=/data/mysql socket=/data/mysql/mysql.sock log-error=/data/mysql/mysql.log pid-file=/data/mysql/mysql.pid [client] socket=/data/mysql/mysql.sock [root@centos7 ~]#service mysqld restart Shutting down MySQL. SUCCESS! Starting MySQL. SUCCESS!
- 创建复制帐号
mysql> grant replication slave on *.* to repluser@'192.168.205.%' identified by 'centos'; Query OK, 0 rows affected, 1 warning (0.00 sec)
- 在从服务器上设置配置文件
[root@centos7 ~]#vi /etc/my.cnf [mysqld] server-id=47 gtid_mode=ON enforce_gtid_consistency datadir=/data/mysql socket=/data/mysql/mysql.sock log-error=/data/mysql/mysql.log pid-file=/data/mysql/mysql.pid [client] socket=/data/mysql/mysql.sock [root@centos7 ~]#service mysqld restart Shutting down MySQL.. SUCCESS! Starting MySQL. SUCCESS!
- 在从服务器上登录,并修改change master to, 不需要指位置和文件名
[root@centos7 ~]#mysql -pcentos mysql> CHANGE MASTER TO -> MASTER_HOST='192.168.205.37', -> MASTER_USER='repluser', -> MASTER_PASSWORD='centos', -> MASTER_PORT=3306, -> MASTER_AUTO_POSITION=1; Query OK, 0 rows affected, 2 warnings (0.01 sec)
- 查看复制状态
mysql> start slave; Query OK, 0 rows affected (0.01 sec) mysql> show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.205.37 Master_User: repluser Master_Port: 3306 Connect_Retry: 60 Master_Log_File: centos7-bin.000005 Read_Master_Log_Pos: 453 Relay_Log_File: centos7-relay-bin.000002 Relay_Log_Pos: 670 Relay_Master_Log_File: centos7-bin.000005 Slave_IO_Running: Yes Slave_SQL_Running: Yes
- 测试数据库的复制
mysql> create database db1; Query OK, 1 row affected (0.01 sec)
- 在从服务器上查看复制状态,复制成功
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | db1 | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.00 sec)
相关文章推荐
- CarlosAg.ExcelXmlWriter实现.net下Excel导出功能(服务端不需要安装Excel程序)
- vs2005安装程序的制作、.Net框架、数据库打包、卸载功能实现
- zabbix之2安装编译/基本功能实现
- 用U盘boot自启动实现LINUX的安装及其他WIN功能
- JAVA--第五周实验--任务2--封装一类梯形形对象Triangle,并实现一些求周长求面积的功能。
- Android 调用已安装市场,进行软件评分的功能实现
- php实现在线下载程序安装包功能
- 罗技mx5000驱动安装,实现所有功能(不用罗技原装接收器)
- (第二周实验报告1-2)运用数组实现十进制转化为二进制
- C#--第七周实验--任务2--从PhysicalObject中派生出移动物体类MovingObject并实现部分功能
- 数据结构实验1 链表 实现学生信息存储,功能 增删改查,实现 结构类型
- VirtuaBox的安装功能增强,可以实现主机与虚拟机之间的互相拷贝以及虚拟机的任意大小
- Android 调用已安装市场,进行软件评分的功能实现
- LAMP架构实现网站动静分离及流行博客论坛安装实验
- CentOS 7 安装NVIDIA驱动实现修改分辨率和扩屏功能
- 虚拟化动手实验之高可用实现:HA安装(五)
- FxCAD实验二 实现对象的移动功能
- 实验16扩展:int9 键盘中断实现不同功能
- android实现软件的更新、安装功能
- 如何快速安装WIZ610WI实现串口转无线网功能?