basedir=/iddbs/mysql-5.7.16

datadir=/iddbs/mysql5.7/data3306

一、自定义Mysql.5.7版本免编译安装:

1、Db-server1安装前期准备

前期准备先确认是否已经安装了Mysql,如果有rpm安装会影响面编译安装:

具体方法如下:

确保是否有已经rpm安装了Mysql:

[root@bogon tool]#rpm -qa | grep mysql

mysql-community-libs-5.7.16-1.el6.x86_64

mysql-community-server-5.7.16-1.el6.x86_64

mysql-community-common-5.7.16-1.el6.x86_64

mysql-community-client-5.7.16-1.el6.x86_64

如果有rpm包删除:

例如:

rpm -e mysql-community-libs-5.7.16-1.el6.x86_64 mysql-community-server-5.7.16-1.el6.x86_64 mysql-community-client-5.7.16-1.el6.x86_64 mysql-community-common-5.7.16-1.el6.x86_64 --nodeps

2、创建软件安装目录:

[root@bogon tool]# mkdir -p /iddbs/

将面编译安装软件包下载或者拷贝至/iddbs/下

[root@bogon iddbs]# ls

mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz

[root@bogon iddbs]# tar -zxf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz

[root@bogon iddbs]# ls

mysql-5.7.16-linux-glibc2.5-x86_64   mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz

将减压目录命名为:

[root@bogon iddbs]# mv mysql-5.7.16-linux-glibc2.5-x86_64 /iddbs/mysql-5.7.16

创建用户:

[root@bogon iddbs]# useradd -s /sbin/nologin -M iddbs

授权给iddbs用户:

[root@bogon iddbs]# chown -R iddbs.iddbs /iddbs/

3、做软链接可以不做如果做了软链接 basedir=/iddbs/mysql以下所有的相关联的basedir必须是basedir=/iddbs/mysql

[root@bogon iddbs]# cd /iddbs/

[root@bogon iddbs]# ls

mysql-5.7.16   mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz

[root@bogon iddbs]# ln -s mysql-5.7.16 / /iddbs/mysql

4、创建数据文件:

[root@bogon iddbs# mkdir -p /iddbs/mysql5.7/data3306

5、初始化数据库:

[root@bogon bin]# pwd

/iddbs/mysql-5.7.16/bin

[root@bogon bin]#

执行命令mysql_install_db --basedir=/iddbs/mysql-5.7.16 --datadir=/iddbs/mysql5.7/data3306 --user=iddbs

初始化错误:

2017-06-10 01:31:22 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize

2017-06-10 01:31:22 [ERROR]   The data directory '/iddbs/mysql5.7/data3306' already exist and is not empty.

需使用以下命令:

mysqld --initialize --user=iddbs --basedir=/iddbs/mysql-5.7.16 --datadir=/iddbsdata/mysql5.7/data3306

在执行安装时必须确保数据目录下为空及(/iddbsdata/mysql5.7/data3306下不含任何文件)否则报错

6、启动数据库常见错误及处理方法:

[root@bogon mysql]# cp support-files/mysql.server /etc/init.d/mysqld   #将启动文件拷贝至/etc/init.d目录下以可以使用init.d启动

cp: overwrite `/etc/init.d/mysqld'? y

[root@bogon mysql]# cp support-files/my-default.cnf /etc/my.cnf  #将配置文件拷贝到/etc下且名字为my.cnf

[root@bogon mysql]# cat /etc/my.cnf

# sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[client]

port=3306

user=iddbs

password ='newpassword'

socket=/iddbs/mysql5.7/data3306/mysql.sock

[mysqld]

max_connections=1000

max_user_connections=500

wait_timeout=200

user=iddbs

server-id=5

port=3306

basedir=/iddbs/mysql5.7

datadir=/iddbs/mysql5.7/data3306

socket=/iddbs/mysql5.7/data3306/mysql.sock

pid-file=/iddbs/mysql5.7/data3306/mysql.pid

log-bin=/iddbs/mysql5.7/data3306/mysql-bin

relay-log=/iddbs/mysql5.7/data3306/relay-bin

log-error=/iddbs/mysql5.7/data3306/mysql-error.log

interactive_timeout=172800

wait_timeout=172800

max_allowed_packet=16M

expire_logs_days=7

auto-increment-increment=2

auto-increment-offset=1

character-set-server=utf8

collation_server=utf8_general_ci

innodb_data_file_path=ibdata1:1G:autoextend

innodb-buffer-pool-size=15G

binlog_format=row

relay_log_recovery=1

log_bin_trust_function_creators=1

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

lower_case_table_names = 1

character_set_server = utf8

event_scheduler = on

[mysqldump]

quick

max_allowed_packet = 16M

[mysql]

no-auto-rehash

# Remove the next comment character if you are not familiar with SQL

#safe-updates

default-character-set = utf8

[myisamchk]

key_buffer_size = 512M

sort_buffer_size = 512M

read_buffer = 8M

write_buffer = 8M

启动报错:

[root@bogon mysql]# /etc/init.d/mysqld start

/etc/init.d/mysqld: line 276: cd: /usr/local/mysql: No such file or directory

Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe)

解决方法修改mysql启动文件文件目录路径:

[root@bogon mysql]# vim /etc/init.d/mysqld

if test -z "$basedir"

then

basedir=/iddbs/mysql-5.7.16

bindir=/iddbs/mysql-5.7.16/bin

if test -z "$datadir"

then

datadir=/iddbs/mysql5.7/data3306

fi

sbindir=/iddbs/mysql-5.7.16/bin

libexecdir=/iddbs/mysql-5.7.16/bin

else

bindir="$basedir/bin"

报错退出再次启动:

[root@bogon mysql]# /etc/init.d/mysqld start

启动报错:

Starting MySQL ERROR! Couldn't find MySQL server (/iddbs/mysql5.7/bin/mysqld_safe)

为什么会出现上述情况,由于/etc/init.d/mysqld 启动时指定了/iddbs/mysql5.7/data3306数据文件,但在/iddbs/mysql5.7/下是不含bin的;真正的bin文件在/iddbs/mysql-5.7.16/bin下,因此可做软链接:

ln -s /iddbs/mysql-5.7.16/bin  /iddbs/mysql5.7/bin

再次启动:

[root@bogon mysql]# /etc/init.d/mysqld start

Starting MySQL.... SUCCESS!

启动服务/etc/init.d/mysqld 可使用参数

[root@bogon data3306]# /etc/init.d/mysqld

Usage: mysqld  {start|stop|restart|reload|force-reload|status}

含启动、停止、重启、强制重启、状态

7、查看进程:

[root@bogon mysql]# lsof -i:3306

COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

mysqld  4098 mysql   10u  IPv4  32707      0t0  TCP *:mysql (LISTEN)

[root@bogon support-files]# ps -ef | grep mysql| grep -v grep

root      1978     1  0 Jun09 pts/1    00:00:00 /bin/sh /iddbs/mysql5.7/bin/mysqld_safe --datadir=/iddbs/mysql5.7/data3306 --pid-file=/iddbs/mysql5.7/data3306/mysql.pid

iddbs     2445  1978  0 Jun09 pts/1    00:00:27 /usr/local/mysql/bin/mysqld --basedir=/iddbs/mysql5.7 --datadir=/iddbs/mysql5.7/data3306 --plugin-dir=/usr/local/mysql/lib/plugin --user=iddbs --log-error=/iddbs/mysql5.7/data3306/mysql-error.log --pid-file=/iddbs/mysql5.7/data3306/mysql.pid --socket=/iddbs/mysql5.7/data3306/mysql.sock --port=3306

至此mysql5.7安装完成;

二、登录mysql:

[root@bogon bin]# mysql -uroot -p

Enter password:

提示需要输入密码;Mysql5.7登录密码隐藏在错误日志内:

[root@bogon bin]# cd /iddbs/mysql5.7//data3306/

[root@bogon data3306]# ls

auto.cnf        ib_logfile0  mysql             mysql-bin.000003  mysql-bin.index  mysql.pid        performance_schema

ib_buffer_pool  ib_logfile1  mysql-bin.000001  mysql-bin.000004  mysqld_safe.pid  mysql.sock       sys

ibdata1         ibtmp1       mysql-bin.000002  mysql-bin.000005  mysql-error.log  mysql.sock.lock

[root@bogon data3306]# grep password mysql-error.log

2017-06-09T13:18:12.551595Z 1 [Note] A temporary password is generated for root@localhost: &DFbeiVDs3ja   #此为此次安装密码自动生成,每次安装不一样

[root@bogon data3306]# mysql -uroot -p’&DFbeiVDs3ja ’

登录以后发现不能进行任何操作:

mysql>

解决方法:

mysql> set  password=password(‘newpassword’);

mysql> flush privileges;

创建iddbs用户及登录:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'iddbs'@'localhost' identified by 'newpassword';

mysql> flush privileges;

mysql> quit

使用iddbs用户登录:

[root@bogon data3306]# mysql -uiddbs -p’newpassword ’

注意可能有报错:

mysql: [Warning] Using a password on the command line interface can be insecure.

ERROR 1045 (28000): Unknown error 1045

因为5.7基于安全考虑在命令行输入密码是不安全的所有禁止登录;可使用

[root@bogon data3306]# mysql -uiddbs -p

Enter password: password

mysql>

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| sys                |

+--------------------+

4 rows in set (0.11 sec)

三、db-server2安装

重复db-server1安装过程

四、Mysql主从同步

Mysql部署模式有:一主一从主从同步、一主多从、双主互为主从、双主多从、多主多从环状级联

此次部署采用双主互为主从模式:

主从复制:

a) 主从复制原理:

主从复制是由于master端binlog记录了所有操作。利用binlog实现同步

Mysql主从复制是一个异步的复制过程(但在一般情况下感觉是实施同步的),数据库数据从一个Mysql数据库(主库master)复制到另一个Mysql数据库(从库slave)。在master与slave之间实现整个主从复制的过程是由三个线程参与完成的。其中两个线程(SQL线程和IO线程)在slave端,另外一个线程(IO线程)在master端。

要是先Mysql的主从复制,首先必须打开master端的binlog(mysql-bin.XXXXXX)功能。否则无法实现主从复制。因为整个复制过程实际上就是slave从master端获取binlog日志,然后在slave自身上以相同的顺序执行获取的binlog日志中所记录的各种操作。

b) 主从复制的应用:

主从服务器互为备份,主从设置可以加强数据架构的健壮性,当主出问题时,可以人工或者自动切换到从服务器上继续提供服务。

主从服务器可实现读写分离分担网站压力。

c) 主从复制具体操作:

主库(master)配置文件my.cnf开启log-bin

server-id       = 1

# Uncomment the following if you want to log updates

log-bin=/application/mysql/mysql-bin

可以在数据库中查看:

mysql> show variables like 'log%';  #查看主库的binlog开关是否生效(ON状态)

+---------------------------------+---------------------------------------------+

| Variable_name     | Value                                       |

+---------------------------------+---------------------------------------------+

| log               | OFF                                        |

| log_bin           | ON                                         |

建立主从数据账号

mysql> grant replication slave on *.* to 'rep'@'172.22.2.%' identified by 'xuxuedong';     replication slave为同步权限。

Query OK, 0 rows affected (0.00 sec)

主库授权账号解决从库连接主库的问题。

锁表数据保证同步数据一致性,

mysql> flush tables with read lock;

Query OK, 0 rows affected (0.00 sec)

查看binlog节点位置。

mysql> show master status;

+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000001 |      259 |              |                  |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

从库获取主库节点信息:

如果是主从单复制,从库可以不开启binlog

有两种情况从库必须打开binlog:

1)级联同步:A->B->C那么B必须开启binlog

2)从库做数据备份,数据库备份必须要有全备和binlog日志

[root@CentOS ~]# mysqldump -uroot -pxuxuedong -B -A --events -S /data/3306/mysql.sock  > /opt/new.mysql

[root@CentOS ~]# ls /opt/

new.mysql  rh

解锁主库:

mysql> unlock tables ;

Query OK, 0 rows affected (0.00 sec)

数据导入从库

[root@CentOS ~]# mysql -uroot -pxuxuedong   -S /data/3306/mysql.sock  < /opt/new.mysql

[root@CentOS 3306]# cat | mysql -uroot -pxuxuedong -S /data/3306/mysql.sock <

CHANGE MASTER TO

MASTER_HOST='172.22.2.237',

MASTER_PORT=3306,

MASTER_USER='rep',

MASTER_PASSWORD='xuxuedong',

MASTER_LOG_FILE='mysql-bin.000001',

MASTER_LOG_POS=259;

EOF

[root@CentOS 3306]# ls /data/3306/data/master.info

/data/3306/data/master.info

上述操作实际是将用户密码等信息写入从库的master.info中。

从库开始同步:

mysql> slave start;

Query OK, 0 rows affected (0.00 sec)

mysql> show slave status\G  #查看同步。

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 172.22.2.223

Master_User: rep

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000001

Read_Master_Log_Pos: 370

Relay_Log_File: mysql-relay-bin.000002

Relay_Log_Pos: 363

Relay_Master_Log_File: mysql-bin.000001

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB:

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: 370

Relay_Log_Space: 519

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:

Replicate_Ignore_Server_Ids:

Master_Server_Id: 1

1 row in set (0.00 sec)

完成以上主从同步已经实现。

总结主从复制的步骤:

1、需要两台数据库。

2、配置my.cnf文件,主库配置log-bin和server-id参数,从库配置server-id且不能和主库以及其他从库一样;从库一般不开启log-bin功能。配置后重启服务生效。

3、登录主库增加用于连接主库同步的账号:如rep并授权replication slave同步权限。

4、登录主库,证库锁表“flush tables with read lock;”(窗口不能关闭,窗口关闭及失效。)然后show  master status查看binlog的位置状态。

5、新开窗口,备份或导出原有的数据库,并拷贝到从库所在的服务器目录。如果数据量很大,并且允许停机,可停机打包,而不用mysqldump.

6、J解锁主库:unlock tables;

7、把主库导出的原有的数据恢复到从库。

8、根据主库的show master status 查看binlog的位置状态,在从库执行change master语句。

9、从库开启同步开关,start slave。

10、从库show slave status \G;查看同步状态,并在主库进行更行测试。

d) 忽略权限库同步:

1、主库下忽略mysql库及information-schema库的主从同步。及上文提及的不想同步的数据库在主库添加:

binlog-ignore-db=mysql

binlog-ignore-db=information-schema

2、从库下可以忽略mysql同步:及replicate-ignore-db=mysql从库主库必须同时使用

mysql5.7+主从不一致_Mysql5.7安装错误处理与主从同步及!相关推荐

  1. Mysql5.7安装错误处理与主从同步及!

    Mysql5.7安装错误处理与主从同步及! basedir=/iddbs/mysql-5.7.16 datadir=/iddbs/mysql5.7/data3306 一.自定义Mysql.5.7版本免 ...

  2. mysql5.5删除干净_MySql5.5 安装及卸载

    忙乎一个下午.郁闷之极,在放弃之前搞定,记录. 环境:win7 1.安装mysql之前,最好在网上找一下安装教程,然后再装. 我没有这么办,所以第一次装完后,卸载,由于没有卸干净,所以又重新装N次,不 ...

  3. 查看mysql5.7默认密码_mysql-5.7安装部署+MySQL5.7初始密码查看及重置

    mysql-5.7安装部署+MySQL5.7初始密码查看及重置 系统环境 Centos 7.6 首先下载mysql安装包: wget https://dev.mysql.com/get/Downloa ...

  4. mysql5.7 百度云_mysql5.7 安装版本配置教程+百度云资源分享

    1.先下载好 mysql5.7 版本的安装包,可以去官网自己下载,也可以从我的百度云分享里面下载. 2.下载后双击安装包开始 mysql5.7 版本的安装之旅. 3.选择接受许可条款"I a ...

  5. linux mysql 主从数据库_Linux下安装MySQL及MySQL主从同步配置

    从零开始说起,先说在Linux安装MySQL再说主从配置,MySQL的版本为5.7 一.mysql安装 1.使用命令 rpm -qa|grep mariadb 查看是否存在mariadb 2. 使用 ...

  6. mysql5.7.14操作命令_Mysql5.7.14安装配置方法操作图文教程(密码问题解决办法)

    本篇文章主要涉及mysql5.7.14用以往的安装方法安装存在的密码登录不上,密码失效等问题的解决办法,希望可以帮到有同样困扰的朋友. 具体过程如下: 一.软件下载: 2.将下载的文件进行减压,作者的 ...

  7. centos 源码安装mysql5.6_CentOS 7下源码安装MySQL 5.6

    目录 准备工作 运行环境 确认你的安装版本 下载MySQL 安装MySQL 准备安装环境 编译和安装 配置MySQL 单实例配置 单实例配置方法 添加防火墙 启动MySQL 重启MySQL 多实例配置 ...

  8. MySQL主从不一致问题处理

    一.背景     某业务采取mysql的主从架构,但因为存储的问题,导致备库一直无法存储,数据同步一致性问题一直也未恢复,某次安全检查要求完成主备倒换演练,必须限期恢复主备,但是在恢复过程中,同步显示 ...

  9. nux下mysql的安装,配置,主从配置,卸载

    linux下mysql的安装,配置,主从配置,卸载 一.安装与配置 1.下载 2.解压 3.添加用户组和用户 4.安装 安装 修改启动脚本 修改项: 启动服务 测试连接 加入环境变量,编辑 /etc/ ...

最新文章

  1. 关于使用eclipse maven UpdateProject时报错,无法更新本地仓库的问题解决方案
  2. 非标自动化企业前十名_非标设备的现状
  3. python123 ios_Python的iOS自动化打包实例代码
  4. Docker - Compose 使用说明、详解docker-compose
  5. 喜庆传统中国红色纹理背景,吉庆节日必备!
  6. 使用Python写入docx文件并控制字体颜色
  7. Windows 命令行改主机名、加域、退域、更改IP
  8. coco 数据集_如何用 coco 数据集训练 Detectron2 模型?
  9. python 原理 pdf_《深入浅出深度学习:原理剖析与Python实践》.pdf
  10. openfire 详细介绍一
  11. 抽奖系统概率设计_《微博抽奖玄学理论·养号攻略XI》
  12. 旧版sai笔刷_最详细的SAI笔刷设置教程,非常全面详细!
  13. Python游戏概率保底算法PRD的实现
  14. 如何将Caj转Word,免费CAJ转换的方法
  15. 从身边的移动支付说起
  16. Overture教程之如何更改整首谱子的调号
  17. java宠物狗商店交流网站ssm框架
  18. 详细了解java中的null_深入理解java中的null“类型”
  19. 【USB笔记】USB2.0 不同传输类型下的理论最大速率
  20. Java代码规范检查插件调研及总结

热门文章

  1. MySQL主从复制Linux实现
  2. MySQL创建视图的语法格式
  3. 【KVM系列01】KVM简介及安装
  4. JSON与XML的区别比较(非常全面)
  5. visio 科学图形包_R可视乎|混合多个图形
  6. LeetCode 01两数之和02两数相加
  7. linux 查找某个库文件属于哪个rpm包
  8. 高性能dhcp服务器,基于线程池机制的高性能DHCP服务器研究与实现
  9. 李兴球python创意编程视频云盘_A36_Python滚动的字幕_教学视频
  10. html给文字加黑色边框,如何给显示文字加一层黑色边框