- 浏览: 304413 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (279)
- java技术 (45)
- 存储技术 (6)
- 数据库技术 (29)
- 系统架构 (6)
- 项目管理 (0)
- 生活随想 (3)
- 性能优化 (22)
- OpenStack (0)
- 缓存技术 (3)
- 云计算 (1)
- linux (22)
- 网络通信 (12)
- 辅助开发 (1)
- web服务器和应用服务器 (6)
- 学习感悟 (2)
- 大数据技术(hadoop) (6)
- 高性能分布式系统 算法 (1)
- zookeeper (0)
- 算法 (4)
- dubbo (1)
- java技术 jvm (5)
- 系统设计 (1)
- 缓存失效算法比较 (1)
- javascript (1)
- maven (3)
- 设计模式 (13)
- spring以及常用框架 (5)
- SOA框架 (5)
- 监控系统 (1)
最新评论
-
kongdong88:
Netty简单应用与线上服 ...
用Netty实现的一个简单的HTTP服务器 -
phili1999:
兄弟,此乃Eclipse的bug,至今未解决,可见国人地位低啊 ...
eclipse的控制台在UTF-8编码下键盘输入BUG问题,请问有谁能解决 -
xiaguobing:
谢谢分享啊
MetaQ初探 -
ih0qtq:
...
java性能编码规范整理
最近因项目要求,在linux服务器上设置mysql的数据同步,幸好网络资源多啊,google一下全有了,不过实际操作起来,就麻烦了,遇到很多问题,不过多google一下也解决了,
同时学习了很多相关方面的知识,现将总结于此,以备后用,希望对有此需要的JE们有所帮助;
一、准备环境
自己做练习硬件资源少,只能在虚拟器上操作了哈哈!
linux 版本:Red Hat Enterprise Linux Server release 5.1
mysql 版本:MySQL-server-community-5.0.67-0.rhel5.i386.rpm
MySQL-client-community-5.0.67-0.rhel5.i386.rpm
(PS:mysql的同步机制是基于二进制日志binlog,不同的mysql版本会导致其格式的不同,从而导致不能实现数据同步,因此最好的搭配组合是Master的MySQL版本和Slave的
版本相同或者Slave的版本高于Master的版本,因为mysql是向下兼容的,为此Master的版本不能高于Slave版本,否则有可能不能实现功能;如果要实现双向同步,最好mysql是同
一版本)
虚拟机版本:VMware6.0
在虚拟机上安装两个linux系统,并分别安装上mysql(mysql安装在俺博客的mysql安装有详细说明)
mysql默认安装的文件分别为:
/var/lib/mysql/ (数据库目录,其所创建的数据库文件都在该目录下)
/usr/share/mysql (mysql相关配置文件)
/usr/bin (mysql相关命令,如mysql mysqladmin等)
为了区分系统,给系统命名一下,便于后面的说名:
LinuxA 系统: Ip:192.168.59.123 (Master)
LinuxB 系统: Ip:192.168.59.124 (Slave)
关闭LinuxA 和 LinuxB 的防火墙 #service iptables stop (保证系统互相可以ping的通)
二、设置单向mysql数据同步(LinuxA(Master)->LinuxB(Slave))
1、 LinuxA 为 master
LinuxB 为 slave (同步LinuxA 上mysql上指定的test数据库中的数据);
由于刚安装的mysql,因此分别在LinuxA 和 LinuxB 的 mysql 上创建相同的数据库如 test(表有 stu , class,teacher),保证两个mysql上的数据库名一致其表名及表的
结构一致,若有一个不同,将导致无法实现同步;
(PS: 要使数据同步,必须保证数据库名一致其表名及表的结构一致)
2、在作为master(即LinuxA)的mysql上建立一个账户专门用于slave(即LinuxB)来进行数据同步
# mysql (默认用户,如设置了root密码,使用mysql -u root -p 登入mysql)
mysql>grant file on *.* to backa@'192.168.59.124' identified by 'backa'
mysql>flush privileges;
(PS:此backa账户只能通过ip为192.168.59.124的访问)
在LinuxB上测试账户backa是否可以访问LinxuA上的mysql:
#mysql -u backa -p -h 192.168.59.123(输入密码backa,可以访问说明设置正确)
3、修改 my.cnf 文件
由于刚安装的mysql ,在/etc目录下可能无my.cnf文件,从/user/share/mysql目录中拷贝my-medium.cnf 到/etc并修改成my.cnf (LinuxA 和LinuxB 上一样)
如 # cp /user/share/mysql/my-medium.cnf /etc/my.cnf
修改在LinuxA(Master)上的/etc/my.cnf
log-bin=mysql-bin (日志文件,默认存在/var/lib/mysql下日志文件以mysql-bin为开头)
#log_bin= /var/log/mysql/mysql-bin.log(也可以自己指定,在此用# 表示注释掉了)
binlog-do-db =test(需要同步的数据库名,如需同步多个数据库,可以另起行如binlog-do-db =test1 )
server-id= 1 (mysql标示)
修改完后保存退出,并重启mysql 如#service mysql restart (重启正常,表示配置没错误)
修改在LinxuB(Slave)上的/etc/my.cnf
server-id= 2 (mysql标示,唯一否则启动会出错误)
master-host=192.168.59.123 (同步Master的ip地址)
master-user=backa (同步所需的账号)
master-password=backa (同步账号的密码)
master-port=3306 (LinuxA 中mysql的访问端口)
replicate-do-db=test (所需同步的数据库名,如果是同步多个数据库,可以另起一行如 replicate-do-db=test1)
#replicate-do-table=test.stu (如果只需同步test数据库中的stu表)
#replicate-do-table=test.teacher(如果只需同步test数据库中的stu表)
master-connect-retry=60 (主服务器(Master)宕机或连接丢失的情况下,从服务器(slave)线程重新尝试连接主服务器之前睡眠的秒数)
修改完后保存退出,并重启mysql 如#service mysql restart (重启正常,表示配置没错误)
4.启动同步
进到LinuxA(Master)的mysql上:
mysql>show master status\G (查看master当前状态)
运行完以上命令显示结果如下:
File: mysql-bin.000001 (当前binlog日志文件)
Position: 98 (但前binlog日志文件位置)
Binlog_Do_DB: test (同步数据库)
Binlog_Ignore_DB: (不需同步的数据,当前为设置)
-------------------------------------------------------------
进到LinuxB(Slave)的mysql上:
mysql>show slave status\G (查看slave同步状态)
运行完以上命令显示结果如下:
Slave_IO_State: Waiting for master to send event (slave 的io线程,获取master的binlog的日志内容,该为其目前的状态)
Master_Host: 192.168.59.123 (所需同步Master的ip地址)
Master_User: backa(同步所需的账号)
Master_Port: 3306(同步所需的mysql端口号)
Connect_Retry: 60
Master_Log_File: mysql-bin.000001 (master中的binlong的日志文件,如与master的日志文件名不同则同步失效)
Read_Master_Log_Pos: 98 (master中的binlong的日志文件的位置,即mysql-bin.000001文件中的第98位置开始同步,若与master上的位置不同则同步失效)
Relay_Log_File: localhost-relay-bin.000001
Relay_Log_Pos: 235
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes (Slave的io线程是否运行)
Slave_SQL_Running: Yes (slave的sql线程是否运行,需要io线程和sql线程同为yes才有效)
Replicate_Do_DB: test
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: 98
Relay_Log_Space: 235
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
如果Slave_IO_State:不为 Waiting for master to send event 表示未现实同步
原因可能很多先列举自己遇到:
1、 Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos:98
日志文件和位置与LinuxA(Master)的当前状态不一致
解决方式:(在LinuxB的mysql操作)
mysql>slave stop;(修改前先关闭slave)
mysql>change master to
>master_log_file='mysql-bin.000001' (ps:与LinuxA中的master的日志文件名相同)
>master_log_pso=98 (ps:与LinuxA中的master的日志文件当前位置相同)
>master_user='backa' (如果同步的账户不一致,也可在此修改)
>master_password='backa' (如果同步的账户密码不一致,也可在此修改)
>;
(PS:如果重新修改/etc/my.cnf 中相关slave的配置信息,重新启动查看 slave的状态还是显示未修改的数据,应为第一次是读取my.cnf,之后就会在/var/lib/mysql/下
生成一个master.info 的文件,因此第二次就不会读取my.cnf的内容,而是读取master.info中的内容,为此要想使重新修改的my.cnf生效的话,删除master.info文件,重起mysql
即可)
mysql>slave start;(重新启动slave)
mysql>show slave status\G (查看slave状态)
如果显示的 Slave_IO_State: Waiting for master to send event
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
祝贺成功实现单向同步即 linuxA --> linuxB 的同步;
在LinuxA的mysql上对test的 insert , delete ,update及对表结构的修改等操作 都会同步到 LinuxB的mysql上的test数据库上
(ps:如果在master上执行如 insert into to stu (uuid(),'yushan') 则同步到 slave上 ,id不同,因为其id是用uuid生成的,所以会不一致,之后对这条数据的
delete 和 update则不会实现同步)
三、双向同步(LinuxA<--->LinuxB)
双向同步最好使用的mysql版本要一致,保证二进制日志binlog的格式相同;双向同步即对任何一方mysql的insert,update,delete,alter等操作都会影响到另一方mysql中
的数据;由于前面已成功设置单向同步,在此基础上,把LinuxB(Slave)的配置 添加到 LinuxA(Master) 上,把LinuxA(Master)的配置添加到LinuxB(Slave)上,然后启动设
置同步的binlong文件及当前位置即可,具体操作如下:
1、 LinuxA 在原有Master的基础上增加Slave (同步LinuxB 上mysql上指定的test数据库中的数据)
LinuxB 在原有Slave的基础上增加Mmaster(同步LinuxA 上mysql上指定的test数据库中的数据);
2、在作为master(即LinuxB)的mysql上建立一个账户专门用于slave(即LinuxA)来进行数据同步
# mysql (默认用户,如设置了root密码,使用mysql -u root -p 登入mysql)
mysql>grant file on *.* to backb@'192.168.59.123' identified by 'backb'
mysql>flush privileges;
(PS:此backb账户只能通过ip为192.168.59.123的访问)
在LinuxA上测试账户backb是否可以访问LinxuB上的mysql:
#mysql -u backb -p -h 192.168.59.124(输入密码backb,可以访问说明设置正确)
3、修改 my.cnf 文件
在LinuxA 上的/etc/my.cnf 文件上添加Slave的配置
#server-id= 2 (mysql标示,唯一否则启动会出错误,因为原先已有标示为1,在此就可以注释掉,一个mysql只需一个标示即可)
master-host=192.168.59.124 (同步LinuxB (Master)的ip地址)
master-user=backb (同步所需的账号)
master-password=backb (同步账号的密码)
master-port=3306 (LinuxB 中mysql的访问端口)
replicate-do-db=test (所需同步的数据库名,如果是同步多个数据库,可以另起一行如 replicate-do-db=test1)
#replicate-do-table=test.stu (如果只需同步test数据库中的stu表)
#replicate-do-table=test.teacher(如果只需同步test数据库中的stu表)
master-connect-retry=60 (主服务器(Master)宕机或连接丢失的情况下,从服务器(slave)线程重新尝试连接主服务器之前睡眠的秒数)
修改完后保存退出,并重启mysql 如#service mysql restart (重启正常,表示配置没错误)
在LinxuB上的/etc/my.cnf文件上添加Master的配置
#server-id= 1 (mysql标示,唯一否则启动会出错误,因为原先已有标示为2,在此就可以注释掉,一个mysql只需一个标示即可)
log-bin=mysql-bin (日志文件,默认存在/var/lib/mysql下日志文件以mysql-bin为开头)
#log_bin= /var/log/mysql/mysql-bin.log(也可以自己指定,在此用# 表示注释掉了)
binlog-do-db =test(需要同步的数据库名,如需同步多个数据库,可以另起行如binlog-do-db =test1 )
修改完后保存退出,并重启mysql 如#service mysql restart (重启正常,表示配置没错误)
4.启动同步
进到LinuxB(Master)的mysql上:
mysql>show master status\G (查看master当前状态)
运行完以上命令显示结果如下:
File: mysql-bin.000003 (当前binlog日志文件)
Position: 231 (但前binlog日志文件位置)
Binlog_Do_DB: test (同步数据库)
Binlog_Ignore_DB: (不需同步的数据,当前为设置)
-------------------------------------------------------------
进到LinuxA(Slave)的mysql上:
mysql>show slave status\G (查看slave同步状态)
运行完以上命令显示结果如下:
Slave_IO_State: Waiting for master to send event (slave 的io线程,获取master的binlog的日志内容,该为其目前的状态)
Master_Host: 192.168.59.124 (所需同步Master的ip地址)
Master_User: backb(同步所需的账号)
Master_Port: 3306(同步所需的mysql端口号)
Connect_Retry: 60
Master_Log_File: mysql-bin.000003 (master中的binlong的日志文件,如与master的日志文件名不同则同步失效)
Read_Master_Log_Pos: 98 (master中的binlong的日志文件的位置,即mysql-bin.000001文件中的第98位置开始同步,若与master上的位置不同则同步失效)
Relay_Log_File: localhost-relay-bin.000001
Relay_Log_Pos: 231
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes (Slave的io线程是否运行)
Slave_SQL_Running: Yes (slave的sql线程是否运行,需要io线程和sql线程同为yes才有效)
Replicate_Do_DB: test
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: 98
Relay_Log_Space: 235
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
以上显示为正确同步 如果显示的一下数据不是
Slave_IO_State: Waiting for master to send event
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
若与以上的三个状态表示不同,则未实现同步;可以采用以上单向同步中的 change master 进行重新设置(ps:防火墙需关闭)
以上都能正确配置完且显示的状态一致,那么祝贺您成功实现双向同步即 linuxA <--> linuxB 的同步;
四、 mysql 数据同步相关说明(转载于网络,google一下很多)
1. 同步机制实现概述
MySQL同步机制基于master把所有对数据库的更新操作(更新、删除 等)都记录在二进制日志里。因此,想要启用同步机制,在master就必须启用二进制日志。
每个slave接受来自master上在二进制日志中记录的更新操作,因此在slave上执行了这个操作的一个拷贝。应该非常重要地意识到,二进制日志只是从启用二进制日志开始的
时刻才记录更新操作的。所有的slave必须在启用二进制日志时把master上已经存在的数据拷贝过来。如果运行同步时slave上的数据和master上启用二进制日志时的数据不一致的
话,那么slave同步就会失败。
2. 同步实现细节
MySQL同步功能由3个线程(master上1个,slave上2个)来实现。执行 START SLAVE 语句后,slave就创建一个I/O线程。I/O线程连接到master上,并请求master发送二进制日志
中的语句。master创建一个线程来把日志的内容发送到slave上。这个线程在master上执行 SHOW PROCESSLIST 语句后的结果中的 Binlog Dump 线程便是。slave上的I/O线程读取
master的 Binlog Dump 线程发送的语句,并且把它们拷贝到其数据目录下的中继日志(relay logs)中。第三个是SQL线程,salve用它来读取中继日志,然后执行它们来更新数据。
如上所述,每个mster/slave上都有3个线程。每个master上有多个线程,它为每个slave连接都创建一个线程,每个slave只有I/O和SQL线程。
在MySQL 4.0.2以前,同步只需2个线程(master和slave各一个)。slave上的I/O和SQL线程合并成一个了,它不使用中继日志。
slave上使用2个线程的优点是,把读日志和执行分开成2个独立的任务。执行任务如果慢的话,读日志任务不会跟着慢下来。例如,如果 slave停止了一段时间,那么I/O线程
可以在slave启动后很快地从master上读取全部日志,尽管SQL线程可能落后I/O线程好几的小时。如果slave在SQL线程没全部执行完就停止了,不过I/O线程却已经把所有的更新日
志都读取并且保存在本地的中继日志中了,因此在slave再次启动后就会继续执行它们了。这就允许在master上清除二进制日志,因为slave已经无需去master读取更新日志了。
在mysql中执行 SHOW PROCESSLIST 语句就会告诉我们所关心的master和slave上发生的情况
在master上,SHOW PROCESSLIST 的结果如下:
mysql> SHOW PROCESSLIST\G
*************************** 1. row ***************************
Id: 21
User: root
Host: localhost
db: mysql
Command: Query
Time: 0
State: NULL
Info: SHOW PROCESSLIST
*************************** 2. row (MASTER线程)***************************
Id: 25
User: back
Host: 192.168.1.125:34085
db: NULL
Command: Binlog Dump
Time: 746
State: Has sent all binlog to slave; waiting for binlog to be updated
Info: NULL
2 rows in set (0.01 sec)
在这里,线程2是为一个slave连接创建的。结果表明所有未完成的更新日志已经都发送到slave了,master正等待新的更新日志发生。
在slave上,SHOW PROCESSLIST 的结果如下:
mysql> SHOW PROCESSLIST\G
*************************** 1. row ***************************
Id: 2
User: system user
Host:
db: NULL
Command: Connect
Time: 70479
State: Waiting for master to send event
Info: NULL
*************************** 2. row (I/O线程) ***************************
Id: 3
User: system user
Host:
db: NULL
Command: Connect
Time: 16971
State: Has read all relay log; waiting for the slave I/O thread to update it
Info: NULL
*************************** 3. row (SQL线程)***************************
Id: 8
User: root
Host: localhost
db: NULL
Command: Query
Time: 0
State: NULL
Info: SHOW PROCESSLIST
3 rows in set (0.00 sec)
这表明线程2是I/O线程,它正连接到master上;线程3是SQL线程,它执行中继日志中的更新操作。现在,这2个线程都处于空闲状态,正等待新的更新日志。
注意,Time 字段的值告诉我们slave上的日志比master晚了多久。
3. Master 同步线程状态
以下列出了master的 Binlog Dump 线程 State 字段中最常见的几种状态。如果在master上没有 Binlog Dump 线程,那么同步就没有在运行。也就是说,没有slave连接上来
。
Sending binlog event to slave
事件是由二进制日志构成,一个事件通常由更新语句加上其他信息。线程读取到一个事件并正发送到slave上。
Finished reading one binlog; switching to next binlog
读取完了一个二进制日志,正切换到下一个。
Has sent all binlog to slave; waiting for binlog to be updated
已经读取完全部未完成更新日志,并且全部都发送到slave了。它处于空闲状态,正等待在master上执行新的更新操作以在二进制日志中产生新的事件,然后读取它们。
Waiting to finalize termination
当前线程停止了,这个时间很短
4. Slave的I/O线程状态
以下列出了slave的I/O线程 State 字段中最常见的几种状态。从MySQL 4.1.1开始,这个状态在执行 SHOW SLAVE STATUS 语句结果的 Slave_IO_State 字段也会出现。这意味
着可以只执行 SHOW SLAVE STATUS 语句就能了解到更多的信息。
Connecting to master
该线程证尝试连接到master上。
Checking master version
确定连接到master后出现的一个短暂的状态。
Registering slave on master
确定连接到master后出现的一个短暂的状态。
Requesting binlog dump
确定连接到master后出现的一个短暂的状态。该线程向master发送一个请求,告诉它要请求的二进制文件以及开始位置。
Waiting to reconnect after a failed binlog dump request
如果二进制日志转储(binary log dump)请求失败了(由于连接断开),该线程在休眠时进入这个状态,并定期重连。重连的时间间隔由
--master-connect-retry 选项来指定。
Reconnecting after a failed binlog dump request
该线程正尝试重连到master。
Waiting for master to send event
已经连接到master,正等待它发送二进制日志。如果master闲置时,这个状态可能会持续较长时间,如果它等待超过 slave_read_timeout 秒,就会发生超时。这时,它就会
考虑断开连接,然后尝试重连。
Queueing master event to the relay log
已经读取到一个事件,正把它拷贝到中继日志中以备SQL线程处理。
Waiting to reconnect after a failed master event read
读日志时发生错误(由于连接断开)。该线程在重连之前休眠 master-connect-retry 秒。
Reconnecting after a failed master event read
正尝试重连到master。当连接确定后,状态就变成 Waiting for master to send event。
Waiting for the slave SQL thread to free enough relay log space
relay_log_space_limit 的值非零,中继日志的大小总和超过这个值了。I/O线程等待SQL线程先处理中继日志然后删除它们以释放足够的空间。
Waiting for slave mutex on exit
当前线程停止了,这个时间很短。
5. Slave的SQL线程状态
以下列出了slave的SQL线程 State 字段中最常见的几种状态:
Reading event from the relay log
从中继日志里读到一个事件以备执行。
Has read all relay log; waiting for the slave I/O thread to update it
已经处理完中继日志中的全部事件了,正等待I/O线程写入更新的日志。
Waiting for slave mutex on exit
当前线程停止了,这个时间很短。
SQL线程的 State 字段有时候也可能是一个SQL语句。这意味着它从中继日志中读取到一个事件了,从中提取出SQL语句,并执行它。
(自己画的mysql同步原理图)
相关mysql数据同步资料的连接:
http://imysql.cn/node/58
http://deidara.blog.51cto.com/400447/122039
http://www.phpx.com/tech/database/2009-01-15/65.html
http://www.cnscn.org/htm_data/288/0811/17463.html
http://www.koven.org/archives/203.html
http://www.cnblogs.com/harryguo/archive/2008/03/10/1099223.html
http://www.blogjava.net/lzj520/archive/2008/02/27/182485.html
发表评论
-
mysql数据库备份与还原命令
2015-09-12 04:22 875还原一个数据库:mysql -h loc ... -
Redis被bgsave和bgrewriteaof阻塞的解决方法
2013-08-13 13:49 1244Redis 是一个性能非常高效的内存 Key-Value ... -
Redis内存使用优化与存储
2013-08-13 13:46 788Redis常用数据类型 ... -
InnoDB和MyISAM的差别
2013-08-07 11:30 768InnoDB和MyISAM是在使 ... -
mysql悲观锁总结和实践
2013-05-07 14:41 746最近学习了 ... -
线上MySQL机器内存爆掉原因分析与解决
2013-05-03 15:33 2186现象: 阿里金 ... -
Mysql Merge表的优点
2013-05-05 08:38 875Mysql Merge表作用类似于 ... -
MySQL分表实现上百万上千万记录分布存储的批量查询设计模式
2013-05-05 08:38 1022我们知道可以将一个海量记录的 MySQL 大表根据主 ... -
MySQL MyISAM表结构的恢复
2013-05-05 08:38 710MySQL MyISAM表结构的恢复方法是怎样的呢?这是很 ... -
mysql 利用binlog增量备份,还原实例
2013-05-05 08:38 824一,什么是增量备份 增量备份,就是将新增加的数据进行备份 ... -
Mysql失效后的数据恢复
2013-05-06 16:01 1039本篇文章用于一些特殊情况下,Mysql数据库失效,而 ... -
mysql日志的使用
2013-04-28 09:56 808mysql有以下几种日志: 错误日志: -log-err 查 ... -
Mysql 监控执行速度慢的语句
2013-04-28 09:54 1003首先,需要开启一个慢查询输出的一个机关:log_slow_q ... -
Mysql分表的三种方式
2013-04-28 09:51 774一,先说一下为什么要 ... -
mysql分区
2013-04-28 09:49 706一,什么是数据库分区 前段时间写过一篇关于mysql分表的的 ... -
Mysql分表和分区的区别
2013-04-28 09:43 816一,什么是mysql分表, ... -
BoneCP学习笔记——配置参数
2013-04-11 13:26 826一、BoneCP配置文件格式(bonecp-config. ... -
BoneCP 学习笔记
2013-04-11 13:26 970什么是BoneCP BoneCP 是一个快速 ... -
监控Proxool连接池的活动连接变化情况
2013-04-11 13:26 845/**//**@author 我为J狂 建立日期 ... -
proxool与tomcat DBCP连接池性能评测
2013-04-10 13:49 866proxool与tomcat DBCP连接池性能评测 ...
相关推荐
以上就是Linux系统中MySQL的一些基本操作命令,它们涵盖了数据库的启动、停止、用户管理、数据操作以及权限设置等多个方面。熟悉这些命令能够帮助你更有效地管理和维护MySQL数据库。当然,实际环境中还有很多其他...
mysql服务器linux安装包直接rpm安装包,快速安装简洁....
在这个压缩包"mysq的llinux安装包-5.6.34.zip"中,包含了在Linux环境下安装MySQL 5.6.34所需的所有文件,主要文件是`mysql-5.6.34.tar.gz`,这是一个用于Linux系统的源码包。 以下是对这个安装过程的详细步骤和相关...
sudo yum install libxml2-devel libcurl-devel openssl-devel libjpeg-devel libpng-devel libzip-devel mysql-devel ``` 3. **下载PHP源码** 使用`wget`命令下载PHP7.1.17的源代码包: ``` wget ...
关于suse linux基本知识介绍
它们负责初始化和配置硬件,接收来自上层应用程序或系统服务的命令,并将其转化为设备能理解的语言,同时将设备的状态和数据反馈回系统。驱动程序的编写通常涉及到对硬件接口的理解、中断处理、DMA(直接内存访问)...
本教程将针对初学者,详细介绍如何在Linux系统中进行C语言编程,让你们能够轻松入门。 首先,理解Linux编程环境至关重要。Linux系统通常配备有GCC(GNU Compiler Collection),它是一个强大的编译器,支持C、C++等...
在这个资源包中,重点涵盖了以下几个关键领域: 1. **Linux基础概念**: - Linux是一种自由和开放源码的操作系统,基于Unix,广泛应用于服务器、超级计算机和个人计算机。 - Linux发行版:Ubuntu、CentOS、Fedora...
''' @Author N.J @Info 一文学会Stramlit #安装 Python 3.6.5 pip install streamlit==0.62.0 ...side = ["按钮","线图","图片","数据4","数据5","图片音频视频","分屏","表单"] st.sidebar.title("主面板")
标题中的"linux_ads1.2.zip_ADS linux_ADS能编译llinux_Linux.a_ads1.2 linux_li"提到了几个关键概念,包括"ADS"、"Linux"、"ADS1.2"以及"Linux.a"。这些词汇表明我们要讨论的是一个关于Linux系统,特别是与ADS...
从给定的文件信息中,我们可以总结出一系列与Linux网络管理相关的知识点,涵盖IP地址管理、网络连接协议、文件共享、邮件服务、DNS配置、网络命令应用等方面。 ### IP地址管理 1. **IP地址的独特性与结构**:IP...
6. **线程与同步函数**:如pthread_create, pthread_join, mutex_init等,用于多线程编程和资源同步。 7. **网络编程函数**:如socket, bind, connect, listen, accept等,支持TCP/IP网络通信。 8. **内存管理函数...
Linux TWI(Two-Wire Interface)开发指南是针对Sunxi平台的一份技术文档,主要讲解了如何在Linux系统中开发和调试TWI驱动接口。TWI,也常被称为I2C(Inter-Integrated Circuit),是一种在微控制器和周边设备之间...
在实际应用中,Nginx的负载均衡策略可以根据实际情况选择,例如,使用IP-hash策略可以解决session问题,使用fair策略可以根据后端服务器的响应时间来分配请求。 Linux环境Nginx安装与配置是一个复杂的过程,需要...
2. 在Linux中,硬盘被归类为块设备,因为它们以固定大小的数据块进行读写,选项B正确。其他选项如串行口、虚拟终端和打印机属于字符设备。 3. 要一次性显示一页内容,可以使用more命令,选项C正确。pause通常用于...
Linux Man手册是Linux系统中非常重要的参考资料,它包含了操作系统中各种命令、系统调用、库函数、配置文件等的详细说明。这个“llinux man手册中文版”显然是为那些英语能力较弱,但又需要使用Linux系统进行编程或...
Llinux环境,离线安装svn服务,所需要的所有包,不存在版本不兼容,按找个包顺序安装即可,记得最后配置环境变量并且重新刷新环境变量。
在Linux系统中,时间管理是程序开发中必不可少的一部分。本文主要讨论了Linux环境下关于时间的表示、获取以及计时的方法。 首先,时间在程序中通常以时间戳的形式存在,即从1970年1月1日0点(UTC)到当前时刻的秒数...
MTK5586 linux编译环境配置
实验中统计了 `/home/hadoop/test.txt` 和 `/user/hadoop/test.txt` 文件的行数,这展示了 Spark 对文本数据的基本操作。 3. **编写独立 Scala 应用程序** Spark 提供了 Scala、Java、Python 和 R 的 API,便于...