准备工作:
环境:
主库:192.168.15.143
备库:192.168.15.142
安装MySQL数据库(略);
配置my.ini文件
主库(143上面MySQL数据库目录下的my.ini文件)配置:
log-bin=master-log-bin
server-id=1(保证主库id唯一,与备库不同即可)
innodb-file-per-table=ON
(需要配置在my.ini 文件的[mysql]之间)
数据库安装路径和数据库文件路径安装数据库时配置;
重启服务,并进入MySQL
查看主服务器状态信息:(记住文件名称和pos号,备库配置时需要填写)
在MySQL(主库143)中创建一个用于复制的用户,并授予复制权限:
CREATE USER ‘repl’@‘%’ IDENTIFIED BY ‘Gt@123456’;
给复制用户授权
GRANT REPLICATION SLAVE ON . TO ‘repl’@‘%’;
#GRANT ALL PRIVILEGES ON database_name.* TO ‘repl’@‘%’;
#GRANT ALL PRIVILEGES ON . TO ‘repl’@‘%’;
配置完成后一定要刷新权限:
flush privileges;
到此主库配置完成;
备库(142库配置)
配置my.ini文件
主库(142上面MySQL数据库目录下的my.ini文件)配置:
log-bin=slave-log-bin
relay-log=relay-log
relay-log-index=relay-log.index
server-id=2(与主库不同)
innodb_file_per_table=ON
重启备库(142)数据库服务;
net stop mysql; net start mysql;
在备库上面执行-用主服务器提供的复制用户连接主服务器
CHANGE MASTER TO MASTER_HOST=‘192.168.15.143’,MASTER_USER=‘repl’,MASTER_PASSWORD=‘gt@123456’,MASTER_LOG_FILE=‘master-log-bin.000001’,MASTER_LOG_POS=154;
启动复制线程:start slave;
查看进程状态:show slave status\G
确保IO_RUNING 和 SQL_RUNING 都是YES状态;
报错问题处理:
报错:Last_SQL_Error: Error ‘Can’t find any matching row in the user table’ on query. Default database:
[mysqld]
replicate-wild-ignore-table=mysql.%(%代表需要过滤掉的数据表)
报错:mysql主从库同步错误:1062 Error ‘Duplicate entry ‘1438019’ for key ‘PRIMARY’’ on query
[mysqld]
slave_skip_errors = 1062 (跳过重复)
.修改mysql初始密码:
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘123mysql’;
mysqld --initialize-insecure --user=mysql
mysqld --install “mysql” --defaults-fiels=””
Mysql 数据库备份和恢复(导出和导入)
主库导出:在数据库安装路径bin目录下,输入mysqldump -uroot -p --default-character-set=数据编码databasename>备份路径\备份名称.sql 回车后输入数据库密码
导入:
在数据库下建立所需要的数据库名称test(空库):
登录mysql
use test
set names utf8(my.ini 中配置的字符集对应,如导入时出现乱码使用,否则不用)
source c:\目录\备