当前位置:Gxlcms > 数据库问题 > 二进制安装mysql数据库并配置主从同步

二进制安装mysql数据库并配置主从同步

时间:2021-07-01 10:21:17 帮助过:33人阅读

mysql安装版本及下载地址:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
检查系统中的Mysql和mariadb,如果存在将其卸载

  1. <code>#rpm -qa | grep mysql
  2. #rpm -qa | grep mariadb
  3. #mariadb-libs-5.5.65-1.el7.x86_64
  4. #yum -y remove mariadb-libs-5.5.65-1.el7.x86_64</code>

创建mysql用户组和mysql用户

  1. <code># groupadd mysql
  2. #useradd -g mysql -s /sbin/nologin mysql</code>

解压安装包

  1. <code>#tar -zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
  2. # cd /usr/local/
  3. # mv mysql-5.7.26-linux-glibc2.12-x86_64 mysql</code>

设置mysql环境变量

  1. <code># echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
  2. # source /etc/profile</code>

配置mysql

  1. <code>#mkdir -pv /data/mysql
  2. #chown mysql.mysql /data/mysql
  3. # chmod go-rwx /data/mysql</code>

初始化数据库并注意日志里面输出的默认密码
#mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql

配置启动脚本

  1. <code># cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
  2. # chkconfig --add mysqld
  3. # chkconfig mysqld on
  4. # chkconfig --list |grep mysqld</code>

编辑mysql配置文件/etc/my.cnf

  1. <code>[client]
  2. port = 3306
  3. socket = /tmp/mysql.sock
  4. [mysqld]
  5. port = 3306
  6. socket = /tmp/mysql.sock
  7. pid_file = /data/mysql/mysql.pid
  8. datadir = /data/mysql
  9. default_storage_engine = InnoDB
  10. max_allowed_packet = 512M
  11. max_connections = 2048
  12. open_files_limit = 65535
  13. skip-name-resolve
  14. lower_case_table_names=1
  15. character-set-server = utf8mb4
  16. collation-server = utf8mb4_unicode_ci
  17. init_connect=‘SET NAMES utf8mb4‘
  18. innodb_buffer_pool_size = 512M
  19. innodb_log_file_size = 1024M
  20. innodb_file_per_table = 1
  21. innodb_flush_log_at_trx_commit = 0
  22. key_buffer_size = 64M
  23. log-error = /data/mysql/mysql_error.log
  24. log-bin = /data/mysql/mysql-bin
  25. binlog_format = mixed
  26. expire_logs_days = 10
  27. slow_query_log = 1
  28. slow_query_log_file = /data/mysql/slow_query.log
  29. long_query_time = 1
  30. server-id=1</code>

启动mysql

  1. <code>vi /etc/init.d/mysqld
  2. basedir=/usr/local/mysql //在第46行
  3. datadir=/data/mysql
  4. # /etc/init.d/mysqld start
  5. Starting MySQL.Logging to ‘/data/mysql/localhost.localdomain.err‘.
  6. SUCCESS! </code>

常见错误排除:
若出现无法登陆数据库可以在/etc/my.cnf最后一行加入skip-grant-tables,重启mysql后直接mysql登陆数据库,

  1. <code>mysql> use mysql;
  2. mysql> update?MySQL.user set authentication_string=password(‘root‘) where user=‘root‘ ;
  3. mysql> flush privileges;</code>

更新数据库密码后删除掉my.cnf最后一行的skip-grant-tables,重启数据库验证新密码是否有效

两台数据库同样方式进行安装,安装完成开始进行主从同步的配置
master:192.168.100.10
slave:192.168.100.20

注意:从数据库服务器上一定要有主数据库服务器上的库、表且表结构要一致。

配置master数据库服务器

  1. <code>#ls -lrt /data/mysql
  2. total 2121876
  3. -rw-r----- 1 mysql mysql 56 May 23 16:06 auto.cnf
  4. drwxr-x--- 2 mysql mysql 8192 May 23 16:06 performance_schema
  5. drwxr-x--- 2 mysql mysql 4096 May 23 16:06 mysql
  6. drwxr-x--- 2 mysql mysql 8192 May 23 16:06 sys
  7. -rw-r----- 1 mysql mysql 29924 May 23 16:40 localhost.localdomain.err
  8. -rw-r----- 1 mysql mysql 1073741824 May 23 16:41 ib_logfile1
  9. -rw-r----- 1 mysql mysql 329 May 23 16:43 mysql-bin.000001
  10. -rw-r----- 1 mysql mysql 718 May 23 16:46 mysql-bin.000002
  11. -rw-r----- 1 mysql mysql 872 May 23 17:25 mysql-bin.000003
  12. -rw-r----- 1 mysql mysql 177 May 23 17:43 mysql-bin.000004
  13. drwxr-x--- 2 mysql mysql 52 May 23 17:54 zs
  14. -rw-r----- 1 mysql mysql 666 May 23 18:00 mysql-bin.000005
  15. -rw-r----- 1 mysql mysql 300 May 23 18:00 ib_buffer_pool
  16. -rw-r----- 1 mysql mysql 1104 May 23 18:00 slow_query.log
  17. -rw-r----- 1 mysql mysql 174 May 23 18:00 mysql-bin.index
  18. -rw-r----- 1 mysql mysql 5 May 23 18:00 localhost.localdomain.pid
  19. -rw-r----- 1 mysql mysql 12582912 May 23 18:00 ibtmp1
  20. -rw-r----- 1 mysql mysql 41881 May 23 18:05 mysql_error.log
  21. -rw-r----- 1 mysql mysql 726 May 23 19:14 mysql-bin.000006
  22. -rw-r----- 1 mysql mysql 12582912 May 23 19:15 ibdata1
  23. -rw-r----- 1 mysql mysql 1073741824 May 23 19:15 ib_logfile0
  24. #vi /etc/my.cnf
  25. #log-bin=mysql-bin.000006
  26. server_id=1 #主库为1 从库为2</code>

修改过my.cnf后重启数据库
登陆数据库执行下面的操作:
mysql> grant all privileges on . to ‘test‘@‘%‘ identified by ‘test‘ with grant option;

配置slave数据库服务器

  1. <code>#vim /etc/my.cnf
  2. server_id=2
  3. log-bin=slavelog #可开可不开</code>

重启数据库
管理员登陆

  1. <code>mysql> change master to
  2. -> master_host="192.168.100.10",
  3. -> master_user="test",
  4. -> master_password="test",
  5. -> master_log_file="mysql-bin.000006", 主查询show master start;
  6. -> master_log_pos=0;
  7. mysql> show slave status\G;
  8. Slave_IO_Running: Yes
  9. Slave_SQL_Running: Yes #两个进程状态为yes
  10. mysql>show slave status;</code>
  1. <code>
  2. 工作原理
  3. slave_io_running:yes
  4. 连接主数据库服务器,并把主数据库服务器binlog日志里sql语句拷贝本机的relybinlog日志里。
  5. slave_sql_running:yes
  6. 执行本机relybinlog日志里的sql语句,把数据写到数据库里
  7. 四、测试主从同步
  8. 在主服务器上建库建表删除数据,从服务器会跟着同步;
  9. /var/lib/msyql/
  10. master.info 记录连接主数据库服务器的信息
  11. relay-log.info 记录中继binlog日志信息
  12. localhost-relay-bin.000001
  13. localhost-relay-bin.000002 中继binlog日志
  14. localhost-relay-bin.index 保存已有中继binlog日志文件名
  15. 常用的其他选项
  16. 适用于master服务器
  17. binlog-do-db=name 设置master对哪些库记日志
  18. binlog-ignore-db=name 设置master对哪些库不记日志
  19. log-slave-updates 记录从库更新,允许链式复制(A-B-C)
  20. relay-log=dbsvr2-relay-bin 指定中继日志文件名
  21. replicate-do-db=mysql 仅复制指定库,其他库将被忽略,此选项可设置多条(省略时复制所有库)
  22. replicate-ignore-db=test 不复制哪些库,其他库将被忽略,ignore-db与go-db只需选用其中一种
  23. report-host=dbsvr2 报告给master的主机名或ip地址
  24. slave-net-timeout=60 出现网络中断时,重试超时(默认60秒)</code>

二进制安装mysql数据库并配置主从同步

标签:efault   user   with   report   服务   常见错误   数据库服务器   engine   word   

人气教程排行