MySQL 主从同步。
admin
2023-04-20 14:43:21
0次

Mysql 数据库安装:

服务器IP 地址规划:
主服务器 IP 172.20.2.46 从服务器 IP 172.20.2.47

二、安装mysql服务器

1.将下载好的安装到解压到/usr/local目录下
tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

2.进入/usr/local目录
cd /usr/local/

3.为mysql安装目录创建软链接
ln -s mysql-5.7.22-linux-glibc2.12-x86_64 mysql

4.为centos添加mysql用户组和mysql用户(-s /bin/false参数指定mysql用户仅拥有所有权,而没有登录权限)
groupadd mysql
useradd -r -g mysql -s /bin/false mysql

5.进入安装mysql软件的目录,命令如下
cd /usr/local/mysql

6.修改当前目录拥有者为新建的mysql用户,命令如下:
chown -R mysql:mysql ./

7.安装mysql,命令如下:
./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize

8.如果出现如下图所示则为安装成功,系统默认生成密码。

9.开启mysql服务,命令如下:
./support-files/mysql.server start

如果出现如下错误,则说明mysql配置文件/etc/my.cnf中的路径不对,修改内容如下,datadir和socket都修改成mysql的安装目录下,增加[client]板块,用于命令行连接mysql数据库。
########################################################################
[mysqld]
port=3306
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sock
user=mysql
max_connections=151
symbolic-links=0

设置忽略大小写

lower_case_table_names = 1

指定编码

character-set-server=utf8

collation-server=utf8_general_ci

开启ip绑定

bind-address = 0.0.0.0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

#指定客户端连接mysql时的socket通信文件路径
[client]
socket=/usr/local/mysql/mysql.sock

default-character-set=utf8

##########################################################################################################

9.重新开启mysql服务,如下图所示则开启成功!
./support-files/mysql.server start

10.将mysql进程放入系统进程中,命令如下:
cp support-files/mysql.server /etc/init.d/mysqld

11.重新启动mysql服务,命令如下:
./support-files/mysql.server start

12.配置mysql环境变量
vi /etc/profile
export PATH=$PATH:/usr/local/mysql/bin

保存退出,再编译下:
source /etc/profile

13.使用随机密码登录mysql数据库,命令如下:
mysql -u root -p

输入随机密码登录成功如下图所示:

14.进入 mysql 操作行,为root用户设置新密码(这里设置为 youpassword):

1、 修改用户密码
mysql> alter user 'root'@'localhost' identified by 'youpassword';  

或者       

mysql> set password=password("youpassword");
2、刷新权限
mysql> flush privileges;

#################################################################

主从配置过程:

主服务器 IP 172.20.2.46 从服务器 IP 172.20.2.47

1)主服务器配置:
[root@MySQL-M ~]# vim /etc/my.cnf # 添加以下内容。
[mysqld]
#给服务器一个唯一的ID。
server_id=46
#开启二进制日志。
log-bin=mysql-bin # mysql-bin 为日志名字。
#指定二进制日志格式。
binlog-format=mixed

备注:
#############################################
mixed #
row # 二进制记录的是磁盘。
stateement # 二进制记录执行语句,如 update
###############################################
哪个好?
update age=age+1 where id=3; // 语句长而磁盘变化少,宜用row
update salary=salary+100; // 语句短,但影响上万行,磁盘变化大,宜用stateement
mixed ,混合的,由系统根据语句,来决定。
########################################################################
2)从服务器配置:
[root@MySQL-S ~]# vim /etc/my.cnf
[mysqld]
#给服务器一个唯一的ID。
server-id=47
#开启二进制日志。 ## 一方面恢复以后数据丢失使用,也可以做一主多从使用。建议打开。
log-bin=mysql-bin
#指定二进制日志格式。
binlog-format=mixed

开启 relay-log 中继日志功能。

relay-log=mysql-relay
########################################################################
两台服务器启动服务。
[root@MySQL-M mysql]# ./support-files/mysql.server restart

[root@MySQL-S mysql]# ./support-files/mysql.server restart
########################################################################
主服务器操作:
[root@MySQL-M ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 20220
Server version: 5.7.22-log MySQL Community Server (GPL)
mysql>

查看 master 是否有充当 master 的状态条件 。
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | Position # 字节偏移处。
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 1559 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

主服务器授权:
mysql> grant replication client,replication slave on . to repl@'172.20.2.%' identified by 'repl';
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

########################################################################
从服务器操作:
mysql> change master to
-> master_host='172.20.2.46',
-> master_user='repl',
-> master_password='repl',
-> master_log_file='mysql-bin.000001',
-> master_log_pos=1559;
Query OK, 0 rows affected, 2 warnings (0.05 sec)

mysql> show slave status;
+----------------------------------+-------------+-------------+-------------+---------------+------------------+---------------------+--------------------+---------------+-----------------------+------------------+-------------------+-----------------+---------------------+--------------------+------------------------+-------------------------+-----------------------------+------------+------------+--------------+--------------

mysql> show slave status \G
1. row
Slave_IO_State: Waiting for master to send event
Master_Host: 172.20.2.46
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 1559
Relay_Log_File: mysql-relay.000003
Relay_Log_Pos: 320
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

SQL_Remaining_Delay: NULL
  Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
       Master_Retry_Count: 86400
              Master_Bind: 
  Last_IO_Error_Timestamp: 
 Last_SQL_Error_Timestamp: 

启动从服务器功能
mysql> start slave;
########################################################################
测试:
主服务器:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| haha |
| mysql |
| performance_schema |
| sys |
| test8 |
| zabbix |
+--------------------+
7 rows in set (0.01 sec)

mysql> create database wagnbo
-> ;
Query OK, 1 row affected (0.01 sec)

从服务器:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| haha |
| mysql |
| performance_schema |
| sys |
| test |
| test8 |
| wagnbo |
| zabbix |
+--------------------+
9 rows in set (0.00 sec)
########################################################################

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...