mysql主从同步(一主一从)

一.准备两台服务器

二.在主服务器和从服务器安装mysql

1.去mysql官网找到自己需要的mysql版本(我这里使用的是5.7.23)

2.我这里使用的是解压tar.gz为例

3.把mysql解压出来(我解压的路径是/home/mysql)

4.cd /home/mysql进入mysql目录  使用mkdir mysqldb 创建存放数据库的文件夹

5.给mysql文件夹和mysqldb文件夹授权

chmod -R 777 /home/mysql

chmod -R 777 /home/mysql/mysqldb

  1. 配置安装参数

vi  /etc/my.cnf

  1. 下面是文件的内容

[mysqld]

# 设置3306端口

port=3306

# 设置mysql的安装目录

basedir=/home/mysql

# 设置mysql数据库的数据的存放目录

datadir=/home/mysql/mysqldb

# 允许最大连接数

max_connections=10000

# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统

max_connect_errors=10

# 服务端使用的字符集默认为UTF8

character-set-server=utf8

# 创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

# 默认使用“mysql_native_password”插件认证

default_authentication_plugin=mysql_native_password

[mysql]

# 设置mysql客户端默认字符集

default-character-set=utf8

[client]

# 设置mysql客户端连接服务端时默认使用的端口

port=3306

default-character-set=utf8

  1. 保存退出后进入bin目录 cd /home/mysql/bin
  2. 执行命令并记住密码

./mysqld --initialize --console

  1. 启动mysql服务

cd /home/mysql/support-files #进入support-files

./mysql.server start #启动mysql服务

如果启动失败,重新进行授权

chmod -R 777 /home/mysql

chmod -R 777 /home/mysql/mysqldb

继续启动

./mysql.server start #启动mysql服务

这个时候mysql就启动成功了。

  1. 将mysql加入到系统进程中并重启

cp mysql.server /etc/init.d/mysqld

service mysqld restart # 然后重启MySQL服务

  1. 创建软链接

ln -s /home/mysql/bin/mysql /usr/bin

至此,Mysql安装完毕!

三.修改mysql密码

1.启动mysql程序

mysql -uroot -p

  1. 修改密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

#mysql8.0以后的版本修改密码可以使用:

ALTER USER 'root'@'%' IDENTIFIED WITH 'mysql_native_password' BY '新密码';

  • 设置允许远程登录

1.use mysql;

update user set user.Host='%' where user.User='root';

flush privileges;

  1. 退出并重启mysql

quit;

service mysqld restart

  • 设置mysql开机自启
  1. 将服务文件拷贝到init.d下,并重命名为mysqld

cp /home/mysql/support-files/mysql.server /etc/init.d/mysqld

输入y继续执行就行

  1. 赋予可执行的权限

chmod +x /etc/init.d/mysqld

  1. 添加服务

chkconfig --add mysqld

  1. 显示服务列表

chkconfig --list

如果2345是off就执行 chkconfig --level 2345 mysqld on

  1. 重启服务器  reboot
  2. ps -ef | grep mysql  #查看mysql服务的启动情况
  3. 查看端口是否开发 firewall-cmd --zone=public --list-ports

开放端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent 

配置立即生效

firewall-cmd --reload 

  1. mysql安装结束,可以使用navicat连接mysql
  • 主从复制

1.修改主服务器的my.cnf

server_id=1

log-bin=mysql-bin

  1. 进入mysql服务

创建一个用于复制的用户,并赋予权限

GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%' IDENTIFIED BY 'password';

FLUSH PRIVILEGES;

  1. 查看主服务的二进制状态

SHOW MASTER STATUS;

保存file和position的值

  1. 在从服务器上修改my.cnf

[mysqld]

server-id=2

 relay-log=mysql-relay-bin

 read-only=1

注意:server-id不能跟主服务器一致

  1. 在从服务器上进入mysql服务器

执行以下命令

CHANGE MASTER TO

MASTER_HOST='主服务器IP',

MASTER_USER='主服务器账号',

MASTER_PASSWORD='主服务器密码',

MASTER_LOG_FILE='上面保存的file',

MASTER_LOG_POS=上面保存的position

  1. 在从服务器上执行以下命令

Start slave;

  1. 检查复制复制状态

SHOW SLAVE STATUS\G;

确保Slave_IO_Running和Slave_SQL_Running的值都是Yes。

如果不是yes,检查步骤5的参数是否正确或者看server-id是否不一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值