mysql主从服务器配置
来源:互联网 发布:scientific linux 6 编辑:程序博客网 时间:2024/05/22 00:29
前言:假设主服务器为AS(ip:192.168.20.9),从服务器为BS(ip192.168.20.8),操作如下:
- 假如BS上还没有数据库,需要先把要同步的数据库拷贝一份到BS上。
注意:对AS的数据库进行备份时,需要先停掉AS上的mysql服务,备份好之后再重启
- 在AS上进行主服务器的配置,编辑AS上的/etc/my.cnf文件(编辑之前请先备份),在文件中加入如下内容:
log-bin=mysql-binserver-id=1binlog-do-db=guser binlog-do-db=gmbinlog-do-db=gm_old......binlog-ignore-db=information_schema,horde,mysql,phpmyadmin_5l8JCTUK8xa9,phpmyadmin_l2RCxzQZbD5x,psa
其中binlog-do-db配置的是要同步的数据库名,binlog-ignore-db配置的是不同步的数据库名
- 重启AS上的mysql使修改生效:
service mysqld restart
- 在AS上建立一个有操作数据库权限的账户,如:luna;gotobus888,然后用改账号登录mysql
mysql -u luna -p
在提示中输入密码进入mysql界面,在mysql界面再输入如下指令:
mysq> show master status;
然后记录下下图所示数据,file=mysql-bin.000001,pos=4500
- 在BS上进行从服务器的配置,编辑BS上的/etc/my.cnf文件(编辑前先备份),在文件中加入如下内容:
log-bin=mysql-binserver-id=3relay_log=mysql-relay-binlog_slave_updates=1replicate-do-db=guserreplicate-do-db=gmreplicate-do-db=gm_old......slave-skip-errors=all
replicate-do-db配置要同步的数据库名,同主服务器上一致
- 重启BS上的mysql使修改生效:
service mysqld restart
- 在从服务器BS上输入如下指令进入mysql界面:
mysql -uadmin -p`cat /etc/psa/.psa.shadow`;
在mysql界面再输入如下指令修改slave的参数:
slave stop;change master tomaster_host='192.168.0.1',master_user='backup',master_password='123456',master_log_file='mysql-bin.000001', #此处填写主服务器的日志文件名master_log_pos=4500; #此处填写主服务器日志文件记录的位置slave start;
输入如下指令检查slave状态:
show slave status \G;
结果如下图所示,则表示配置成功(注意红线框内的内容)
常见问题总结
- 主从同步报错,show slave status\G:显示结果如下:
Slave_SQL_Running: NOSeconds_Behind_Master: NULL
解决办法,在mysql界面输入如下指令
stop slave;set global sql_slave_skip_counter =1 ;start slave;
此时show slave status\G:显示结果如下:
Slave_IO_Running: YesSlave_SQL_Running: YesSeconds_Behind_Master:0
- 在主服务器上修改过my.cnf中的数据,并重启过数据库后,在从服务器启动slave会报错,此时可用如下指令:
stop slave;reset slave;start slave;
- mysql执行过程中提示“table ’ ***’is read only”,首先可以用如下指令查看当前用户的权限
mysql> SHOW GRANTS FOR CURRENT_USER;+-----------------------------------------------------------------------------+| Grants for dbuser@% |+-----------------------------------------------------------------------------+| GRANT USAGE ON *.* TO 'dbuser'@'%' IDENTIFIED BY PASSWORD 'randomhex' || GRANT ALL PRIVILEGES ON `dbname`.* TO 'dbuser'@'%' |+-----------------------------------------------------------------------------+2 rows in set (0.00 sec)
mysql> REPAIR TABLE tbl_name;+-------------------+--------+----------+----------------------------------------+| Table | Op | Msg_type | Msg_text |+-------------------+--------+----------+----------------------------------------+| dbuser.tbl_name| repair | error | Table 'dbname.tbl_name' is read only |+-------------------+--------+----------+----------------------------------------+1 row in set, 1 warning (0.00 sec)
假如问题还没有得到解决,查看/var/lib/mysql/目录下的文件是否都属于mysql:mysql(包括数据库子目录),修改权限后要重启mysqld。并且重新配置master的参数
- 主服务器数据库出现了一些问题,要将从服务器转为主服务器。如何干净的清楚slave信息
mysql > slave stop;mysql > reset slave all;
重启mysql服务,用show slave status \G;查看状态,结果如下:
mysql> show slave status \G;Empty set (0.00 sec)ERROR: No query specified
假如重新生成了master.info,relay-log.info,试一下CHANGE MASTER TO MASTER_HOST=”; - 用mysqldump备份数据库时,有时会报如下错
mysqldump: Got error: 145: Table './wordpress***/wp_user***' is marked as crashed and should be repaired when using LOCK TABLES
这是因为数据表当时本身有问题,用以下方式解决check tables wp_user***repair tables wp_user***
0 0
- MySQL主从服务器配置
- MYSQL 主从服务器配置
- MYSQL主从服务器配置
- MYSQL 主从服务器配置
- mysql 主从服务器配置
- mysql 主从服务器配置
- MySQL主从服务器配置
- MySQL主从服务器配置
- mysql主从服务器配置
- 配置主从mysql服务器
- mysql主从服务器配置
- MYSQL 主从服务器配置
- mysql配置主从服务器
- MySql 主从服务器配置
- mysql主从服务器配置实验
- mysql 数据库服务器 主从配置
- mysql服务器的主从配置
- MySql 5.5 主从服务器配置
- unity3d 5.0 SurvivalShooter(一) 角色移动
- ffmpeg编解码详细过程
- apk签名命令总结
- leetcode-235-Lowest Common Ancestor of a Binary Search Tree
- eclipse使用技巧
- mysql主从服务器配置
- 多线程下的信号和fork,以及IO操作
- 仿大众点评下拉菜单实现
- java 判断一个字串中的字符全是字母
- web 应用内存溢出问题
- JSON.parse()与JSON.stringify() (浏览器兼容性:IE8以上、Chrome、Firefox3.5、Opera10.5、Safari4.0)
- OpenCV使用标定图
- Rotate List
- iOS开发系列--让你的应用“动”起来--动画