二进制mysql安装与主从同步搭建

操作系统是Centos7,需要提前准备好 5.7.26 的Mysql安装包:

Mysql官方5.7.26下载地址

下载步骤如下所示:

 点击 Download 按钮后进行登录,登录完成后跳转到如下页面:

点击 Download Now 开始下载,最后将安装包上传到服务器的 /home 目录下。

将刚刚上传到服务器的安装包进行解压

$ cd /home

$ tar -zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

$ mv ./mysql-5.7.26-linux-glibc2.12-x86_64/ ./mysql

添加MySQL数据库运行的用户和用户组

$ groupadd -r mysql

$ useradd -r -g mysql mysql

更改目录权限

    $ chown -R mysql:mysql /home/mysql/

创建软连接到 /user/bin 目录,之后我们就能够直接使用 mysql 命令了

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

初始化数据库

    $ /home/mysql/bin/mysqld --initialize --user=mysql --basedir=/home/mysql --datadir=/home/mysql/data

初始化完成后记住打印的内容,里面有初始化的登录密码(千万把密码记录下来,不然后面不能登陆)

创建 RSA 密钥

    $ /home/mysql/bin/mysql_ssl_rsa_setup --datadir=/home/mysql/data/

等待几秒后,如图所示:

设置开机自启动

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

 修改 /etc/init.d/mysqld 中的 basedir 和 datadir

  

加入开机自启动

$ chkconfig mysqld on

$ chkconfig --list mysqld

成功加入后,如图所示:

  

在全局配置文件中添加mysql可执行文件所在路径

$ vim /etc/profile

在最后加入以下内容
export MYSQL_HOME=/home/mysql

export PATH=$MYSQL_HOME/bin:$PATH

修改完成后保存,使配置文件生效

    $ source /etc/profile

添加配置文件

    $ vim /etc/my.cnf

在配置文件中加入以下内容

[mysqld]
basedir = /home/mysql/
datadir=/home/mysql/data/
socket=/tmp/mysql.sock
log-error=/home/mysql/data/error.log
server-id=1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
language=/home/mysql/share/english
# 设置监听开放端口 [多实例中一定要不同]
port=3306
# 设置运行用户
user=mysql
# 设置UTF-8编码
character-set-server=utf8
#自动清理 30 天前的log文件,可根据需要修改
expire_logs_days=30
#设置最大连接数
max_connections=1000
#设置最大等待时长(s)
wait_timeout=120
interactive_timeout=120

这里需要注意 mysql.sock 文件所在位置必须是 /tmp 目录下,否则会报找不到 sock 文件的错误。

将 /home/mysql/data/ 和 /etc/my.cnf的所有子文件的拥有者全部更改为 mysql 用户

    $ chown -R mysql:mysql /home/mysql/data/  /etc/my.cnf

修改完后,启动mysql

    $ /home/mysql/bin/mysqld --defaults-file=/etc/my.cnf &

    或者
    $ service mysql start

等待几秒完成后,使用初始化提供的密码进行登陆,如果有错误可以去 /home/mysql/data/error.log 查看日志信息

    $ mysql -u root -p

成功登录后,如图所示: 

  

登录上来后的第一件事就是修改初始化密码,我这里新密码是 openailab,大家自定义就好

$ alter user user() identified by "";

$ use mysql;

$ update user set authentication_string = password('openailab'), password_expired = 'N', password_last_changed = now() where user = 'root';

$ FLUSH PRIVILEGES;

如果 3306 端口没开就先开一下端口

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

$ firewall-cmd --reload

然后我们通过 Navcat 工具进行连接,如图所示:

  

这里的解决方案是修改 user 表中的Host为 %

$ mysql -u root -p

$ use mysql;

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

$ FLUSH PRIVILEGES;

然后重新连接测试,问题解决,如图所示: 

  

到此单机搭建完成(数据备份的方法这里没有说,我会在下文中提到)。

mysql主从同步

主mysql添加配置

#主数据主从配置
server_id=1
log-bin=mysql-bin
#可读可写
read-only=0
#需要同步的库
binlog-do-db=water_data
#忽略的数据库
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema

从mysql添加配置

#从数据库配置
#server_id必须唯一
server_id=2
log-bin=mysql-bin
#只读
read-only=1
#需要同步的库
binlog-do-db=water_data
#忽略的数据库
replicate-ignore-db=mysql
replicate-ignore-db=sys
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema

主mysql创建一个账户,这个账户给从mysql连接用来同步数据

use mysql;
CREATE USER 'repl'@'%' IDENTIFIED BY 'repl123';
flush privileges;

主mysql授权上面创建的账户给从mysql

GRANT REPLICATION SLAVE ON *.* to 'repl'@'%' identified by 'repl123';

查看主库授权信息

show master status \G

登录到从mysql,指定同步的主mysql的信息

change master to master_host='139.224.54.205', master_port=3306, master_user='repl', master_password='repl123', master_log_file='mysql-bin.000002', master_log_pos=0;

登录从mysql启动同步

start slave;

验证主从是否启动正确
show slave status\G;

如图,必须Slave_IO_Running和Slave_SQL_Running都为Yes才可以,否则一直重复下面步骤,直至成功。

stop slave;
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
start slave;

至此主从同步搭建好,可以登录主库创建数据库和表,录入数据了。

mysql清除主从信息

主:reset master;

从:reset slave all;

MySQL集群主从复制搭建 - hefengjun - 博客园

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值