mysql主从搭建

1.mysql的安装

1.1 官网下载

1.1.1查看liunx 是32位还是64位

1.1.2 从官网下载mysql的安装包

MySQL :: Download MySQL Community Server

1.2 上传

1.2.1上传服务器

上传到 /usr/local 并解压 tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz -C ./mysql-5.7

1.3用户组

1.3.1 新增用户组

groupadd mysql   (删除用户组: sudo groupdel msql)

1.3.2用户组添加用户  

useradd -r -g mysql tester01

1.3.3 用户授予权限

创建文件夹data, 并授予tester01权限

1.4 mysql启动

1.4.1配置/etc/my.cnf

注:bind-address=0.0.0.0  设置MySQL绑定监听的IP地址,0.0.0.0表示监听所有IP,允许远程连接;/usr/local/mysql-5.7 设置MySQL的安装基目录;socket=/tmp/mysql.sock 设置本地连接时使用的Unix socket文件路径;symbolic-inks=0 禁用symbolic link符号链接支持;lower_case_table_names=1 表名区分大小写,设置为1表示不区分

1.4.1 初始化

进入mysql安装的bin目录下,初始化

./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql-5.7 --datadir=/usr/local/mysql-5.7/data --user=tester01 --initialize

注:pTyaijnUA9+V 为初始密码

1.4.2 启动

进入/support-files目录下;运行mysql.server来启动MySQL服务

1.4.3修改密码

进入bin目录;

登录mysql: ./mysql -u root -p;

重设密码为admin:   set password = password('admin');

root的密码设置为永不过期: ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

刷新: FLUSH PRIVILEGES;

1.4.4 修改访问权限

use mysql
 打开root用户的远程访问权限,允许任何主机使用root用户连接MySQL数据库:update user set host = '%' where user = 'root'; 
FLUSH PRIVILEGES;

注:必要时,请放行端口号

1.4.5 设置开机自启

将MySQL的服务脚本创建一个符号链接到系统服务脚本目录下,文件名为mysql
ln -s /usr/local/mysql-5.7/support-files/mysql.server  /etc/init.d/mysql 

将MySQL的客户端程序mysql创建一个符号链接到系统命令目录/usr/bin下
ln -s /usr/local/mysql-5.7/bin/mysql  /usr/bin/mysql 

重启MySQL: service mysql restart

给/etc/init.d/mysql文件添加可执行权限  chmod +x /etc/init.d/mysql

将mysql服务添加为开机自动启动的服务  chkconfig --add mysql

查看服务列表 chkconfig --list

2.主从配置

2.1主配置

2.1.1  主/etc/my.cnf配置文件

2.1.2 创建slave用户

[root@master ~]#  mysql -uroot -p123456     #登录数据库
mysql> CREATE USER 'slave'@'%' IDENTIFIED BY 'slave';  #创建一个用户为slave密码slave
mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';   #设置slave用的的权限
mysql> flush privileges;   #刷新数据库

注:删除用户 :drop user 'slave'@'%';

2.2 从配置

2.2.1 从/etc/my.cnf配置文件

2.2.2 指定主服务器及bin log

CREATE USER 'slave'@'%' IDENTIFIED BY 'slave';
change master to master_host='xxxx', 
master_user='slave', master_password='slave', 
master_port=3306, master_log_file='mysql-bin.000001', master_log_pos= 0;
flush privileges;   #刷新数据库

3.相关问题

3.1 Slave failed to initialize relay log info structure from the repository, Error_code: 1872

mysql> reset slave;
mysql>change master to master_host='xxxxxxxx',
master_user='root', master_password='admin',
master_port=3306, master_log_file='mysql-bin.000005', master_log_pos= 154;
mysql> start slave;

这里出现两个YES, 同步才会正常, 错误日志可以看自己配置的路径/usr/local/mysql-5.7/mysql.err

  • 19
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值