当前位置: 首页 > 编程日记 > 正文

mysql主从库配置ps:mysql5.6

1 Mysql cluster版本主从服务器搭建实践

主从的作用:MySQL的主从服务器可以满足同步数据库,同步表,同步表内容,也可以指定仅同步某个数据库或某个表,还可以排除不同步某个数据库某个表。

同步原理:主从数据库同步主要是通过二进制日志来实现同步的。

mysql官网下载最新版本:dev.mysql.com

本文环境:

mysql服务器:10.1.68.110

安装版本:mysql-cluster-gpl-7.0.35-linux-x86_64-glibc23.tar.gz

mysql服务器:10.1.68.102

安装版本:mysql-cluster-gpl-7.0.35-linux-x86_64-glibc23.tar.gz

注意:最好是主从服务器采用相同版本,若不行,建议从服务器版本高于主服务器版本。

另外mysql-5.6.10版本的主从配置与mysql-cluster版本不同,主要是my.cnf配置文件不同,start slave命令也不同,要注意。

本文章两种版本的配置都有记录。

1.1 配置主mysql服务器

1.       安装主mysql步骤(参考tar包中的INSTALL-BINARY文件即可,很简单)

shell> groupadd mysql

shell> useradd -r -g mysql mysql

shell> tar zxf  mysql-cluster-gpl-7.2.9-linux2.6-x86_64.tar.gz

shell> mv mysql-cluster-gpl-7.2.9-linux2.6-x86_64 /opt/mysql-master

shell> cd /opt/mysql-master

shell> chown -R mysql.mysql *

shell> scripts/mysql_install_db --user=mysql

shell> chown -R root .

shell> chown -R mysql data

# Next command is optional

shell> cp support-files/my-medium.cnf /etc/my.cnf

shell> bin/mysqld_safe &

若启动失败,再次尝试一下执行scripts/mysql_install_db --user=mysql命令后在启动。

# Next command is optional,成功启动了mysqld之后才会生成下面的脚本文件

shell> cp support-files/mysql.server /etc/init.d/mysql.server

2.       配置主的my.cnf文件(基本上不需要任何配置,默认都有了)

# vi /etc/my.cnf

关键性的配置

log-bin=mysql-bin

server-id   = 1

binlog-do-db=icinga

binlog-do-db=DB2     如果备份多个数据库,重复设置这个选项即可

binlog-do-db=DB3  //需要同步的数据库,如果没有本行,即表示同步所有的数据库

binlog-ignore-db=mysql  //被忽略的数据库

保存退出

3.       唯一要做的就是创建允许从服务器访问的帐号backup

mysql> grant replication slave on *.* to 'backup'@'10.1.68.102' identified by'1234qwer';

Query OK, 0 rows affected (0.00 sec)

若有多台从服务器,就将ip修改一下执行多次就可以了。

4.       重启主机的mysql服务。

1.2 配置从mysql服务器

1.         安装主mysql步骤(参考tar包中的INSTALL-BINARY文件即可,很简单)

2.         配置从机的/etc/my.cnf文件

关键性的配置

log-bin=mysql-bin

server-id       = 2

master-host     =   10.1.68.110

master-user     =   backup

master-password =   1234qwer

master-port     =  3306

replicate-do-db=icinga

replicate-do-db=DB2

binlog-do-db=DB3  //需要同步的数据库,如果没有本行,即表示同步所有的数据库

binlog-ignore-db=mysql  //被忽略的数据库

保存退出

3.         重启从机的mysql服务,基本的从机配置完成。

4.         若从服务器的偏移量与主机不同,手动修改偏移量

1)先查看主机的状态信息

mysql> show master status;

2)登录从机按照主的Position修改从机的Position

mysql> slave stop;

mysql> change master to master_host='10.1.68.110',master_user='backup',master_password='1234qwer',master_log_file='mysql-bin.000011',master_log_pos=62291;

mysql> slave start;

1.3  验证同步

1.         icinga数据库中创建一个表并插入数据

mysql> create table abc(id int,name char(10));

Query OK, 0 rows affected (0.40 sec)

mysql> insert into abc values(1,'shenxiaoran');

Query OK, 1 row affected, 1 warning (0.01 sec)

mysql> select * from abc;

2.         查看从mysql服务器,表及内容是否都同步过来

mysql> show tables;

再查看表内容,数据也都同步了,如下图

至此,mysql数据库主从同步完成。

1.4 常用主从同步的命令

1.4.1 主服务器常用命令

1.       查看主机状态和Position信息,用来让slave机与master保持一致。

mysql> show master status;

1.4.2 从服务器常用命令

mysql> show slave status;

mysql> slave stop;

mysql> slave start;

mysql> show processlist;

2 Mysql-5.6.10版本主从数据库的搭建

部署环境:

OS: CentOS release 6.3 (Final)

mysql-master服务器:192.168.123.75

安装版本:mysql-5.6.10.tar.gz 源码包

mysql-slave服务器:192.168.123.105

安装版本:mysql-5.6.10.tar.gz 源码包

2.1 分别安装主从mysql-mastermysql-slave服务器

mysql5.6.10.tar.gz是截至2013410mysql官网的最新的源码包版本,该版本的安装方法与传统的mysql安装方法不同,安装前必须手动安装cmake

cmake官网下载:http://cmake.org/cmake/resources/software.html

./bootstrap

make

make install

接下来,安装mysql,我这里写了一个自动安装的shell脚本

2.2 配置主mysql-master服务器

Mysql-5.6.10版本的my.cnf文件默认什么参数都没有,需要自己配

# vi /etc/my.cnf

关键性的配置

log-bin = mysql-bin

# These are commonly set, remove the # and set as required.

basedir = /usr/local/mysql

datadir = /usr/local/mysql/data

port = 3306

server_id = 106 // 注意新版本用的是下划线

socket = /tmp/mysql.sock

bind-address = 0.0.0.0 //这里绑定监听0.0.0.0:3306,默认是:::3306

binlog-do-db = cacti  //如果备份多个数据库,重复添加即可,若没有表示备份所有数据库

binlog-do-db = db2

binlog-ignore-db = mysql  //被忽略的数据库,不做复制

保存退出

5.       唯一要做的就是创建允许从服务器访问的帐号mysync

mysql> grant replication slave on *.* to 'mysync'@'192.168.123.105' identified by '123456';

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

若有多台从服务器,就将ip修改一下执行多次就可以了。

6.       重启主机的mysql服务。

从机测试连接到主mysql

# bin/mysql -h 192.168.123.75 -u mysync -p123456

mysql>

测试成功连接。

2.3 配置从mysql-slave服务器

# vi /etc/my.cnf

log_bin = mysql-bin

server_id = 107

注意,下面的参数不能再使用了,否则导致mysql无法启动

master-host = 10.1.68.110

master-user = backup

master-password = 1234qwer

master-port = 3306

1.       登录主服务器的mysql,查询master的状态

mysql> show master status;

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

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

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

| mysql-bin.000002 |      120 | cacti        | mysql            |                   |

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

1 row in set (0.00 sec)

注:执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化

2.       登录从mysql服务器,配置binary log文件和Position(其实就是主的binary log文件的大小)与主一致。

mysql> change master to master_host='192.168.123.75',master_user='mysync',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=120;

Query OK, 0 rows affected, 2 warnings (0.02 sec)

mysql> start slave;

Query OK, 0 rows affected (0.01 sec)

3.       查看从mysql服务器的状态

mysql> show slave status;

重点是查看 Slave_IO_Running | Slave_SQL_Running

如果出现的结果是Yes              | Yes

说明mysql主从配置成功完成了。

2.4 测试主从服务器同步

1.  将备份后的数据库导入到主mysql服务器中,查看从mysql服务器是否会同步。

# bin/mysql < /root/cacti_sql_bak

2.  查看从mysql服务器的数据库是否有更新

mysql> show databases;

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

| Database           |

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

| information_schema |

| cacti              |

| mysql              |

| performance_schema |

| test               |

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

5 rows in set (0.01 sec)

从上面看到主mysql服务器的数据库还未全部导入完成,从mysql服务器已经开始同步了。

3  FAQ

3.1 show slave status命令的结果查看正常,却依然无法看到同步的数据库,原因在哪?

mysql> show slave status; 执行后部分结果如下

Slave_IO_State:Waiting for master to send event

Slave_IO_Running:Yes

Slave_SQL_Running:Yes

查看数据库却依然无法同步,原因在哪里?

解决办法:

1) 尝试重启master数据库;

2) 在重启slave数据库之前,必须先删除data目录下的master.info文件,因为master.info记录了上次要连接主库的信息,如果不删除,即使my.cnf里进行了修改,手动修改Position(偏移量)也还是同步不了,因为读取的还是偏移量出错时的master.info文件信息。

# rm -f data/master.info

# support-files/mysql.server start

Starting MySQL.           [  OK  ]

再次查看slave,同步终于成功了。

mysql> show processlist;

id|User          |Host|db      |Command  |Time      |state

1| system user |       | NULL   | Connect |1196 | Waiting for master to send event

2 | system user |    | NULL   | Connect |-55692 | Slave has read all relay log; waiting for the slave I/O thread to

3 | root   |localhost|icinga| Query|  0 |NULL | show processlist

3.2 show slave status命令的结果出现下面的异常情况,如何解决?

执行mysql> show slave status;命令,看到下面的显示结果

Slave_IO_Running:Connecting

Slave_SQL_Running:Yes 

看到上面的问题,说明是从服务器无法正常连接到主服务器导致。原因一般和下面几种情况有关:

l  Iptables防护墙阻止了3306端口

l  主mysql服务器的grant授权命令有误

l  主mysql服务器的监听端口不是0.0.0.0:3306,导致别的服务器无法连接到主mysql

解决办法:

首先,关闭了iptables;

然后,检查主mysql服务器的grant授权命令,正确无误,这一点排除。

其次,查看主mysql的监听端口,默认是:::3306,不知道是否因为这个问题导致

修改主服务器的my.cnf文件,添加下面语句

bind-address = 0.0.0.0

重启mysq.server服务

再次netstat –an|more 查看3306端口,出现了0.0.0.0:3306,说明修改成功。

登录到从mysql服务器上,远程连接

# bin/mysql -h 192.168.123.75 -umysync -p123456

Your MySQL connection id is 8

Server version: 5.6.10-log Source distribution

mysql>

连接成功。

最后重新执行主从操作:

主mysql服务器:mysql> show master status;

从mysql服务器:mysql> stop slave;

从mysql服务器:mysql> change master to……;

从mysql服务器:mysql> start slave;

从mysql服务器:mysql> show slave status;

Slave_IO_Running:Yes

Slave_SQL_Running:Yes 

再次测试主从同步,成功。

1 Mysql cluster版本主从服务器搭建实践

主从的作用:MySQL的主从服务器可以满足同步数据库,同步表,同步表内容,也可以指定仅同步某个数据库或某个表,还可以排除不同步某个数据库某个表。

同步原理:主从数据库同步主要是通过二进制日志来实现同步的。

mysql官网下载最新版本:dev.mysql.com

本文环境:

mysql服务器:10.1.68.110

安装版本:mysql-cluster-gpl-7.0.35-linux-x86_64-glibc23.tar.gz

mysql服务器:10.1.68.102

安装版本:mysql-cluster-gpl-7.0.35-linux-x86_64-glibc23.tar.gz

注意:最好是主从服务器采用相同版本,若不行,建议从服务器版本高于主服务器版本。

另外mysql-5.6.10版本的主从配置与mysql-cluster版本不同,主要是my.cnf配置文件不同,start slave命令也不同,要注意。

本文章两种版本的配置都有记录。

1.1 配置主mysql服务器

1.       安装主mysql步骤(参考tar包中的INSTALL-BINARY文件即可,很简单)

shell> groupadd mysql

shell> useradd -r -g mysql mysql

shell> tar zxf  mysql-cluster-gpl-7.2.9-linux2.6-x86_64.tar.gz

shell> mv mysql-cluster-gpl-7.2.9-linux2.6-x86_64 /opt/mysql-master

shell> cd /opt/mysql-master

shell> chown -R mysql.mysql *

shell> scripts/mysql_install_db --user=mysql

shell> chown -R root .

shell> chown -R mysql data

# Next command is optional

shell> cp support-files/my-medium.cnf /etc/my.cnf

shell> bin/mysqld_safe &

若启动失败,再次尝试一下执行scripts/mysql_install_db --user=mysql命令后在启动。

# Next command is optional,成功启动了mysqld之后才会生成下面的脚本文件

shell> cp support-files/mysql.server /etc/init.d/mysql.server

2.       配置主的my.cnf文件(基本上不需要任何配置,默认都有了)

# vi /etc/my.cnf

关键性的配置

log-bin=mysql-bin

server-id   = 1

binlog-do-db=icinga

binlog-do-db=DB2     如果备份多个数据库,重复设置这个选项即可

binlog-do-db=DB3  //需要同步的数据库,如果没有本行,即表示同步所有的数据库

binlog-ignore-db=mysql  //被忽略的数据库

保存退出

3.       唯一要做的就是创建允许从服务器访问的帐号backup

mysql> grant replication slave on *.* to 'backup'@'10.1.68.102' identified by'1234qwer';

Query OK, 0 rows affected (0.00 sec)

若有多台从服务器,就将ip修改一下执行多次就可以了。

4.       重启主机的mysql服务。

1.2 配置从mysql服务器

1.         安装主mysql步骤(参考tar包中的INSTALL-BINARY文件即可,很简单)

2.         配置从机的/etc/my.cnf文件

关键性的配置

log-bin=mysql-bin

server-id       = 2

master-host     =   10.1.68.110

master-user     =   backup

master-password =   1234qwer

master-port     =  3306

replicate-do-db=icinga

replicate-do-db=DB2

binlog-do-db=DB3  //需要同步的数据库,如果没有本行,即表示同步所有的数据库

binlog-ignore-db=mysql  //被忽略的数据库

保存退出

3.         重启从机的mysql服务,基本的从机配置完成。

4.         若从服务器的偏移量与主机不同,手动修改偏移量

1)先查看主机的状态信息

mysql> show master status;

2)登录从机按照主的Position修改从机的Position

mysql> slave stop;

mysql> change master to master_host='10.1.68.110',master_user='backup',master_password='1234qwer',master_log_file='mysql-bin.000011',master_log_pos=62291;

mysql> slave start;

1.3  验证同步

1.         icinga数据库中创建一个表并插入数据

mysql> create table abc(id int,name char(10));

Query OK, 0 rows affected (0.40 sec)

mysql> insert into abc values(1,'shenxiaoran');

Query OK, 1 row affected, 1 warning (0.01 sec)

mysql> select * from abc;

2.         查看从mysql服务器,表及内容是否都同步过来

mysql> show tables;

再查看表内容,数据也都同步了,如下图

至此,mysql数据库主从同步完成。

1.4 常用主从同步的命令

1.4.1 主服务器常用命令

1.       查看主机状态和Position信息,用来让slave机与master保持一致。

mysql> show master status;

1.4.2 从服务器常用命令

mysql> show slave status;

mysql> slave stop;

mysql> slave start;

mysql> show processlist;

2 Mysql-5.6.10版本主从数据库的搭建

部署环境:

OS: CentOS release 6.3 (Final)

mysql-master服务器:192.168.123.75

安装版本:mysql-5.6.10.tar.gz 源码包

mysql-slave服务器:192.168.123.105

安装版本:mysql-5.6.10.tar.gz 源码包

2.1 分别安装主从mysql-mastermysql-slave服务器

mysql5.6.10.tar.gz是截至2013410mysql官网的最新的源码包版本,该版本的安装方法与传统的mysql安装方法不同,安装前必须手动安装cmake

cmake官网下载:http://cmake.org/cmake/resources/software.html

./bootstrap

make

make install

接下来,安装mysql,我这里写了一个自动安装的shell脚本

2.2 配置主mysql-master服务器

Mysql-5.6.10版本的my.cnf文件默认什么参数都没有,需要自己配

# vi /etc/my.cnf

关键性的配置

log-bin = mysql-bin

# These are commonly set, remove the # and set as required.

basedir = /usr/local/mysql

datadir = /usr/local/mysql/data

port = 3306

server_id = 106 // 注意新版本用的是下划线

socket = /tmp/mysql.sock

bind-address = 0.0.0.0 //这里绑定监听0.0.0.0:3306,默认是:::3306

binlog-do-db = cacti  //如果备份多个数据库,重复添加即可,若没有表示备份所有数据库

binlog-do-db = db2

binlog-ignore-db = mysql  //被忽略的数据库,不做复制

保存退出

5.       唯一要做的就是创建允许从服务器访问的帐号mysync

mysql> grant replication slave on *.* to 'mysync'@'192.168.123.105' identified by '123456';

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

若有多台从服务器,就将ip修改一下执行多次就可以了。

6.       重启主机的mysql服务。

从机测试连接到主mysql

# bin/mysql -h 192.168.123.75 -u mysync -p123456

mysql>

测试成功连接。

2.3 配置从mysql-slave服务器

# vi /etc/my.cnf

log_bin = mysql-bin

server_id = 107

注意,下面的参数不能再使用了,否则导致mysql无法启动

master-host = 10.1.68.110

master-user = backup

master-password = 1234qwer

master-port = 3306

1.       登录主服务器的mysql,查询master的状态

mysql> show master status;

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

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

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

| mysql-bin.000002 |      120 | cacti        | mysql            |                   |

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

1 row in set (0.00 sec)

注:执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化

2.       登录从mysql服务器,配置binary log文件和Position(其实就是主的binary log文件的大小)与主一致。

mysql> change master to master_host='192.168.123.75',master_user='mysync',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=120;

Query OK, 0 rows affected, 2 warnings (0.02 sec)

mysql> start slave;

Query OK, 0 rows affected (0.01 sec)

3.       查看从mysql服务器的状态

mysql> show slave status;

重点是查看 Slave_IO_Running | Slave_SQL_Running

如果出现的结果是Yes              | Yes

说明mysql主从配置成功完成了。

2.4 测试主从服务器同步

1.  将备份后的数据库导入到主mysql服务器中,查看从mysql服务器是否会同步。

# bin/mysql < /root/cacti_sql_bak

2.  查看从mysql服务器的数据库是否有更新

mysql> show databases;

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

| Database           |

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

| information_schema |

| cacti              |

| mysql              |

| performance_schema |

| test               |

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

5 rows in set (0.01 sec)

从上面看到主mysql服务器的数据库还未全部导入完成,从mysql服务器已经开始同步了。

3  FAQ

3.1 show slave status命令的结果查看正常,却依然无法看到同步的数据库,原因在哪?

mysql> show slave status; 执行后部分结果如下

Slave_IO_State:Waiting for master to send event

Slave_IO_Running:Yes

Slave_SQL_Running:Yes

查看数据库却依然无法同步,原因在哪里?

解决办法:

1) 尝试重启master数据库;

2) 在重启slave数据库之前,必须先删除data目录下的master.info文件,因为master.info记录了上次要连接主库的信息,如果不删除,即使my.cnf里进行了修改,手动修改Position(偏移量)也还是同步不了,因为读取的还是偏移量出错时的master.info文件信息。

# rm -f data/master.info

# support-files/mysql.server start

Starting MySQL.           [  OK  ]

再次查看slave,同步终于成功了。

mysql> show processlist;

id|User          |Host|db      |Command  |Time      |state

1| system user |       | NULL   | Connect |1196 | Waiting for master to send event

2 | system user |    | NULL   | Connect |-55692 | Slave has read all relay log; waiting for the slave I/O thread to

3 | root   |localhost|icinga| Query|  0 |NULL | show processlist

3.2 show slave status命令的结果出现下面的异常情况,如何解决?

执行mysql> show slave status;命令,看到下面的显示结果

Slave_IO_Running:Connecting

Slave_SQL_Running:Yes 

看到上面的问题,说明是从服务器无法正常连接到主服务器导致。原因一般和下面几种情况有关:

l  Iptables防护墙阻止了3306端口

l  主mysql服务器的grant授权命令有误

l  主mysql服务器的监听端口不是0.0.0.0:3306,导致别的服务器无法连接到主mysql

解决办法:

首先,关闭了iptables;

然后,检查主mysql服务器的grant授权命令,正确无误,这一点排除。

其次,查看主mysql的监听端口,默认是:::3306,不知道是否因为这个问题导致

修改主服务器的my.cnf文件,添加下面语句

bind-address = 0.0.0.0

重启mysq.server服务

再次netstat –an|more 查看3306端口,出现了0.0.0.0:3306,说明修改成功。

登录到从mysql服务器上,远程连接

# bin/mysql -h 192.168.123.75 -umysync -p123456

Your MySQL connection id is 8

Server version: 5.6.10-log Source distribution

mysql>

连接成功。

最后重新执行主从操作:

主mysql服务器:mysql> show master status;

从mysql服务器:mysql> stop slave;

从mysql服务器:mysql> change master to……;

从mysql服务器:mysql> start slave;

从mysql服务器:mysql> show slave status;

Slave_IO_Running:Yes

Slave_SQL_Running:Yes 

再次测试主从同步,成功。

转载于:https://www.cnblogs.com/shininguang/p/5438035.html

相关文章:

XCODE 4.5 IOS多语言设置

转&#xff1a;http://blog.csdn.net/samuelltk/article/details/8480403 前些天升级到Xcode4.5&#xff0c;现在正在用Xcode4.5IOS6开发项目&#xff0c;当使用国际化时&#xff0c;遇到了一点问题&#xff0c;之前版本Xcode上新建Localizable.strings后&#xff0c;添加语言的…

socket第三方库 AsyncSocket(源码注释解读.转)

作者 OneTea 关注 2016.09.19 11:33* 字数 0 阅读 83评论 0喜欢 1#import <Foundation/Foundation.h> class AsyncSocket;//async异步的 synchro同步 class AsyncReadPacket; class AsyncWritePacket; //extern来说可以理解为扩展吧是这样的是从一个类扩展到另一个类中的…

【每日一学】复杂度分析

文章目录目标什么是数据结构复杂度分析目标 建立时间复杂度、空间复杂度意识&#xff0c;写出高质量的代码能够设计基础架构提高编程技能训练逻辑思维 什么是数据结构 广义&#xff1a;一组数据的存储结构 | 操作数据的一种方法 解决问题&#xff1a;如何更快更省的处理数据…

noip2010提高组3题题解 by rLq

本题地址http://www.luogu.org/problem/show?pid1525 关押罪犯 题目描述 S 城现有两座监狱&#xff0c;一共关押着N 名罪犯&#xff0c;编号分别为1~N。他们之间的关系自然也极不和谐。很多罪犯之间甚至积怨已久&#xff0c;如果客观条件具备则随时可能爆发冲突。我们用“怨气…

hdu 1306(字符串匹配)

题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1306 思路&#xff1a;一开始还以为是求最长公共序列呢。。。仔细一看&#xff0c;orz.....就是求两个串匹配时公共部分字符最多相同的个数。。。 View Code 1 #define _CRT_SECURE_NO_WARNINGS2 #include<…

iOS之使用CoreImage进行人脸识别

更新 &#xff1a;应各位朋友的需求&#xff0c;补上了OC版本的demo&#xff0c; OC版下载地址 另外附上 : swift版下载地址 CoreImage是Cocoa Touch中一个强大的API&#xff0c;也是iOS SDK中的关键部分&#xff0c;不过它经常被忽视。在本篇教程中&#xff0c;我会带大家一起…

[HTTP协议]入门篇

文章目录http的前世今生1. 史前时期2. 创世纪3. 从产生到发展HTTP是什么与HTTP相关的各种概念与HTTP相关的技术TCP/IP协议栈http的前世今生 1. 史前时期 20世纪60年代&#xff0c;美国国防部高等研究计划署ARPA建立ARPA网&#xff0c;四个分布在各地的节点20世纪70年代&#…

CSS中实现DIV容器垂直居中

1.vertical-align&#xff1a;middle 垂直对齐 如表格元素中的<td>、<th>、<caption>等&#xff0c;而像<DIV>、<span>这样的元素是没有valign特性的&#xff0c;因此使用vertical-align对它们不起作用。 2.text-align:center 文本水平居中 一、…

如何制作自己的CocoaPod库

作者 OneTea 关注 2016.12.29 18:02* 字数 848 阅读 102评论 0喜欢 6制作流程图&#xff1a; 流程图1.将代码托管在github上 1.1本地代码 如图&#xff1a; Snip20161228_7.png在github上创建 并上传 Snip20161228_3.png切换到本地项目cd xxx路径后 用git命令行 &#xff08;…

【HTTP协议】域名

1. 域名的出现 IP协议将物理网卡的MAC地址抽象转化为4位数字数字化的IP地址对人不友好&#xff0c;需要友好的域名便于人类识别标记 2. 域名的形式 域名是一个有层次的结构——一串用’.分隔的多个单词【主机名.二级域名.顶级域名】最左边是主机名【eg&#xff1a;www提供万…

iOS 多级下拉菜单

前言 App 常用控件 -- 多级下拉菜单, 如团购类, 房屋类, 对数据进行筛选. 有一级, 二级, 三级, 再多就不会以这种样式,呈现给用户了. 作者就简单聊一下 多级下拉菜单 二级下拉筛选菜单.png一 目标 默认显示一个 TableView, 点击数据后, 添加第二个TableView, 并实现大小变化第二…

fork有啥用

#include <stdio.h>#include <sys/types.h>#include <unistd.h>int main(){ pid_t pid1; pid_t pid2; pid1 fork(); pid2 fork(); printf("pid1:%d, pid2:%d\n", pid1, pid2);}输出&#xff1a;pid1:3411, pid2:3412 //父进…

Html Agility Pack基础类介绍及运用

Html Agility Pack 源码中的类大概有28个左右&#xff0c;其实不算一个很复杂的类库&#xff0c;但它的功能确不弱&#xff0c;为解析DOM已经提供了足够强大的功能支持&#xff0c;可以跟jQuery操作DOM媲美&#xff1a;&#xff09; 基础类和基础方法介绍 Html Agility Pack最常…

【Python自动化测试】setuptools

setuptools Python标准的打包分发工具使用简单的setup.py文件&#xff0c;将Python应用打包 最基础的setup.py文件 #!/usr/bin/env python3 # -*- coding: utf-8 -*- from setuptools import setup setup(nameMyDemo, # 应用名version1.0, # 版本号packages[myd…

企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)(原创)

前言&#xff1a;原理与思想这里选用GTID主从复制模式Mysql主从复制模式&#xff0c;是为了更加确保主从复制的正确性、健康性与易配性。这里做的是两服务器A,B各有Mysql实例3310&#xff0c;两个实例间互为主从主从复制模式采用GTID主从复制模式&#xff0c;在服务器A,B上配置…

Objective-C自动生成文档工具:appledoc

作者 iOS_小松哥 关注 2016.12.13 15:47* 字数 919 阅读 727评论 10喜欢 35由于最近琐事比较多&#xff0c;所以好久没有写文章了。今天我们聊一聊Objective-C自动生成文档。 做项目的人多了&#xff0c;就需要文档了。手工写文档是一件苦差事&#xff0c;但是我们也有从源码中…

void main()是错的!

很多人甚至市面上的一些书籍&#xff0c;都使用了void main( )&#xff0c;其实这是错误的。C/C中从来没有定义过void main( )。C之父Bjarne Stroustrup在他的主页上的FAQ中明确地写着The definition void main( ) { /* ... */ } is not and never has been C, nor has it even…

Some tips

VScode自动换行 Code -> Perference -> Setting [ “editor.wordWrap”: “on” ]

iOS 自定义转场动画初探

最近项目刚迭代&#xff0c;正好闲下来捣鼓了一下iOS的自定义转场的效果。闲话不多说&#xff0c;直接开始上代码吧。(ps&#xff1a;请忽略实际的转场效果&#xff0c;关注技术本身呢哦。pps&#xff1a;主要是转场的动画做的比较low啦&#xff01;) 1、首先定义一个转场动画的…

Delphi实现WebService带身份认证的数据传输

WebService使得不同开发工具开发出来的程序可以在网络连通的环境下相互通信,它最大的特点就是标准化(基于XML的一系列标准)带来的跨平台、跨开发工具的通用性,基于HTTP带来的畅通无阻的能力(跨越防火墙)。WebService给我们的软件开发带来了诸多好处,但是有一点还是必须要考虑到…

【Linux学习笔记】 - 什么是Linux?

Linux Linux内核 GNU工具 组成部分 Linux内核GUN工具图形化桌面环境应用软件 Linux内核 地位&#xff1a;Linux核心&#xff0c;控制计算机系统上的所有硬件和软件。必要时&#xff0c;分配硬件&#xff0c;并根据需要执行软件 主要功能&#xff1a; a. 系统内存存储 ——…

【转】 Android快速开发系列 10个常用工具类 -- 不错

原文网址&#xff1a;http://blog.csdn.net/lmj623565791/article/details/38965311 转载请标明出处&#xff1a;http://blog.csdn.net/lmj623565791/article/details/38965311&#xff0c;本文出自【张鸿洋的博客】 打开大家手上的项目&#xff0c;基本都会有一大批的辅助类&a…

CollectionView侧滑刷新

作者 SoDoIt 关注 2017.03.05 16:39 字数 33 阅读 31评论 0喜欢 2ABSideRefresh.gif效仿MJRefresh写的侧滑刷新&#xff0c;原理不讲了&#xff0c;需要的直接看代码 GitHub&#xff1a;https://github.com/wangjingyu0018/ABRefresh.git

函数功能MATLAB

近期一直在查找函数功能之类的题问,现在正好有机会和大家享共一下. 百科名片 录目 简介开展程历要主功能新特性版本分析特色优势开展简介开展程历要主功能新特性版本分析特色优势开展编辑本段 简介 matlab开辟任务面界 编辑本段 开展程历 编辑本段 要主功能 1.数值析分 2.数值和…

[HTTP协议]基础篇-待完结

文章目录输入网址后回车输入网址后回车 简单的浏览器HTTP请求过程&#xff1a; 浏览器从地址栏输入中获取服务器IP地址和端口号浏览器用TCP的三次握手与服务器建立连接浏览器向服务器发送拼好的报文服务器收到报文后处理请求&#xff0c;同样拼好报文再发给浏览器浏览器解析报…

IAR之工程配置

参考 : IAR的Workspace顶部下拉菜单中Debug和Release http://blog.csdn.net/yanpingsz/article/details/5588525 最近买了zigbee模块的开发板回来研究, 其中一个实验程序里面有三个版本, 分别是路由/终端/协调器, 忙活了半天不知道同一个project是如何配置成3个不同的版本的. …

CoreText入坑一

CoreText是Mac OS和iOS系统中处理文本的low-level API, 不管是使用OC还是swift, 实际我们使用CoreText都还是间接或直接使用C语言在写代码。CoreText是iOS和Mac OS中文本处理的根基, TextKit和WebKit都是构建于其上。 一. 基础 1.在使用CoreText编写代码之前, 需要先了解一些基…

mysql连接hang住问题分析

【问题现象】&#xff1a; 1. Linuxc多线程连接mysql数据库&#xff0c;每次都是短连接&#xff0c;操作完后就释放连接&#xff0c;有时候会出现mysql_real_connect挂住的现象 2. 挂住超时mysql_real_connect返回后报错如下&#xff1a;Lostconnection to MySQL s…

【Linux学习笔记】 -- 基本Shell命令

常见的目录名均基于文件系统层级标准(filesystem hierarchy standard&#xff0c;FHS) Linux的四个部分&#xff1a; 1 Linux内核&#xff1a;控制所有硬软件&#xff0c;必要时分配硬件根据需要执行软件 系统内存管理&#xff1a;可用物理内存 创建、管理虚拟内存[交换空间…

【OpenCV】图像代数运算:平均值去噪,减去背景

代数运算&#xff0c;就是对两幅图像的点之间进行加、减、乘、除的运算。四种运算相应的公式为&#xff1a; 代数运算中比较常用的是图像相加和相减。图像相加常用来求平均值去除addtive噪声或者实现二次曝光&#xff08;double-exposure&#xff09;。图像相减用于减去背景或周…