环境介绍:
archlinux-2015-11-15版本
mariadb
navicat
具体步骤:
1.编辑my.cnf,本环境的路径为/etc/mysql/my.cnf
---ps 建议安装vim,使用起来方便舒服
找到mysqld组下面,
这个是master ,主库
另外二进制的路径文件需要创建一下,并赋予权限
#mkdir -p /data/binlogs
#chown -R mysql:mysql /data/binlogs
2.同样需要修改从库的配置文件
3.进入主库
创建可以复制的用户权限给从库
进入从库,链接到主库
表示数据库已经连上。
四、主从同步配置过程总结
1、主服务器
1)修改server-id
2)启用二进制日志
3)创建有复制权限的账号
2、从服务器
1)修改server-id
2)启用中继日志
3)连接主服务器
4)启程复制线程
# /usr/share/mysql/my-huge.cnf
# MariaDB 配置文件 示例模板(huge,巨型).
#
# 本文件适用于专用数据库服务器, 内存为 1G-2G
# 机器上主要只运行 MariaDB的大型系统 ,
#
# MariaDB 程序会根据运行的操作系统平台查找一系列的配置文件,
# 你可以将此模板配置文件拷贝到对应的位置(并重命名),
# 要查看有哪些配置文件会被读取到,执行:
# 'my_print_defaults --help' 并查看
# Default options are read from the following files in the given order:
# (--> 程序会依次读取列出的配置文件.) 这部分下面列出的文件(路径)列表.
# 更多信息请参考: http://dev.mysql.com/doc/mysql/en/option-files.html
#
# 在本文件的各个小节中,你可以使用该程序支持的所有选项.
# 如果想要了解程序是否支持某个参数,
# 可以使用 "--help" 选项来启动该程序,查看帮助信息.
# 下面一小节的配置选项由本地的所有 MySQL 客户端读取,作为默认配置
[client]
#password = your_password
port = 3306
socket = /var/lib/mysql/mysql.sock
# 下面的各个小节,由各种应用程序来读取解析
# MySQL server 配置信息
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-external-locking
key_buffer_size = 384M
max_allowed_packet = 1M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
# 并发线程数,建议为CPU核心数乘以2: CPU's*2 for thread_concurrency
thread_concurrency = 8
# 可以指定一个专用磁盘的路径来作为临时目录,例如 SSD
#tmpdir = /tmp/
# 配置此参数则不启动 TCP/IP 端口 监听.
# 如果所有的处理程序都只在同一台机器上连接 mysqld, 这是一个很安全的做法,
# 所有同 mysqld 的交互只能通过Unix sockets 或命名管道(named pipes)完成.
# 注意,使用此选项而没有开启Windows上的命名管道(named pipes),
# (通过 "enable-named-pipe" 配置项) 将会导致 mysqld 不可用!
#skip-networking
# 主服务器配置选项 Replication Master Server (default)
# 在主从复制时,需要依赖二进制日志
log-bin=mysql-bin
# 在整个主从复制集群中要求是 1 到 2^32 - 1 之间的唯一ID, 否则或者失败,或者大量出错日志信息.
# 如果没有设置 master-host,则默认值是 1
# 但如果省略了,则(master)不生效
server-id = 1
# 从服务器配置选项 Replication Slave (需要将 master 部分注释掉,才能使用这部分)
#
# 要将服务器配置为从属服务器(replication slave),
# 有如下两种方案可供选择 :
#
# 1) 通过 CHANGE MASTER TO 命令 (在用户手册中有详细的描述) -
# 语法如下:
#
# CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>,
# MASTER_USER=<user>, MASTER_PASSWORD=<password> ;
#
# 你可以将 <host>, <user>, <password> 替换为单引号括起来的字符串,
# 将 <port> 替换为 master 的端口号 (默认是 3306).
#
# 一个示例如下所示:
#
# CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,
# MASTER_USER='joe', MASTER_PASSWORD='secret';
#
# 或者:
#
# 2) 设置下面的参数. 然而, 一旦你选择了这种方式,
# 首次启动主从复制时 (即便启动复制失败, 如错误的 master-password 密码,
# 导致 slave 连接不上等), slave 将会创建一个名为 master.info 的文件,
# 如果以后再修改本配置文件(xxx.cnf)中下面的这些参数, 则将被忽略,
# 并继续使用 master.info 文件的内容,
# 除非关闭 slave 服务器, 然后删除文件 master.info 并重新启动 slaver server.
# 出于这个原因, 你应该不系统修改下面的相关参数参数(带 <> 的注释部分),
# 而是使用 CHANGE MASTER TO (上面的方案1)
#
#
# 在整个主从复制集群中要求是 2 到 2^32 - 1 之间的唯一ID,
# 否则或者失败,或者大量出错日志信息.
# 如果设置了 master-host,则默认值是 2
# 但如果省略了,则不会成为 slave
#server-id = 2
#
# 此slave 需要连接的 master. - required
#master-host = <hostname>
#
# slave连接到 master 认证时需要的 username
# - 用户名是必须的(也可以在连接时指定)
#master-user = <username>
#
# slave连接到 master 认证时需要的 password
# - 密码是必须的(也可以在连接时指定)
#master-password = <password>
#
# master 监听的端口号
# 可选 - 默认是 3306
#master-port = <port>
#
# 开启二进制日志, 对于slave从服务器不是必须的,但推荐开启
#log-bin=mysql-bin
#
# 二进制日志格式 —— 推荐 mixed
#binlog_format=mixed
# 如果只使用 InnoDB 表, 请取消下列选项的注释
#innodb_data_home_dir = /var/lib/mysql
#innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend
#innodb_log_group_home_dir = /var/lib/mysql
# 如果只使用 InnoDB,可以设置 .._buffer_pool_size 为物理内存的 50 - 80 %
# 谨防内存使用设置得太高
#innodb_buffer_pool_size = 384M
# 附加缓存池大小
#innodb_additional_mem_pool_size = 20M
# 设置 .._log_file_size 为 buffer pool size 的 25 % 左右
#innodb_log_file_size = 100M
# 日志缓存的大小,不要设置太大,1秒钟刷新一次
#innodb_log_buffer_size = 8M
# 默认1,事务提交就刷新日志到硬盘;
# 设为2,刷新到操作系统缓存,但性能提高很多,设为 0 则可能丢事务.
#innodb_flush_log_at_trx_commit = 1
# 表死锁的超时释放时间,单位秒
#innodb_lock_wait_timeout = 50
[mysqldump]
# 快速导出到输出流/硬盘,不在内存中缓存
quick
# 最大数据包限制
max_allowed_packet = 16M
[mysql]
no-auto-rehash
# 如果对 SQL不熟悉,可以将下面的注释符去掉,拒绝无where的不安全操作.
#safe-updates
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout