mysql主从搭建
Posted 生活无奈1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql主从搭建相关的知识,希望对你有一定的参考价值。
一、安装mysql
(1) 解压mysql包,并创建mysql用户与创建mysql数据目录
tar zxvf mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz mv mysql-5.6.43-linux-glibc2.12-x86_64 /usr/local/mysql useradd -s /sbin/nologin mysql mkdir -p /data/mysql |
(2) 拷贝源码包mysql的启动文件与配置文件
cd /usr/local/mysql yum -y install autoconf ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql cp support-files/mysql.server /etc/init.d/mysqld cp support-files/my-default.cnf /etc/my.cnf (提示是否覆盖,填写y)cp: overwrite ‘/etc/my.cnf’? y
chmod 755 /etc/init.d/mysqld chkconfig --add mysqld chkconfig mysqld on |
(3) 编辑mysql的启动文件
vi /etc/init.d/mysqld |
修改参数为:
basedir=/usr/local/mysql datadir=/data/mysql ###保存退出。 |
(4) 启动mysql
/etc/init.d/mysqld start netstat -lntp |grep mysql |
执行效果,如图2所示
说明mysql主启动完成
(5) 拷贝主mysql作为从,示例如下。
cp -r /usr/local/mysql /usr/local/mysql2 cd /usr/local/mysql2 mkdir -p /data/mysql2 cp /etc/init.d/mysqld /etc/init.d/mysqld2 ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql2
|
(6) 配置从mysql并启动。
chmod 755 /etc/init.d/mysqld2 chkconfig --add mysqld2 chkconfig mysqld2 on vi /etc/init.d/mysqld2 ###添加下列参数 basedir= /usr/local/mysql2 datadir=/data/mysql2 ###保存退出 vi my.cnf ####添加下列参数 port =3307 ####保存退出 /etc/init.d/mysqld2 start netstat -lntp |grep mysql |
执行效果如图3所示。
(7) 下面配置主数据库
前面主要是搭建主数据库和从数据库,能看到3306和3307端口,就说明主从数据库都能起来,现在下面配置主和从的复制,首先配置/etc/my.cnf(主配置文件)
vi /etc/my.cnf ###添加下面内容 server_id = 1 log_bin = master ###保存退出 /etc/init.d/mysqld restart
####把主数据库的mysql数据拷贝出来作为测试数据,并给从库并同步来使用。 /usr/local/mysql/bin/mysqldump -uroot mysql > /tmp/mysql.sql /usr/local/mysql/bin/mysql -uroot -e “create database testsql” /usr/local/mysql/bin/mysql -uroot testsql < /tmp/mysql.sql
/usr/local/mysql/bin/mysql mysql >grant replication slave on *.* to \'repl\'@127.0.0.1 identified by \'123456\'; mysql>flush tables with read lock; mysql >show master status; #####此为注释 ctrl+d 表示退出
|
上图中的 file 和position 会在后面配置 从数据库使用。
(8) 下面配置从数据库
vi /usr/local/mysql2/my.cnf ### 添加下面内容 server_id = 2 ### 保存退出 /etc/init.d/mysqld2 restart
####把备份的数据库还原到从数据中,这边做的目的是为了和主从数据库的数据初始状态一致。 /usr/local/mysql2/bin/mysql -e "create database testsql" /usr/local/mysql2/bin/mysql testsql < /tmp/mysql.sql
/usr/local/mysql2/bin/mysql mysql>stop slave; mysql>change master to master_host=\'127.0.0.1\',master_user=’repl’,master_port=3306,master_password=\'123456\',master_log_file=\'master.000001\',master_log_pos=646075; mysql>start slave; mysql>show slave status\\G;
|
以上是关于mysql主从搭建的主要内容,如果未能解决你的问题,请参考以下文章