mysql配置主从

MySQL主从配置教程

本例配置说明:

    已安装mysql,
   本例中mysql的数据存储目录为:/opt/data/mysql,
    日志目录为:/opt/log/mysql

一 创建相应的数据日志存储目录

service mysqld stop  #先停止mysql服务
rm -rf /opt/data/mysql #删除原有的mysql目录
mkdir  -p  /opt/data/mysql1 #创建主库数据存储目录
mkdir  -p  /opt/data/mysql2 #创建从裤数据存储目录chown -R mysql.mysql /opt/data/mysql1  #修改用户属性为mysql
chown -R mysql.mysql /opt/data/mysql2rm -rf /opt/log/mysql #删除原有的mysql日志目录
mkdir -p /opt/log/mysql1 #创建主库日志目录
mkdir -p /opt/log/mysql2 #创建从裤日志目录chown -R mysql.mysql /opt/log/mysql1   #修改用户属性为mysql
chown -R mysql.mysql /opt/log/mysql2mkdir -p /var/run/mysql1    #创建目录,并修改属性
chown -R mysql.mysql /var/run/mysql1
mkdir -p /var/run/mysql2
chown -R mysql.mysql /var/run/mysql2
mkdir -p /dev/shm/mysql1
mkdir -p /dev/shm/mysql2
chown -R mysql.mysql /dev/shm/mysql1
chown -R mysql.mysql /dev/shm/mysql2
​
\cp -r my.cnf /etc/mysql/my.cnf  #替换原有的my.cnf配置文件
​
\cp -r mysqld_multi /dom/mysql/bin/mysqld_multi  #替换原有的mysqld_multi文件
ln -sf /dom/mysql/bin/mysqld_multi /etc/init.d/mysqld #设置软连接/dom/mysql/bin/mysql_install_db --basedir=/dom/mysql/ --datadir=/dom/datalink/mysql1/  #初始化数据库
/dom/mysql/bin/mysql_install_db --basedir=/dom/mysql/ --datadir=/dom/datalink/mysql2/
         
chown -R mysql.mysql /opt/data/mysql1  #依次修改用户属性
chown -R mysql.mysql /opt/data/mysql2 
chown -R mysql.mysql /opt/log/mysql1
chown -R mysql.mysql /opt/log/mysql2
chown -R mysql.mysql /var/run/mysql1
chown -R mysql.mysql /var/run/mysql2
chown -R mysql.mysql /dev/shm/mysql1
chown -R mysql.mysql /dev/shm/mysql2

二 启动数据库

service mysqld start 1  #启动主库
service mysqld start 2  #启动从库

三 配置完成后修改新的数据库密码

mysqladmin -uroot password '******' -P13507 -S /dev/shm/mysql1/mysql.sock 
mysqladmin -uroot password '******' -P13508 -S /dev/shm/mysql2/mysql.sock  

四 配置同步账户和权限

1 登陆端口为13507的主库,执行:
    mysql -uroot -p'impadmin' -P13507 -S /dev/shm/mysql1/mysql.sock
2 建立一个同步用户,执行2条命令:
    grant replication slave, replication client on *.* to repl@'localhost' identified by 'repl';
    quit;
​
3 登陆端口为13508的从库,
    mysql -uroot -p'impadmin' -P13508 -S /dev/shm/mysql2/mysql.sock
-- 设置主库同步信息,执行2条命令:
    change master to master_host='localhost', MASTER_PORT=13507, master_user='repl', master_password='repl', master_log_file='mysql-bin.000001', master_log_pos=0;
    start slave;
    quit;
其中MASTER_PORT为主库的端口,master_user主库同步用户名,master_password主库同步密码。
重启数据库服务后。4 登陆主库, 执行:
    show master status \G
-- 执行:
    show processlist;
如果看到 repl 用户的State状态为:Master has sent all binlog to slave; watting...  说明主库配置成功(主从是根据bin-log进程同步的)。5 登录从库,执行:
    show slave status \G
可以看到Slave_IO_State:watting for master to send event 
-- 执行:
    show processlist;
如果看到
    system user        Waitting for master to send event 
    system user        Slave has read all .........
则说明从库配置成功

五 对数据库进行配置

1.  登录13507数据库,执行
    mysql -uroot -p'impadmin' -P13507 -S /dev/shm/mysql1/mysql.sock
2.  创建数据库用户,执行
    grant all privileges on *.* to imp_admin@"%" identified by 'paswrd';
    grant all privileges on *.* to imp_admin@"localhost" identified by 'paswrd';
​
    flush privileges;
    create database imp_commondb;
    create database imp_monitordb;
    create database imp_scheduledb;
    quit;
3.  登录13508数据库,执行
    mysql -uroot -p'impadmin' -P13508 -S /dev/shm/mysql2/mysql.sock
4.  创建数据库用户,执行
    grant all privileges on *.* to imp_admin@"%" identified by 'caimP@*&56';
    grant all privileges on *.* to imp_admin@"localhost" identified by 'caimP@*&56';
    flush privileges;
    quit;
5.  配置完成。
6.  替换etc/mysql目录下的my.cnf文件
    grant all privileges on *.* to imp_admin@'%' identified by 'caimP@*&56';
    flush privileges;
​

六 my.cnf配置文件

[mysqld_multi]
mysqld = /dom/mysql/bin/mysqld_safe
mysqladmin = /dom/mysql/bin/mysqladmin
​
#主库配置 
[mysqld1]
basedir = /dom/mysql
socket = /dev/shm/mysql1/mysql.sock
port = 13507  
pid-file = /var/run/mysql1/mysql.pid
datadir = /dom/datalink/mysql1
log-bin = /dom/loglink/mysql1/mysql-bin
relay-log = /dom/loglink/mysql1/relay-log
relay-log-index = /dom/loglink/mysql1/relay
server-id = 1
default-storage-engine=innodb
lower_case_table_names=1
​
binlog-ignore-db = mysql  #标记不做主从的数据库
binlog-ignore-db = information_schema
binlog-ignore-db = cdp_dbmodel
binlog-ignore-db = dba_dbmodel
binlog-ignore-db = emm_dbmodel
binlog-ignore-db = emm_imserver
binlog-ignore-db = ets_dbmodel
binlog-ignore-db = impdb
binlog-ignore-db = oma_dbmodel
binlog-ignore-db = performance_schema
binlog-ignore-db = tmp_dba_dest
binlog-ignore-db = tmp_dba_src
binlog-ignore-db = test
​
#从库配置
[mysqld2]
basedir = /dom/mysql
socket = /dev/shm/mysql2/mysql.sock
port = 13508
pid-file = /var/run/mysql2/mysql.pid
datadir = /dom/datalink/mysql2
log-bin = /dom/loglink/mysql2/mysql-bin
relay-log = /dom/loglink/mysql2/relay-log
relay-log-index = /dom/loglink/mysql2/relay
server-id = 2
slave-skip-error=all
default-storage-engine=innodb
lower_case_table_names=1

附件:mysqld_multi下载

配置MySQL主从复制,你需要进行以下步骤: 1. 首先,在主服务器上编辑主配置文件(my.cnf或my.ini),找到并设置以下参数: ``` server-id = 1 # 主服务器的唯一标识ID,每个服务器都应该有不同的ID log_bin = /var/log/mysql/mysql-bin.log # 启用二进制日志文件,用于记录所有的写操作 binlog_do_db = your_database_name # 需要复制的数据库名称 ``` 2. 重启主服务器以使配置生效。 3. 在主服务器上创建一个用于复制的专用用户,并授予适当的权限。例如,使用以下命令在MySQL shell中创建用户: ``` CREATE USER 'replication_user'@'slave_ip' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'slave_ip'; FLUSH PRIVILEGES; ``` 4. 在主服务器上执行以下命令来锁定数据库并获取当前二进制日志文件的位置: ``` FLUSH TABLES WITH READ LOCK; SHOW MASTER STATUS; ``` 5. 记下上述命令的输出,包括文件名和位置(File 和 Position)。 6. 在从服务器上编辑从配置文件,并设置以下参数: ``` server-id = 2 # 从服务器的唯一标识ID,与主服务器不同 relay-log = /var/log/mysql/mysql-relay-bin.log # 从服务器的中继日志文件 log_bin = /var/log/mysql/mysql-bin.log # 启用二进制日志文件 ``` 7. 重启从服务器以使配置生效。 8. 在从服务器上使用以下命令来连接到主服务器并配置复制: ``` CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='replication_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='master_log_file_name', MASTER_LOG_POS=master_log_position; ``` 其中,master_ip 是主服务器的IP地址,replication_user 是在主服务器上创建的复制用户,password 是复制用户的密码,master_log_file_name 和 master_log_position 分别是步骤4中获取的日志文件名和位置。 9. 在从服务器上启动复制进程: ``` START SLAVE; ``` 10. 检查从服务器的状态,确保没有错误: ``` SHOW SLAVE STATUS\G ``` 确保以下参数的值为 "Yes": - Slave_IO_Running - Slave_SQL_Running 如果一切配置正确,主从复制就会开始工作。主服务器上的更改会自动在从服务器上复制和应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值