首页 / MYSQL / Mysql多实例启动和主从复制
Mysql多实例启动和主从复制
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Mysql多实例启动和主从复制,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5170字,纯文字阅读大概需要8分钟。
内容图文
![Mysql多实例启动和主从复制](/upload/InfoBanner/zyjiaocheng/902/6cacf31fd48747c8af846c8e0e611ded.jpg)
目录
一、安装mysql
首先安装mysql,将mysql安装在linux系统目录下(例如:/usr/local/mysql-5.7.26),在mysql的安装目录(/usr/local/mysql-5.7.26)下创建data文件夹,在data文件夹下创建4个目录文件夹,分别为3307,3308,3309,3310作为我们启动的多实例mysql数据库。
注:mysql数据库的安装在网上可以搜到大把教程,可自行百度安装。
二、mysql多实例启动
2.1、多实例的初始化
在mysql的/usr/local/mysql-5.7.26/bin目录下分别执行命令:
(1)、./mysqld --initialize-insecure --basedir=/usr/local/mysql-5.7.26 --datadir=/usr/local/mysql-5.7.26/data/3307 --user=mysql
(2)、./mysqld --initialize-insecure --basedir=/usr/local/mysql-5.7.26 --datadir=/usr/local/mysql-5.7.26/data/3307 --user=mysql
(3)、./mysqld --initialize-insecure --basedir=/usr/local/mysql-5.7.26 --datadir=/usr/local/mysql-5.7.26/data/3307 --user=mysql
(4)、./mysqld --initialize-insecure --basedir=/usr/local/mysql-5.7.26 --datadir=/usr/local/mysql-5.7.26/data/3307 --user=mysql
注:--initialize-insecure :为不生成root用户密码,即密码为空
--basedir:指定mysql的安装目录
--datadir:指定mysql的数据存储目录
--user:指定mysql启动的用户名(root只是启动用户管理者,mysql为启动的用户使用者)
初始化完成之后,在3307,3308,3309,3310目录下分别创建一个my.cnf文件:
(1)、分别对这4个文件进行配置(其他几个实例相同,修改相关端口和路径)
[client]
port=3307
socket=/usr/local/mysql-5.7.26/data/3307/mysql.sock
default-character-set=utf8
[mysqld]
datadir=/usr/local/mysql-5.7.26/data/3307
socket=/usr/local/mysql-5.7.26/data/3307/mysql.sock
#user=mysql
port=3307
character-set-server=utf8
log-error=/usr/local/mysql-5.7.26/data/3307/error.log
pid-file=/usr/local/mysql-5.7.26/data/3307/mysql.pid
lower_case_table_names=1
autocommit=1
- client为客户端设置,主要是端口、编码设置
- mysqlld为服务端设置
- datadir:数据存储位置
- log-error:错误日志
- pid-file:进程编号文件
- lower_case_table_names=1:忽略大小写
- autocommit=1:自动提交
2.2、多实例数据库启动
切换到mysql的/usr/local/mysql-5.7.26/bin目录下,使用mysql_safe命令指定配置文件并启动mysql服务:
(1)、./mysqld_safe --defaults-file=/usr/local/mysql-5.7.26/data/3307/my.cnf &
(2)、./mysqld_safe --defaults-file=/usr/local/mysql-5.7.26/data/3308/my.cnf &
(3)、./mysqld_safe --defaults-file=/usr/local/mysql-5.7.26/data/3309/my.cnf &
(4)、./mysqld_safe --defaults-file=/usr/local/mysql-5.7.26/data/3310/my.cnf &
- --defaults-file:指定启动配置文件
- &:后台启动
启动之后可以通过命令:ps -ef | grep mysql 查看mysql启动情况
至此,多实例mysql数据库启动完成。
2.3、多实例启动后配置
(1)切换到mysql的/usr/local/mysql-5.7.26/bin目录下,使用命令./mysql -uroot -p -P3307 -h127.0.0.1登录mysql客户端
(2)修改mysql的密码,执行命令alter user 'root'@'localhost' identified by 'root';(把root用户的密码改为root)
(3)授权远程访问,执行命令grant all privileges on *.* to root@'%' identified by 'root';(注1)
(4)刷新权限,执行命令flush privileges;
注1:其中*.*,第一个*代表任意数据库,第二个*代表任意表。
root@‘%’中,root表示用户名,%表示IP地址,可以具体指定,例如:root@192.168.20.123
2.4、多实例关闭
方法一:bin目录下,执行命令./mysqladmin -uroot -p -P3307 -h127.0.0.1 shutdown;
- -p:密码
- -P:关闭对应多实例的端口号
- -h:IP地址
方法二:在mysql命令行直接执行命令:shutdown;
三、主从复制的搭建(一主三从)
以3307做为主,3308、3309、3310做为从为例。
修改3307主服务器的的my.cnf文件,分别对应添加下面2行:
log-bin=mysql-bin
server-id=3307
- log-bin:表示启用二进制日志
- server-id:服务器id,必须唯一
修改3308,3309,3310从服务器的my.cnf文件,分别对应添加下面1行:
server-id=3308
3.1、设置mysql服务器主从关系
3.1.1 、主服务器设置(3307)
(1)、在主服务器(3307)上创建复制数据的账号并授权,进入主服务器mysql命令行,执行命令grant replication slave on *.* to 'copy'@'%' identified by 'root';(注1)
(2)、查看主服务状态show master status;若主服务器状态正常,可不重置主服务器,否则应该重置主服务器 reset master;
图中file为二进制日志文件,position为偏移坐标,表示从偏移坐标开始复制,正常状态为154.
注1:创建复制账号为copy,密码为root,可在mysql数据库中的user表中进行查看。
3.1.2、从服务器设置(3308,3309,3310)
(1)、先查看一下从服务器(3308,3309,3310)状态 show slave,如果状态正常(状态为Empty set)可以不重置,否则应该重置先 stop slave;再reset slave;
(2)在从服务器上指定复制哪个主服务器,执行命令:change master to master_host='192.168.254.102',master_user='copy',master_port=3307,master_password='root',master_log_file='mysql-bin.000001',master_log_pos=154;
- master_host:主服务器的ip地址
- master_port:主服务器的端口
- master_user:主服务器的复制账号(上一步在主服务器已创建)
- master_password:主服务器的复制密码(上一步在主服务器已创建)
- master_log_file:主服务器的二进制日志文件
- master_log_pos:主服务器日志文件的偏移量
(3)、开始mysql主从复制,执行命令:start slave;
(4)、验证,可以使用Navicat直接手动测试,也可以查看mysql状态。
进入mysql命令行,show slave status \G
查看Slave_IO_Running和Slave_SQL_Running为YES,就为正常状态
四、小结
至此,mysql的主从复制(一主三从)就已经配置好了,双主双从也就是把对应的主服务器和从服务器按照此操作一遍即可。
内容总结
以上是互联网集市为您收集整理的Mysql多实例启动和主从复制全部内容,希望文章能够帮你解决Mysql多实例启动和主从复制所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。