- 论坛徽章:
- 0
|
Mysql 读写分离
前几天做了一次配置 那次配置出的问题 我思考了几天 想破了头也不知道错误出在哪
数据就不是同步 连日志都没报错
所以彻底从新做了一次
因为先前一个做CentOS 5.5原版和一个CentOS 5.5精装版的的 Mysql都是直接Yum 安装的
不知道是不是这个问题造成的
-------------------------------------------------------
环境:
CentoS 精装版 192.168.0.250 mysql从
CentOS 精装版 192.168.0.251 mysql主
################## mysql 源码安装####################################
tar -zxvf mysql*.gz
cd mysql-5.1.50
useradd -d /dev/null -s /sbin/nologin mysql
./configure --prefix=/usr/local/mysql --enable-assembler --enable-thread-safe-client --with-extra-charsets=complex --with-ssl --with-embedded-server --with-named-curses-libs=/usr/lib/libncursesw.so.5
make
make install
cp support-files/my-large.cnf /etc/my.cnf
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
PATH=$PATH:/usr/local/mysql/bin
/usr/local/mysql/bin/mysql_install_db
chown -R mysql.mysql /usr/local/mysql/var
chmod 755 /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
service mysqld start
/usr/local/mysql/bin/mysql_secure_installation
(mysql 源码安装 不解析)
########### 修改my.cnf #######
[mysqld]
log-bin=mysql-bin
server-id=1
#(暂时指定 同步数据库 和不同步数据库)
#(不过听说同步了Mysql 问题很多 还是先这样做 完成后再修改)
################################
mysql> grant replication slave,reload,super on *.* to slave@192.168.0.250 identified by '123456';
mysql> flush privileges;
mysql> exit;
请在从数据库服务器上测试这个账户:
show privileges
# mysql -u slave -h 192.168.0.250 -p (这个很有必要 比如slave写成了salve 我经常这样打错)
mysql>
mysql> FLUSH TABLES WITH READ LOCK; (主库加锁)
记录日志和偏移量
mysql> show master status ;
建立完整快照
mysqldump --all-database --lock-all-tables >db.sql
复制到从数据库
scp -P 22222 db.sql root@192.168.0.250:/root/ (-P 22222 ----因为我的ssh端口修改了22222)
######### 修改从my.cnf ############
server-id=2
master-host=192.168.0.251
master-user=slave
master-password=123456
master-port=3306
loh-bin=mysql-bin
-----------------------------------
service mysqld restart
mysql -u root -p < db.sql (导入)
unlock tables ; (主库解锁)
mysql> slave stop;
mysql> CHANGE MASTER TO MASTER_HOST='192.168.0.251', MASTER_USER='slave',
MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000005',MASTER_LOG_POS=177; (后面log_file log_pos 参照主库的日志名称和偏移量)
mysql> salve start ;
查状态
mysql> show master status;
mysql> show slave status;
mysql> show processlist ;
数据库操作
create table test.t(name int,age int) ;
insert into test.t values('admin','11');
从库 select * from test.t
测试正常
#####################################
记得Iptables 添加 允许3306 |
|