数据库--一主多从
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库--一主多从相关的知识,希望对你有一定的参考价值。
多实列及其一主多从
创建存放数据库信息的目录
[[email protected] ~]# mkdir /data/330{7..9} –p
创建存放配置文件的文件
[[email protected] ~]# touch /data/330{7..9}/my.cnf
编辑3307配置文件
[[email protected] ~]# vim /data/3307/my.cnf
[mysqld]
basedir=/application/mysql
datadir=/data/3307/data
socket=/data/3307/mysql.sock
log_error=/data/3307/mysql.log
log-bin=/data/3307/mysql-bin
server_id=7
port=3307
[client]
socket=/data/3307/mysql.sock //指定了3307数据库的sock的文件
编辑3308配置文件
[[email protected] ~]# vim /data/3307/my.cnf
[mysqld]
basedir=/application/mysql
datadir=/data/3308/data
socket=/data/3308/mysql.sock
log_error=/data/3308/mysql.log
log-bin=/data/3308/mysql-bin
server_id=8
port=3308
[client]
socket=/data/3308/mysql.sock
编辑3309配置文件
[[email protected] ~]# vim /data/3309/my.cnf
[mysqld]
basedir=/application/mysql
datadir=/data/3309/data
socket=/data/3309/mysql.sock
log_error=/data/3309/mysql.log
log-bin=/data/3309/mysql-bin
server_id=9
port=3309
[client]
socket=/data/3309/mysql.sock
初始化3307数据库
[[email protected] ~]#/application/mysql/scripts/mysql_install_db
--user=mysql
--defaults-file=/data/3307/my.cnf
--basedir=/application/mysql --datadir=/data/3307/data
初始化3308数据库
[[email protected] ~]#/application/mysql/scripts/mysql_install_db
--user=mysql
--defaults-file=/data/3308/my.cnf
--basedir=/application/mysql --datadir=/data/3308/data
初始化3309数据库
[[email protected] ~]#/application/mysql/scripts/mysql_install_db
--user=mysql
--defaults-file=/data/3309/my.cnf
--basedir=/application/mysql --datadir=/data/3309/data
修改权限
[[email protected]]# chown -R mysql.mysql /data/330*
启动实列
[[email protected]]# mysqld_safe --defaults-file=/data/3307/my.cnf &
[[email protected]]# mysqld_safe --defaults-file=/data/3308/my.cnf &
[[email protected]]# mysqld_safe --defaults-file=/data/3309/my.cnf &
登陆数据库
[[email protected]]# mysql -S /data/3307/mysql.sock -e "show variables like ‘server_id‘"
[[email protected]]# mysql -S /data/3308/mysql.sock -e "show variables like ‘server_id‘"
[[email protected]]# mysql -S /data/3309/mysql.sock -e "show variables like ‘server_id‘"
以上实列配置(一主多从)
以3307做为主库
[[email protected]]# mysql -S /data/3307/mysql.sock -e "show variables like ‘server_id‘" //登陆主库
数据库的主库的授权
grant replication slave on *.* to [email protected]‘localhost‘ identified by ‘123‘;
查看数据库的状态
mysql> show master status;
要提取出file值和position值从库使用。
导出主库的内容
mysqldump -uroot -p3307 -S /data/3307/mysql.sock -A >/root/3307.sql
从库的配置 (3308和3309做为从库)
导入主库的内容,主从库的内容实现高度一致
mysql -uroot -p3308 -S /data/3308/mysql.sock </root/3307.sql
登陆从库
mysql -S /data/3308/mysql.sock -e "show variables like ‘server_id‘"
从库的设置
mysql> change master to
-> master_host=‘localhost‘,
-> master_port=3307,
-> master_user=‘slave‘,
-> master_password=‘123‘,
-> master_log_file=‘mysql-bin.000008‘, // 一定要和主库的授权表信息表示一致
-> master_log_pos=521; // 一定要和主库的授权表信息表示一致
状态值查看
mysql> start slave;
mysql> show slave statusG;
主从配置成功
导入主库的内容,主从库的内容实现高度一致
mysql -uroot -p3309 -S /data/3309/mysql.sock </root/3307.sql
登陆从库
mysql -S /data/3309/mysql.sock -e "show variables like ‘server_id‘"
从库的设置
mysql> change master to
-> master_host=‘localhost‘,
-> master_port=3307,
-> master_user=‘slave‘,
-> master_password=‘123‘,
-> master_log_file=‘mysql-bin.000008‘, // 一定要和主库的授权表信息表示一致
-> master_log_pos=521; // 一定要和主库的授权表信息表示一致
状态值查看
mysql> start slave;
mysql> show slave statusG;
主从配置成功
以上是关于数据库--一主多从的主要内容,如果未能解决你的问题,请参考以下文章