1.安装最新的ubuntu server版本,并更新系统。
2.安装mysql server:sudo apt-get instal -server,然后设置管理员密码,去掉本地地址绑定,以便可以进行远程访问。
主:192.168.137.12
从:192.168.137.13
3.设置utf8字符集来支持中文,在主从服务器的配置文件/etc/mysql/my.cnf中加入:
代码如下 复制代码
[client]
default-character-set = utf8
[mysqld]
default-character-set = utf8
init_connect = 'set names utf8;'
4.在服务器中启动备份。首先在主服务器在配置文件中添加下面的内容。其中s3(举个例子)为需要同步的。
代码如下 复制代码
[mysqld]
log-bin = mysql-bin
server-id = 1
binlog-do-db = s3
5.重新启动主数据库。
代码如下 复制代码
sudo service start mysql
6.连接到主数据库,并创建你需要同步的数据库,如果已经存在可以忽略这一步。
代码如下 复制代码
mysql –u root –p
create database s3;
7.在服务器中添加一个账号(sync)用于同步数据库,并赋予从备份的权限,重要。
代码如下 复制代码
grant replication slave on *.* to 'sync'@'%' identified by '12345'
8.记录s3数据库的日志文件名称和位置,用于从机备份开始的位置。
代码如下 复制代码
mysql> show master status;
+------------------+----------+--------------+------------------+
| file | position | binlog_do_db | binlog_ignore_db |
+------------------+----------+--------------+------------------+
| mysql-bin.000007 | 106 | s3 | |
+------------------+----------+--------------+------------------+
9.修改从机的配置文件。
代码如下 复制代码
[mysqld]
server-id = 2
read-only
master-connect-retry = 60
replicate-do-db = s3
10.重新启动从机,新建数据库(s3)或者从原来的数据库恢复数据库。并执行命令:
代码如下 复制代码
change master to master_host='192.168.137.12', master_user='sync',master_password='12345',master_log_file='mysql-bin.000007',master_log_pos=106;
11.启动从机备份,并查看从机状态。
代码如下 复制代码
start slave;
show slave statusg;
*************************** 1. row ***************************
slave_io_state: waiting for master to send event
master_host: 192.168.137.12
master_user: sync
master_port: 3306
connect_retry: 60
master_log_file: mysql-bin.000007
read_master_log_pos: 106
relay_log_file: s3-db-slave-1-relay-bin.000010
relay_log_pos: 251
relay_master_log_file: mysql-bin.000007
slave_io_running: yes
slave_sql_running: yes
replicate_do_db: s3
replicate_ignore_db:
replicate_do_table:
replicate_ignore_table:
replicate_wild_do_table:
replicate_wild_ignore_table:
last_errno: 0
last_error:
skip_counter: 0
exec_master_log_pos: 106
relay_log_space: 559
until_condition: none
until_log_file:
until_log_pos: 0
master_ssl_allowed: no
master_ssl_ca_file:
master_ssl_ca_path:
master_ssl_cert:
master_ssl_cipher:
master_ssl_key:
seconds_behind_master: 0
master_ssl_verify_server_cert: no
last_io_errno: 0
last_io_error:
last_sql_errno: 0
last_sql_error:
1 row in set (0.00 sec)
slave_io_running: yes
slave_sql_running: yes
表示工作正常,否者出现问题。出现问题重要的解决工具是查看日志记录。
代码如下 复制代码
cat /var/log/mysql/error.log
