master 10.10.1.100
mysql replication 整理
原创zc_nicolas 博主文章分类:数据库 ©著作权
©著作权归作者所有:来自51CTO博客作者zc_nicolas的原创作品,请联系作者获取转载授权,否则将追究法律责任
slave 10.10.1.110
安装mysql
tar xf mysql-5.5.3-m3.tar
./configure --prefix=/usr/local/mysql \
--localstatedir=/data/mysql --enable-assembler \
--with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static \
--with-pthread --enable-static --with-big-tables --without-ndb-debug \
--with-charset=utf8 --with-extra-charsets=all \
--without-debug --enable-thread-safe-client --enable-local-infile --with-plugins=max
-localstatedir=/data/mysql //库文件存放目录
--with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static//静态编译安装mysql 客户端和服务端
--with-pthread //采用线程
--with-big-tables //对大表的支持
--with-charset=utf8 //默认字符集为utf8
--with-extra-charsets=all //安装所有字符集
--without-debug //去掉debug 模式
--enable-thread-safe-client //以线程方式编译客户端
--with-plugins=max //添加对innodb 及partition 的支持
--enable-local-infile //对load data 的支持
创建mysql用户
id mysql
useradd -s /sbin/nologin mysql
安装数据库
/usr/local/mysql/bin/mysql_install_db --usre=mysql --datadir=/data/mysql
权限
chown -R root.mysql /usr/local/mysql/
chown -R mysql.mysql /data/mysql/
配置文件
cp support-files/my-medium.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
vim /root/.bash_profile
source /root/.bash_profile
配置密码
/etc/init.d/mysqld start
mysqladmin -u root password zhang
/etc/init.d/mysql start
MySQL Replication 俗称MySQL AB 复制,主要是通过把主服务器上的二进制日志通过网络传到
从服务器上,MYSQL 会自己把二进制日志转换成相关的DDL,DML,DCL 等语句!
配置主机
授权,创建用户
mysql -uroot -p
grant replication slave,reload,super on *.* to 'slave'@'10.10.1.%' identified by '123456';
flush privileges;
修改配置文件
vim /etc/my.cnf
server-id=1 #1..设置server id
log-bin=mysql-binlog #打开二进制日志,最好放在不同的硬盘上,减小IO 消耗
expire_logs_day=10 #设置二进制日志保存日期
max_binlog_size=500M #设置每个binlog 文件的大小
/etc/init.d/mysqld restart
show master status;
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000004 | 106 | | |
+------------------+----------+--------------+------------------+
锁表
flush tables with read lock;
备份数据库
mysqldump -u root -pzhang --all-database > all.sql
scp all.sql mysql2:/opt/
unlock tables;
从机配置
mysql -uroot -pzhang <all.sqlll
导入数据
vim /etc/my.cnf
server-id=2 #配置多个从服务器时依次设置id 号
slave-skip-errors=all #mysql 复制可能出现主服务器上可以运行的语句,从服务器不能够运行,所
以我们在my.cnf 加一句slave-skip-errors=all 意思是忽略所有的sql 语句错误!
relay-log=mysql-relay-bin #该文件用于存放Slave 端的I/O 线程从Master 端读取的二进制文件信息
关闭binlog 主要考虑到我们使用Master 的binlog 进行增量备份,这里就不需要了。
#log-bin=mysql-bin
#binlog_format=mixed
flush slave;
CHANGE MASTER TO
-> MASTER_HOST='10.10.1.100',
-> MASTER_USER='slave',
-> MASTER_PASSWORD='unixhot',
-> MASTER_LOG_FILE='mysql-bin.000003',
-> MASTER_LOG_POS=106;
change master to master_host='192.168.1.100',master_user='admin',master_password='123456', master_log_file='binlog.000004',master_log_pos=106;
slave start;
show slave status;
show slave status\G;
其中
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
表示OK了
MySQL错误1042-Can't get hostname for your address解决方法[原]
后来改了linux机器上安装的mysql的配置文件
/opt/lampp/etc
里面有个my.cnf
打开编辑,在
[mysqld]节点下新增或修改如下两行行
skip-name-resolve #忽略主机名的方式访问
lower_case_table_names=1 #忽略数据库表名大小写
重启mysql服务,问题得到解决。
上一篇:nginx-status
下一篇:nagios 配置整理
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
MySQL Replication浅析
浅谈mysql Replication 主从复制原理
linux mysql 运维 -
MySQL Group Replication
1.mysql异步复制2.mysql半同步复制3.Group replication
python mysql 同步复制 其他