mysql数据库主从配置
web站点一般存在的性能瓶颈就是数据库访问,单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢失的话,后果更是 不堪设想。我们就要利用集群或者多台服务器来解决问题。数据库主从配置及读写分离就是其中的一种解决方案。
操作方法
- 01
每台服务器安装mysql数据库,然后将你要实现主从同步的数据库表,分别导入两台机器的中。 我们下面的例子按照主服务器的ip为192.168.3.100,从服务器的ip为192.168.3.101来进行操作。
- 02
我们通过打开服务的控制台,使用 mysql -h 192.168.3.100 -u 数据库名称 -p,进入主数据。执行命令创建用户,并且赋予replication slave 权限(主), $ create user 'dba'@'192.168.3.101' identified by '123456' grant replication slave on *.* to dba@'192.168.3.101';
- 03
修改主机Master配置文件 (/etc/my.cnf) server-id=1 log-bin=/var/lib/mysql/mysql-bin binlog_do_db= 主从同步数据库名称 bind_address=192.168.3.100
- 04
查看主机状态 show variables like 'server_id'; 如果server_id'不存在执行,创建 SET GLOBAL server_id=1; 主机上查看用户权限 show grants for 'yukang1'@'192.168.3.101'; 查看主服务器状态 show master status\G; 如图, 记录下File和Position的值。从服务器要用 重启服务器 sudo service mysql restart 主服务器配置完成。
- 05
修改主机slave配置文件 (/etc/my.cnf) server-id = 2 replicate-do-db = 主从同步数据名称
- 06
打开控制台,使用 mysql -h 192.168.3.101 -u 数据库名称 -p,进入从服务数据库。执行命令 change master to master_host='192.168.3.101',master_user='dba',master_password='123456',master_log_file='binlog_repl|.000001',master_log_pos=106; 关闭从服务:stop slave; 启动服务:strart slave;
- 07
show variables like 'server_id'; 如果server_id'不存在执行,创建 SET GLOBAL server_id=2; 查看从服务器状态 show slave status\G; *************************** 1. row *************************** Slave_IO_Running: Yes Slave_SQL_Running: Yes××××××××××××××××××××××××××××××××××××××× 这两项为yes,恭喜你,部署就成功了。