linux下mysql多实例安装部署及主从配置.doc

上传人:scccc 文档编号:11253648 上传时间:2021-07-18 格式:DOC 页数:11 大小:1.17MB
返回 下载 相关 举报
linux下mysql多实例安装部署及主从配置.doc_第1页
第1页 / 共11页
linux下mysql多实例安装部署及主从配置.doc_第2页
第2页 / 共11页
linux下mysql多实例安装部署及主从配置.doc_第3页
第3页 / 共11页
linux下mysql多实例安装部署及主从配置.doc_第4页
第4页 / 共11页
linux下mysql多实例安装部署及主从配置.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《linux下mysql多实例安装部署及主从配置.doc》由会员分享,可在线阅读,更多相关《linux下mysql多实例安装部署及主从配置.doc(11页珍藏版)》请在三一文库上搜索。

1、Linux下mysql多实例安装部署(ubuntu14)1. 在官网下载mysql5.6版本2. 复制到/usr/local文件夹下,并解压安装包3. 在/usr/local文件夹下创建一个mysql文件夹,然后把mysql-5.6.19-linux-glibc2.5-i686中的文件复制到mysql文件夹中命令(注意在local文件夹下):cp -fr mysql-5.6.19-linux-glibc2.5-i686/* mysql能够看到mysql文件夹中是文件和mysql-5.6.19-linux-glibc2.5-i686中一致。4. 创建三个文件夹mysql3306、mysql330

2、7、mysql3308命令(注意在local文件夹下):mkdir mysql3306然后分别复制mysql-5.6.19-linux-glibc2.5-i686中的文件到mysql3306、mysql3307、mysql3308下。5. 创建groupadd 和useradd命令:groupadd mysql Mkdir /home/mysql Useradd -g mysql -d /home/mysql mysql6. 安装mysql命令:Mkdir /home/mysql3306/usr/local/mysql/scripts/mysql_install_db -basedir=/us

3、r/local/mysql3306 -datadir=/home/mysql3306 -user=mysql然后能够在/home/mysql3306下看到7. 配置f文件命令(注意在local文件夹下):cp mysql/support-files/my-f mysql3306/f然后进入/usr/local/mysql3306文件夹可以看到f文件,我们需要编辑一下端口这样就设置了端口为3306的mysql实例8. 配置服务启动(另一种方式就是使用mysqld_safe启动,然后配置参数即可)命令(注意在local文件夹下):cp mysql/support-files/mysql.serve

4、r /etc/init.d/mysql3306然后就可以看到并且用vi编辑这个文件只需要编辑这里即可9. 启动和关闭mysql服务命令:service mysql3306 start/stop重复6-9部署另外两个mysql实例,注意文件夹和端口相对应10. 查看监听mysql端口命令:netstat -an | grep LISTEN可以看到端口处于监听状态查看mysql状态命令见图11. 密码初始化及登录命令:/usr/local/mysql3308/bin/mysqladmin -P 3307 -u root password root Mysql -P3306 -uroot -p pa

5、ssword:注意:为了避免数据库实例直接产出干扰,我们需要重新指定mysql.sock文件,一般可以再/tmp 下面看到一个mysql.sock文件,每次启动一个实例都会创建一个,但是如果此文件存在的话就不会被创建,这样我们如果使用此文件登录的话就只会登录上一个实例,所以我们需要重新指定。 操作说明:(1) 、首先我们启动3306数据库实例,然后可以查看到/tmp下有一个mysql.sock文件,这个文件属于3306数据库实例,所以我么只要重新指定一个文件名即可,命令:mv /tmp/mysql.sock /tmp/mysql3306.sock(2) 、然后启动3307数据库实例,然后又可以

6、看到/tmp下有一个mysql.sock文件,这个文件属于3307数据库实例,使用命令:mv /tmp/mysql.sock /tmp/mysql3307.sock(3) 、最后启动3308数据库实例,操作依然同上。最后结果如图:登录命令:/usr/local/mysql/bin/mysql -socket=/tmp/mysql3306.sock -uroot -p 输入密码如果出现一下错误:就直接使用命令:/usr/local/mysql/bin/mysql -socket=/tmp/mysql3306.sock 直接可以连接,不需要后面添加 -u -p 或其他命令。配置主从复制(本次将带来

7、一主多从演示)以本机的3306端口的mysql实例作为主机实例,3307端口实例作为从机实例,3308端口实例作为从机实例1. 建立专门用于Replication的账户:命令:grant replication slave,super on *.* to repl3307127.0.0.1 identified by repl3307;操作说明:(1) 、首先在3306数据库实例上创建一个Replication的账户,grant replication slave,super on *.* to repl3307127.0.0.1 identified by repl3307;账户名和密码都为

8、repl3307,这样表示这个账户3307数据库实例来登陆,也就是说对于3306数据库实例来说3307数据库实例作为备库,主机IP为127.0.0.1,当然也可以是localhost,但是考虑的真实环境下采用的都是IP4格式地址,也不可能会在同一台机器上配置主从数据库。我演示主要是因为资源限制,所以只能在同一台机器模拟这样的测试环境。(2) 、然后在3307实例上也创建一个Replication的账户,rant replication slave,super on *.* to repl3306127.0.0.1 identified by repl3306;同样,此账户是给3306数据库实例

9、来登录的,账户密码都为repl3306,对于3307数据库实例来说3306数据库是备库。(3) 、这样就为3306和3307数据库实例建立了双向登录账户,为双向复制做准备。2. 主从服务器的配置信息设置:主从服务器的配置都是通过改写f/my.ini文件来完成的。下面是主从服务器的必须的配置项:主机必须的配置项:log-bin /自定义,比如开启配置项 log-bin=mysql-bin,如果关闭log-bin直接注释就可以。如果想定期删除bin-log文件,那只需要在f配置中添加一项expire_logs_days即可。如:expire_logs_days=5,这说明超过5天bin-log将会

10、被清理一次server_id /为server起一个唯一的id,默认是1,推荐使用IP的最后一节。从机必须的配置项:server_id /为server起一个唯一的id,默认是1,推荐使用IP的最后一节.注意:一般,我们也会为从机设定log-bin,这是因为默认的log-bin文件是根据主机名命名的,一旦机器更改主机名就会出问题,再者保持主从机的配制一致也方便做主从机切换!主机可选的配置项:(用于配置主机哪些库会做二进制日志用以Replicate)binlog-do-dbbinlog-ignore-db从机可选的配置项:(用于配置从机会Replicate哪些库和表)replicate-do-d

11、b, replicate-ignore-dbreplicate-do-table, replicate-ignore-tablereplicate-wild-do-tablereplicate-wild-ignore-table注意:一条建议是不要在f/my.ini中配制master_host等选项,而应该使用CHANGE MASTER TO命令来动态设置! 对于Master端,我只需简单地设置server_id和log_bin两项即可,对于Slave端其实只需要设置server_id,但是还有一些推荐的设置项。以下是Slave端设置以下是在f中添加的配置server_id=1log_bin=

12、mysql-binrelay_log = mysql_relay_bin_loglog_slave_updates = 1read_only = 1(.还有其他配置参数可以参考f详情,这里测试只需要最基本的配置即可)操作说明:(1)、我们分别在/usr/local/mysql3306和/usr/local/mysql3307文件夹下修改f文件配置既可以,两边都相互配置一下。然后重启mysql服务。两个数据库都重启。3. 在从机设置主机信息命令:CHANGE MASTER TOMASTER_HOST=127.0.0.1,Master_Port=3307,MASTER_USER=repl3308,

13、MASTER_PASSWORD=repl3308,MASTER_LOG_FILE=mysql-bin.000010,MASTER_LOG_POS=1;操作说明:(1) 、先进入3306数据库实例,命令:/usr/local/mysql/bin/mysql -socket=/tmp/mysql3306.sock -uroot -p,然后输入密码即可。(2) 、查看主机信息,命令:show master statusG可以记录一下mysql-bin.000009日志文件名,还有position的值,然后quit退出3306数据库实例(3) 、进入3307数据库实例,命令/usr/local/mys

14、ql/bin/mysql -socket=/tmp/mysql3307.sock,命令后面加不加-uroot -p这个不重要,有时候可以加上,有时候不加也可以直接登进去,关键是能进就行。然后设置动态主机信息:首先使用命令:stop slave; 来停止备机复制服务。再使用命令:Reset slave; 来重新设置备库复制服务信息,然后就使用命令行:CHANGE MASTER TOMASTER_HOST=127.0.0.1,Master_Port=3307,MASTER_USER=repl3306,MASTER_PASSWORD=repl3306,MASTER_LOG_FILE=mysql-bi

15、n.000009,MASTER_LOG_POS=1791;(.当然还有其他参数可以设置,具体只要显示一些slave状态就可以查看相关属性)注意:MASTER_LOG_POS的值可以设置为1,这样表示复制主库原有所有的数据,但是并不建议这样使用,因为有时候会导致,启动复制服务之后连接失败,可能的原因就是MASTER_LOG_POS的位置与主库不一致产生的,建议方法就是备份主库,然后导入备库。需要注意的是,这样操作也需要小心,如果嫌麻烦的话就直接MASTER_LOG_POS设置为1即可,最多是多操作几次,到成功为止。(4) 、设置好主库信息之后就使用命令:start slave; 来启动复制服务即

16、可,然后使用命令:show slave statusG; 来显示备库中主机信息。 其中可以看到Slave_IO_Running: Yes Slave_SQL_Running: Yes这两个属性很重要,其中只要这两个属性同时为Yes的情况下才能正常复制,如果这两个属性任何一个为No,都需要从新配置,也就是以上步骤重来一遍。(5)、以上步骤都成功之后,也就是说成功配置好3306作为主库-3307作为备库的单向复制,那么还需要3307作为主库-3306作为备库的复制,这样就能达到双向的效果。其实只需要重走一下以上流程即可。全部成功之后我们能够看到:3307数据库实例如图:3306数据库实例如图:这样

17、就完成了3306数据库实例3307数据库实例的双向复制。疑问:那为什么要使用双向复制,而不是单向的呢?答:如果采用单向的话可以,但是这样的话备库对数据做了修改,主库是无法更新的,单向只能用于备库作为只读的情况下使用,这里的只读是指全库只读,但是mysql似乎没有这样的限制。具体的还是要用上层程序来控制只读或是只写。4. 为3306数据库实例再添加一个备库,也就是3308数据库实例操作:首先我们在3306数据库实例上创建一个Replication的账户,然后查看3306数据库实例上的主机信息然后登陆3308数据库实例,修改备机复制的主机信息,这样就完成了3306数据库实例-3308数据库实例的单

18、向配置。注意:我们在3307数据库实例使用命令:select user,host from mysql.user;查看用户信息的时候,也可以看到有repl3308用户这是因为双向复制起的作用。总结:3306数据库实例3307数据库实例是双向的,3306数据库实例-3308数据库实例是单向的。这样做的目的主要是同时具备测试单向或双向环境。5. 其他用到的命令: show variables like %port%; 显示端口信息show grants; 显示用户权限信息show binary logs;显示数据库二进制日志信息show variables like log%;查看当前日志开启情况

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1