MySql5.7 数据库安装及主从同步配置

1、 基于mysql.tar.gz文件进行安装

1、MySql下载地址:https://dev.mysql.com/downloads/mysql/

或直接在CentOS系统中下载,命令如下:

wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz

2、解压

tar -zxvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz

3、重命名

mv mysql-5.7.29-linux-glibc2.12-x86_64 mysql

4、创建数据目录

#当前目录:/usr/local/soft/mysql,即在mysql根目录创建数据目录。
mkdir data

5、创建MySQL组和mysql用户

groupadd mysql 
useradd -r -g mysql mysql

5、切换当前目录所有者

chown -R mysql:mysql ./

6、初始化

执行初始化命令,会生成临时的密码,比如下图中的:“z+laMN7q%BYx”,需要记住,后续修改密码时需要用到。

#当前目录:/usr/local/soft/mysql,即在mysql根目录执行下列命令
bin/mysqld --initialize --user=mysql --basedir=/usr/local/soft/mysql --datadir=/usr/local/soft/mysql/data

MySql5.7 数据库安装及主从同步配置_第1张图片

7、创建RSA private key

#当前目录:/usr/local/soft/mysql,即在mysql根目录执行下列命令
bin/mysql_ssl_rsa_setup --datadir=/usr/local/soft/mysql/data

8、修改目录权限

#修改Mysql根目录拥有着为root
chown -R root:root ./
#修改data目录拥有着为mysql
chown -R mysql:mysql ./data

9、修改配置文件

官网说:从5.7.18开始不在二进制包中提供my-default.cnf文件。参考:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html。在5.7.18版本中,使用tar.gz安装时,也就是压缩包解压出来安装这种,已经不再需要my.cnf文件也能正常运行。my.cnf文件就是把在命令行上启动MySQL时后面的参数用cnf文件配置好,那么下载启动时就不再需要在命令上加如参数。这个my.cnf文件可以是自定义位置,也可以使用如下默认的位置,只要放在默认位置,MySQL自动识别,默认位置有:/etc/my.cnf、/etc/mysql/my.cnf或SYSCONFDIR/my.cnf 等等。

  1. my.cnf文件
cp my-default.cnf /etc/my.cnf
#或者直接创建/etc/my.cnf
#配置启动文件,当前目录:/usr/local/soft/mysql/support-files
cp mysql.server /etc/init.d/mysql
#修改启动文件参数
vim /etc/init.d/mysql

在这里插入图片描述

10、 启动

/etc/init.d/mysql start
#或
service mysql start

11、建立软连接

ln -s /usr/local/soft/mysql/bin/mysql /usr/bin

12、连接数据库并修改密码

mysql -hlocalhost -uroot -p

然后再输入临时密码。然后修改临时密码:

ALTER USER USER() IDENTIFIED BY '123456';

需要注意:上述命令修改的是,本地root用户的密码。

mysql> use mysql;
mysql> update user set authentication_string=password('123456') where user='root';
mysql> flush privileges;
mysql> quit
#重启mysql后生效
service mysql restart

13、修改远程连接权限

grant all privileges on *.* to 'root'@'%' identified by '123456';#其中,‘123456’表示远程连接时,root用户的密码。
flush privileges;

2、主从同步配置

2.1、设置主机名:

分别设置两台主机的主机名:

hostnamectl set-hostname master
hostnamectl set-hostname slave
2.2、配置主数据库

1、修改mysql配置
修改/etc/my.cnf文件,添加如下配置:

[mysqld]
log-bin=mysql-bin #开启二进制日志,配置bin-log的名字
server-id=1 #设置server-id,需要在MySQL实例中全局唯一,并且大于0。

2、重启

service mysql restart

3、创建用户并授权

mysql> CREATE USER 'repl'@'192.168.1.9' IDENTIFIED BY '123456';#创建用户
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.9';#分配权限
mysql>flush privileges;   #刷新权限

4、查看master状态

mysql> show master status;

MySql5.7 数据库安装及主从同步配置_第2张图片

2.3、配置从数据库

1、修改配置文件

[mysqld]
server-id=2 #设置server-id,必须唯一

2、重启

service mysql restart

3、停掉slave线程

mysql>stop slave;  

4、配置主从连接信息

执行下面SQL语句,需要主服务器主机名,登陆凭据,二进制文件的名称和位置等信息。其中,

  • MASTER_HOST
    MySQL主服务器的地址
  • master_port
    MySQL主服务器的端口
  • MASTER_USER
    MySQL主服务器上用于备份账户的用户名
  • MASTER_PASSWORD
    MySQL主服务器上用于备份账户的密码
  • MASTER_LOG_FILE
    MySQL主服务器上bin-log的文件名
  • MASTER_LOG_POS
    MySQL主服务器上bin-log的位置
mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.8', MASTER_USER='repl', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=1198,master_port=3306;

5、启动

mysql>start slave;

6、查看主从配置是否成功

show slave status\G

MySql5.7 数据库安装及主从同步配置_第3张图片

3、测试

&esmp; 完成上述配置后,我们在master服务器上的数据库创建一个test数据库,这个时候,slave服务器上就会把该数据库同步,然后再在master创建一个数据库表,也会同步,然后在表中添加数据,添加的数据也会自动同步到slave中对应的表中。

你可能感兴趣的:(数据库,主从配置,MySQL)