搭建MHA环境 https://code.google.com/p/mysql-master-ha/ //环境介绍 1.主机部署 manager机:10.10.54.154master机:10.10.54.156
搭建MHA环境
https://code.google.com/p/mysql-master-ha/
//环境介绍
1.主机部署
manager机:10.10.54.154
master机:10.10.54.156
slave1机:10.10.54.155(备用master)
slave2机:10.10.54.157
2.大致步骤
A.首先用ssh-keygen实现四台主机之间相互免密钥登录
B.安装MHAmha4mysql-node,mha4mysql-manager 软件包
C.建立master,slave1,slave2之间主从复制
D.管理机manager上配置MHA文件
E.masterha_check_ssh工具验证ssh信任登录是否成功
F.masterha_check_repl工具验证mysql复制是否成功
G.启动MHA manager,并监控日志文件
H.测试master(156)宕机后,是否会自动切换
//A.首先用ssh-keygen实现四台主机之间相互免密钥登录
[manager机]
1.
shell> ssh-keygen -t rsa -b 2048
shell> scp id_rsa.pub root@10.10.54.155:/root/.ssh/
shell> scp id_rsa.pub root@10.10.54.156:/root/.ssh/
shell> scp id_rsa.pub root@10.10.54.157:/root/.ssh/
2.在另外三台机子上用cat xxx >> authorized_keys导入公钥到/root/.ssh/authorized_keys文件中
3.在其它三台机子重复此步骤,使四台机子中的任何两台之间可以免密码登录
//B.安装MHAmha4mysql-node,mha4mysql-manager 软件包
1.安装MHAmha4mysql-node
[manager,master,slave1,slave2]
shell> yum update
shell> yum -y install perl-DBD-MySQL ncftp
shell> wget
sehll> rpm -ivh mha4mysql-node-0.53-0.noarch.rpm
2.安装mha4mysql-manager
[manager]
shell> yum install perl
shell> yum install cpan
shell> rpm -ivh mha4mysql-manager-0.53-0.el6.noarch.rpm
error:
perl(Config::Tiny) is needed by mha4mysql-manager-0.53-0.noarch
perl(Log::Dispatch) is needed by mha4mysql-manager-0.53-0.noarch
perl(Log::Dispatch::File) is needed by mha4mysql-manager-0.53-0.noarch
perl(Log::Dispatch::Screen) is needed by mha4mysql-manager-0.53-0.noarch
perl(Parallel::ForkManager) is needed by mha4mysql-manager-0.53-0.noarch
perl(Time::HiRes) is needed by mha4mysql-manager-0.53-0.noarch
[solution]
shell> wget ftp://ftp.muug.mb.ca/mirror/CentOS/5.10/os/x86_64/CentOS/perl-5.8.8-41.el5.x86_64.rpm
shell> wget ftp://ftp.muug.mb.ca/mirror/centos/6.5/os/x86_64/Packages/compat-db43-4.3.29-15.el6.x86_64.rpm
shell> wget
shell> wget
shell> wget
shell> wget
shell> wget
shell> rpm -ivh perl-Parallel-ForkManager-0.7.9-1.el6.noarch.rpm perl-Log-Dispatch-2.27-1.el6.noarch.rpm perl-Mail-Sender-0.8.16-3.el6.noarch.rpm perl-Mail-Sendmail-0.79-12.el6.noarch.rpm perl-Time-HiRes-1.9721-136.el6.x86_64.rpm
shell> rpm -ivh mha4mysql-manager-0.53-0.el6.noarch.rpm
//C.建立master,slave1,slave2之间主从复制
[master:156]
1.shell> vim /etc/my.cnf
server-id=1
log-bin=mysql-bin
binlog_format=mixed
2.mysql> GRANT ALL PRIVILEGES ON *.* TO 'rep'@'10.10.54.%' IDENTIFIED BY 'rep123';
mysql> flush privileges;
3.mysql> show master status;
[slave1,slave2]
4.change master操作
mysql> change master to
master_host='10.10.54.156',
master_port=3306,
master_user='rep',
master_password='rep123',
master_log_file='mysql-bin.000001',
master_log_pos=112;
[slave1:155]
5.mysql> GRANT ALL PRIVILEGES ON *.* TO 'rep'@'10.10.54.%' IDENTIFIED BY 'rep123';
##slave1机子上也要授权,因为这个是备用master
[master,slave1,slave2]
6.查看主从复制是否成功的一些命令
mysql> start slave;
mysql> stop slave;
mysql> reset slave;
mysql> show slave status\G;
7.所有主机上设置复制权限帐号
mysql> GRANT ALL PRIVILEGES ON *.* TO 'mha_rep'@'10.10.2.10' IDENTIFIED BY '123456';
//D.管理机manager上配置MHA文件
[manager:154]
1.
shell> mkdir -p /masterha/app1
shell> mkdir /etc/masterha
shell> vim /etc/masterha/app1.cnf
[server default]
user=mha_rep ##mysql管理用戶名
password=123456
manager_workdir=/masterha/app1
manager_log=/masterha/app1/manager.log
remote_workdir=/masterha/app1
ssh_user=root #ssh免密钥登录的帐号名
repl_user=rep #mysql复制帐号,用来在主从机之间同步二进制日志等
repl_password=rep123
ping_interval=1 #ping间隔,用来检测master是否正常
[server1]
hostname=10.10.54.155
#ssh_port=9999
master_binlog_dir=/data/ndb #mysql数据库目录
candidate_master=1 #master机宕掉后,优先启用这台作为新master
[server2]
hostname=10.10.54.156
#ssh_port=9999
master_binlog_dir=/data/ndb
candidate_master=1
[server3]
hostname=10.10.54.157
#ssh_port=9999
master_binlog_dir=/data/ndb
no_master=1 #设置no_master=1使主机不能成为新master
//E.masterha_check_ssh工具验证ssh信任登录是否成功
[manager:154]
shell> masterha_check_ssh --conf=/etc/masterha/app1.cnf
Sun Mar 2 17:45:38 2014 - [debug] ok.
Sun Mar 2 17:45:38 2014 - [info] All SSH connection tests passed successfully.
//F.masterha_check_repl工具验证mysql复制是否成功
[manager:154]
shell> masterha_check_repl --conf=/etc/masterha/app1.cnf
---------------------------------------------------------
Sun Mar 2 13:16:57 2014 - [info] Slaves settings check done.
Sun Mar 2 13:16:57 2014 - [info]
10.10.54.156 (current master)
+--10.10.54.155
+--10.10.54.157
...
MySQL Replication Health is OK.
---------------------------------------------------------------
//G.启动MHA manager,并监控日志文件

MySQL'sBLOBissuitableforstoringbinarydatawithinarelationaldatabase,whileNoSQLoptionslikeMongoDB,Redis,andCassandraofferflexible,scalablesolutionsforunstructureddata.BLOBissimplerbutcanslowdownperformancewithlargedata;NoSQLprovidesbetterscalabilityand

ToaddauserinMySQL,use:CREATEUSER'username'@'host'IDENTIFIEDBY'password';Here'showtodoitsecurely:1)Choosethehostcarefullytocontrolaccess.2)SetresourcelimitswithoptionslikeMAX_QUERIES_PER_HOUR.3)Usestrong,uniquepasswords.4)EnforceSSL/TLSconnectionswith

ToavoidcommonmistakeswithstringdatatypesinMySQL,understandstringtypenuances,choosetherighttype,andmanageencodingandcollationsettingseffectively.1)UseCHARforfixed-lengthstrings,VARCHARforvariable-length,andTEXT/BLOBforlargerdata.2)Setcorrectcharacters

MySQloffersechar, Varchar, text, Anddenumforstringdata.usecharforfixed-Lengthstrings, VarcharerForvariable-Length, text forlarger text, AndenumforenforcingdataAntegritywithaetofvalues.

Optimizing MySQLBLOB requests can be done through the following strategies: 1. Reduce the frequency of BLOB query, use independent requests or delay loading; 2. Select the appropriate BLOB type (such as TINYBLOB); 3. Separate the BLOB data into separate tables; 4. Compress the BLOB data at the application layer; 5. Index the BLOB metadata. These methods can effectively improve performance by combining monitoring, caching and data sharding in actual applications.

Mastering the method of adding MySQL users is crucial for database administrators and developers because it ensures the security and access control of the database. 1) Create a new user using the CREATEUSER command, 2) Assign permissions through the GRANT command, 3) Use FLUSHPRIVILEGES to ensure permissions take effect, 4) Regularly audit and clean user accounts to maintain performance and security.

ChooseCHARforfixed-lengthdata,VARCHARforvariable-lengthdata,andTEXTforlargetextfields.1)CHARisefficientforconsistent-lengthdatalikecodes.2)VARCHARsuitsvariable-lengthdatalikenames,balancingflexibilityandperformance.3)TEXTisidealforlargetextslikeartic

Best practices for handling string data types and indexes in MySQL include: 1) Selecting the appropriate string type, such as CHAR for fixed length, VARCHAR for variable length, and TEXT for large text; 2) Be cautious in indexing, avoid over-indexing, and create indexes for common queries; 3) Use prefix indexes and full-text indexes to optimize long string searches; 4) Regularly monitor and optimize indexes to keep indexes small and efficient. Through these methods, we can balance read and write performance and improve database efficiency.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Dreamweaver Mac version
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.
