mysql使用mysqld_multi部署单机多实例的方法教程
前言
大家应该都有所体会,随着硬件层面的发展,linux系统多核已经是普通趋势,而mysql是单进程多线程,所以先天上对多进程的利用不是很高,虽然5.6版本已经在这方面改进很多,但是也没有达到100%,所以为了充分的利用系统资源,mysql有自己的补充,那就是可以部署多实例,一个实例一个端口。
mysqld_multi设计用于管理在同一台机器上运行的多个mysqld进程,这些进程使用不同的socket文件并监听在不同的端口上。mysqld_multi可以批量启动、关闭、或者报告这些mysqld进程的状态。
下面话不多说了,来一起看看详细的介绍吧。
一、mysql编译安装:
cd/usr/local/src wgethttp://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz tarzxvfmysql-5.6.35-linux-glibc2.5-x86_64.tar.gz mvmysql-5.6.35-linux-glibc2.5-x86_64/usr/local/mysql cd/usr/local/mysql useraddmysql mkdir-p/data/mysql chown-Rmysql:mysql/data/mysql ./scripts/mysql_install_db--user=mysql--datadir=/data/mysql cpsupport-files/my-default.cnf/etc/my.cnf cpsupport-files/mysql.server/etc/init.d/mysqld
二、准备第一个多实例3307
2.1创建目录:
mkdir/usr/local/mysql3307 chown-Rmysql.mysql/usr/local/mysql3307/ mkdir-p/data/mysql3307 chown-Rmysql.mysql/data/mysql3307 mkdir-p/home/data/mysql3307/binlog chown-Rmysql.mysql/home/data/mysql3307
2.2配置文件
[root@zhdya01~]#vim/etc/my.cnf #Foradviceonhowtochangesettingspleasesee #http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html #***DONOTEDITTHISFILE.It'satemplatewhichwillbecopiedtothe #***defaultlocationduringinstall,andwillbereplacedifyou #***upgradetoanewerversionofMySQL. [mysqld_multi] mysqld=/usr/local/mysql/bin/mysqld_safe mysqladmin=/usr/local/mysql/bin/mysqladmin log=/var/log/mysqld_multi.log [mysqld1] socket=/usr/local/mysql3307/mysql.sock port=3307 pid-file=/usr/local/mysql3307/mysql.pid datadir=/data/mysql3307 log_bin=/home/data/mysql3307/binlog server-id=1 innodb_buffer_pool_size=128M innodb_flush_log_at_trx_commit=0
2.3初始化数据库
/usr/local/mysql/scripts/mysql_install_db--user=mysql--basedir=/usr/local/mysql--datadir=/data/mysql3307
三、准备第二个多实例3308
3.1创建目录:
mkdir/usr/local/mysql3308 chown-Rmysql.mysql/usr/local/mysql3308/ mkdir-p/data/mysql3308 chown-Rmysql.mysql/data/mysql3308 mkdir-p/home/data/mysql3308/binlog chown-Rmysql.mysql/home/data/mysql3308
3.2配置文件
[root@zhdya01~]#vim/etc/my.cnf #Foradviceonhowtochangesettingspleasesee #http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html #***DONOTEDITTHISFILE.It'satemplatewhichwillbecopiedtothe #***defaultlocationduringinstall,andwillbereplacedifyou #***upgradetoanewerversionofMySQL. [mysqld_multi] mysqld=/usr/local/mysql/bin/mysqld_safe mysqladmin=/usr/local/mysql/bin/mysqladmin log=/var/log/mysqld_multi.log [mysqld1] socket=/usr/local/mysql3307/mysql.sock port=3307 pid-file=/usr/local/mysql3307/mysql.pid datadir=/data/mysql3307 log_bin=/home/data/mysql3307/binlog server-id=1 innodb_buffer_pool_size=128M innodb_flush_log_at_trx_commit=0 [mysqld2] socket=/usr/local/mysql3308/mysql.sock port=3308 pid-file=/usr/local/mysql3308/mysql.pid datadir=/data/mysql3308 log_bin=/home/data/mysql3308/binlog server-id=2 innodb_buffer_pool_size=128M innodb_flush_log_at_trx_commit=0
3.3初始化数据库
/usr/local/mysql/scripts/mysql_install_db--user=mysql--basedir=/usr/local/mysql--datadir=/data/mysql3308
四、启动多实例
/etc/init.d/mysqldstart mysqld_multi--defaults-extra-file=/etc/my.cnfstart1,2 [root@zhdya01bin]#!net netstat-lntp-lntp ActiveInternetconnections(onlyservers) ProtoRecv-QSend-QLocalAddressForeignAddressStatePID/Programname tcp000.0.0.0:220.0.0.0:*LISTEN1241/sshd tcp00127.0.0.1:250.0.0.0:*LISTEN2087/master tcp600:::3306:::*LISTEN4406/mysqld tcp600:::3307:::*LISTEN4197/mysqld tcp600:::3308:::*LISTEN3359/mysqld tcp600:::8080:::*LISTEN2222/java tcp600:::22:::*LISTEN1241/sshd tcp600::1:25:::*LISTEN2087/master
五、查看启动状态
[root@zhdya01bin]#mysqld_multi--defaults-extra-file=/etc/my.cnfreport ReportingMySQLservers MySQLserverfromgroup:mysqld1isrunning MySQLserverfromgroup:mysqld2isrunning
六、停止多实例
[root@zhdya01bin]#mysqld_multi--defaults-extra-file=/etc/my.cnfstop1,2 [root@zhdya01bin]#mysqld_multi--defaults-extra-file=/etc/my.cnfreport ReportingMySQLservers MySQLserverfromgroup:mysqld1isnotrunning MySQLserverfromgroup:mysqld2isnotrunning
七、各自登录mysql实例
[root@zhdya01bin]#mysql--socket=/usr/local/mysql3307/mysql.sock WelcometotheMySQLmonitor.Commandsendwith;or\g. YourMySQLconnectionidis1 Serverversion:5.6.35-logMySQLCommunityServer(GPL) Copyright(c)2000,2016,Oracleand/oritsaffiliates.Allrightsreserved. OracleisaregisteredtrademarkofOracleCorporationand/orits affiliates.Othernamesmaybetrademarksoftheirrespective owners. Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement. mysql>
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。