CentOS下Mysql实现数据库主从同步
CentOS下Mysql实现数据库主从同步
一、环境
A服务器: 192.168.10.42 主服务器master CentOS 5 Mysql 5.1.34
B服务器: 192.168.10.68 副服务器slave CentOS 5 Mysql 5.0.56
二、设置Master服务器
1、编辑Master上的/etc/my.cnf文件
在
# Replication Master Server (default)
# binary logging is required for replication
添加如下内容:
log-bin=/var/log/mysql/updatelog
server-id = 1
binlog-do-db=test
binlog-ignore-db=mysql
2、在Master服务器的Mysql上增加同步帐号
mysql>GRANT PRIVILEGES on *.* back@192.168.10.68 IDENTIFIED BY '123456'
mysql>FLUSH PRIVILEGES;
3、重新启动mysql
service mysql restart;
4、创建需要同步的数据库sycronDb
三、设置Slave服务器
1、修改/etc/my.cnf文件
server-id = 2
master-host = 192.168.0.1
master-user = back
master-password = back
master-port = 3306
replicate-ignore-db=mysql
replicate-do-db=sycronDb;
2、重新启动mysql
service mysql restart
3、在Slave服务器上不用创建sycronDb,同步程序会自动创建数据库.
四、启动同步
1、在Master服务器上
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000016 | 1033 | sycronDb | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
2、在Slave服务器上
mysql>slave start;
mysql>CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000016',MASTER
相关文档:
添加字段:
MYSQL
alter table tb add col2 varchar(10)
MSSQL2000
alter table tb add col2 varchar(10)
修改字段:
MYSQL
alter table tb modify col2 varchar(20)
MSSQL2000
alter table tb alter column col2 varchar(20)
删除字段:
MYSQL
alter table tb drop column col ......
http://blog.csdn.net/iamstillzhang/archive/2007/04/01/1548377.aspx
用mysql源码进行SQL解析
Mysql是通过yacc进行SQL语句解析的,这里介绍一下如何使用mysql的源码进行SQL语句解析。由于Mysql的源代码注释比较少,而且缺少资料,所有些地方研究不够深入。
1 Filed介绍
MY ......
建立一个主外键关系
create table t_dept(
id int(4) not null, name varchar(50) not null,
primary key(id))type=innodb;
create table t_emp (
id int(6) not null,
name char(255) not null,fk_id int(4) not null,
primary key(id),
foreign key (fk_id) references t_dept (id)) type=innodb; ......
$sudo nano /etc/apparmor.d/usr.sbin.mysqld
在gedit中找到/var/lib/mysql/这两行,注释掉这两行,在这两行前分别添加一个符号“#”即可注释,在这两行之前或
之后加上下面内容:
/home/mysql/ r,
/home/mysql/** rwk,
保存后退出,执行命令:
$sudo /etc/init.d/apparmor reload
返回Reloading AppArmo ......
1、进入mysql,创建一个新用户xuys:
格式:grant 权限 on 数据库名.表名 用户@登录主机 identified by "用户密码";
grant select,update,insert,delete on *.* to xuys@192.168.88.234 identified by "xuys1234";
查看结果,执行:
use mysql;
select host,user,p ......