在现代企业中,数据显得尤为重要,而存储数据的数据库选择又五花八门,但无论是何种数据库,均存在着一种隐患。
当数据规模非常大,读写量也很高时,一台数据库已经无法负担全部读写任务,就需要多台数据库同时运作分担负载。
主从复制步骤:
需求:
搭建两台mysql服务器,一台作为主服务器,一台作为从服务器,主服务器进行写操作,从服务器进行读操作
环境:
主从复制配置步骤:
详情请参考mysql安装
#以下操作在主库进行 mysql> create user 'repl'@'192.168.233.247' identified by 'repl123'; query ok, 0 rows affected (0.00 sec) mysql> grant replication slave on *.* to 'repl'@'192.168.233.247'; query ok, 0 rows affected (0.00 sec)
#新开一个终端,对主库锁表,防止配置期间有其他人写入,锁表期间不能关闭终端或退出mysql交互式命令行 mysql> flush tables with read lock; #全备主库 [root@lynk ~]# mysqldump -uroot -plynk123~ --all-databases > /opt/all-201902271419.sql #复制备份文件到从库 [root@lynk ~]# scp /opt/all-201902271419.sql root@192.168.233.247:/opt/ #在从库恢复主库的备份 [root@hyrule ~]# mysql -uroot -plynk123~ < /opt/all-201902271419.sql
[root@lynk ~]# vim /etc/my.cnf #在[mysqld]后添加如下内容(已有的内容不要改变) datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock #启用binlog日志 log-bin=mysql-bin #数据库服务器唯一标识符,主库的server-id值必须比从库的大 server-id=1 symbolic-links=0 log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid #结束主库锁表状态,只要退出另一个终端中mysql交互式命令行就行了 mysql> quit #重启mysql服务 [root@lynk ~]# systemctl restart mysqld #查看主库状态 [root@lynk ~]# mysql -uroot -plynk123~ -e 'show master status;' mysql: [warning] using a password on the command line interface can be insecure. +------------------+----------+--------------+------------------+-------------------+ | file | position | binlog_do_db | binlog_ignore_db | executed_gtid_set | +------------------+----------+--------------+------------------+-------------------+ | mysql-bin.000001 | 23912 | | | | +------------------+----------+--------------+------------------+-------------------+
[root@hyrule ~]# vim /etc/my.cnf #添加如下内容 server-id=2 relay-log=mysql-relay-bin #重启从库 [root@hyrule ~]# systemctl restart mysqld #配置主从复制 mysql> change master to -> master_host='192.168.233.129', -> master_user='repl', -> master_password='repl123', -> master_log_file='mysql-bin.000001', -> master_log_pos=23912; query ok, 0 rows affected, 2 warnings (0.04 sec) mysql> start slave; query ok, 0 rows affected (0.02 sec)
#在主库中新建一个库或表,在从库中查看是否有主库中新建的表
如对本文有疑问, 点击进行留言回复!!
linux下文本编辑器vim的使用方法(复制、粘贴、替换、行号、撤销、多文件操作)
网友评论