单机多实例mysql部署安装

  • 目的需求

    在单台虚拟机部署部署多实例mysql,用于配置mysql replication,MHA等。
  • 思路

    多实例安装mysql可以参考《源编译MySQL8.0的安装》文档。修改my.cnf的配置文件和目录文件结构。基于不同的端口启动多个实例。

1.新建3307实例的文件目录

#cd /data/
#mkdir -p /data/mysqldata/{3307/{data,tmp,binlog,innodb_ts,innodb_log},backup,script
#chown -R mysql:mysql mysqldata
#su - mysql

2.使用新的mysql.cnf文件启动mysql实例

[client]
port = 3307
socket = /data/mysqldata/3307/mysql.sock # The MySQL server
[mysqld]
port = 3307
mysqlx_port = 33070
user = mysql
socket = /data/mysqldata/3307/mysql.sock
mysqlx_socket=/data/mysqldata/3307/mysqlx.sock
pid-file = /data/mysqldata/3307/mysql.pid
basedir = /usr/local/mysql
datadir = /data/mysqldata/3307/data
tmpdir = /data/mysqldata/3307/tmp
open_files_limit = 60000
explicit_defaults_for_timestamp
server-id = 1203307
lower_case_table_names = 1
character-set-server = utf8
federated
#sql_mode=STRICT_TRANS_TABLES
max_connections = 1000
max_connect_errors = 100000
interactive_timeout = 86400
wait_timeout = 86400
back_log=100 default-storage-engine = InnoDB #*********** GTID settting*******************
log_slave_updates = 1
gtid_mode=ON
enforce-gtid-consistency=true
innodb_flush_log_at_trx_commit=2
binlog_format= row
skip-slave-start=1
sync_binlog=5 #*********** Logs related settings ***********
log-bin = /data/mysqldata/3307/binlog/mysql-bin
binlog_cache_size=32m
max_binlog_cache_size=64m
max_binlog_size=512m
long_query_time = 1
log_output = FILE
log-error = /data/mysqldata/3307/mysql-error.log
slow_query_log = 1
slow_query_log_file = /data/mysqldata/3307/slow_statement.log
#log_queries_not_using_indexes
general_log = 0
general_log_file = /data/mysqldata/3307/general_statement.log
#expire-logs-days = 14
binlog_expire_logs_seconds = 1728000
relay-log = /data/mysqldata/3307/binlog/relay-bin
relay-log-index = /data/mysqldata/3307/binlog/relay-bin.index #****** MySQL Replication New Feature*********
master-info-repository=TABLE
relay-log-info-repository=TABLE
relay-log-recovery #*********** INNODB Specific options ***********
innodb_buffer_pool_size = 2048M
transaction-isolation=REPEATABLE-READ
innodb_buffer_pool_instances = 8
innodb_file_per_table = 1
innodb_data_home_dir = /data/mysqldata/3307/innodb_ts
innodb_data_file_path = ibdata1:2048M:autoextend innodb_thread_concurrency = 8 innodb_log_buffer_size = 16M
innodb_log_file_size = 128M
innodb_log_files_in_group = 3 innodb_log_group_home_dir = /data/mysqldata/3307/innodb_log
innodb_flush_log_at_trx_commit = 2
innodb_max_dirty_pages_pct = 70
innodb_flush_method=O_DIRECT [mysql]
no-auto-rehash
default-character-set=gbk
prompt = (\u@\h) [\d]>\_

3.初始化数据库

$/usr/local/mysql/bin/mysqld --defaults-file=/data/mysqldata/3307/my.cnf --initialize --user=mysql

4.启动数据库

$/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysqldata/3307/my.cnf --user=mysql &

5.多实例配置过程中的一些问题总结

  • error日志报错明细(一):
      2018-06-01T06:49:48.544169Z 0 [ERROR] [MY-011292] [Server] Plugin mysqlx reported: 'Preparation of I/O interfaces failed, X Protocol won't be accessible'
    2018-06-01T06:49:48.544429Z 0 [ERROR] [MY-011300] [Server] Plugin mysqlx reported: 'Setup of UNIX socket (/data/mysqldata/3306/mysqlx.sock) failed, another
    process with PID 17095 is using UNIX socket file'
  • 解决思路

    1.查看socket值
      (root@localhost) [(none)]> show variables like '%socket%' ;
    +-----------------------------------------+----------------------------------+
    | Variable_name | Value |
    +-----------------------------------------+----------------------------------+
    | mysqlx_socket | /data/mysqldata/3306/mysqlx.sock |
    | performance_schema_max_socket_classes | 10 |
    | performance_schema_max_socket_instances | -1 |
    | socket | /data/mysqldata/3307/mysql.sock |
    +---------------------------------------+----------------------------------+

    2.编译mysql源码的时候,需指定了MYSQLX_UNIX_ADDR的值。修改mysqlx_socket配置

    mysqlx_socket=/data/mysqldata/3307/mysqlx.sock
  • error日志报错明细(二):
     2018-06-01T07:10:47.051235Z 0 [ERROR] [MY-011300] [Server] Plugin mysqlx reported: 'Setup of TCP (bind-address:'*', port:33060) failed, `bind()` failed with
    error: Address already in use (98). Do you already have another mysqld server running with Mysqlx ?'
  • 解决思路

    1.查看port值
      (root@localhost) [(none)]> show variables like '%port%';
    +--------------------------+-------+
    | Variable_name | Value |
    +--------------------------+-------+
    | large_files_support | ON |
    | mysqlx_port | 33060 |
    | mysqlx_port_open_timeout | 0 |
    | port | 3307 |
    | report_host | |
    | report_password | |
    | report_port | 3307 |
    | report_user | |
    | require_secure_transport | OFF |
    +--------------------------+-------+

    2.修改mysql.cnf文件

    mysqlx_port = 33070

    这样数据库重启启动,不会报错。两个实例的MySQL的条件具备,可以搭建基于GTID的主从。

单机多实例mysq 8.0l部署安装的更多相关文章

  1. 聊聊 Tomcat 的单机多实例

    Tomcat 从何而来? 先说 Tomcat 这一单词解释,如果你不是一个开发者,当然它在美国口语中并非是褒义词:如果你是开发者,那你一定听过 Web 应用服务器.Sun 公司和 Tomcat .如你 ...

  2. MySQL通过rpm安装及其单机多实例部署

    1. CentOS 下安装 MySQL Oracle 收购 MySQL 后,CentOS 为避免 MySQL 闭源的风险,改用 MySQL 的分支 MariaDB:MariaDB 完全兼容 MySQL ...

  3. tomcat单机多实例部署

    最近在面试的过程中,一家公司在面试时提到了有关tomcat单机多实例部署的提问, 正好, 之前使用IntelliJ IDEA 13.1.4这款IDE开发web项目,在开发的过程中,因为有多个web项目 ...

  4. Mysql 数据库单机多实例部署手记

        最近的研发机器需要部署多个环境,包括数据库.为了管理方便考虑将mysql数据库进行隔离,即采用单机多实例部署的方式.找了会资料发现用的人也不是太多,一般的生产环境为了充分发挥机器性能都是单机单 ...

  5. elasticsearch单机多实例环境部署

    elasticsearch的功能,主要用在搜索领域,这里,我来研究这个,也是项目需要,为公司开发了一款CMS系统,网站上的搜索栏功能,我打算采用elasticsearch来实现. elasticsea ...

  6. MySQL单机多实例安装并配置主从复制

    单机多实例据说可以最大程度提高硬件使用,谁知道呢,但是以前的公司喜欢这样搞,我最近也在学习复制什么的,电脑搞不起两台虚拟机,刚好单机多实例可以解救我.下面就说说步骤. 承上文http://www.cn ...

  7. centos7 下zookeeper 部署 单机多实例模式

    centos7 下zookeeper 部署 本文参考https://www.linuxidc.com/Linux/2016-09/135052.htm 1.创建/usr/local/zookeeper ...

  8. MYSQL 5.5.32的单机多实例部署

    Centos6.6安装并配置单机多实例的MYSQL数据库 本文介绍安装单机多实例的MYSQL数据库的环境如下: 系统平台环境:Centos6.6 Mysql软件包:Mysql-5.5.32.tar.g ...

  9. 使用mysqld_multi 实现Mysql 5.6.36 + 5.7.18 单机多实例多版本安装

    Mysql 5.6.36 + 5.7.18 单机多实例多版本安装 随着硬件层面的发展,各种高性能服务器如雨后春笋般出现,但高性能服务器不免造成浪费, MySQL单机多实例,是指在一台物理服务器上运行多 ...

随机推荐

  1. flask更改已有的response

    今天遇到个问题,需要更改返回的response,但框架已经生成了一个response,所以需要直接更改. 试着找了找解决办法,最终解决方式如下: #下文中payload的类型是 # class Res ...

  2. Alpha 冲刺 (8/10)

    队名 火箭少男100 组长博客 林燊大哥 作业博客 Alpha 冲鸭鸭鸭鸭鸭鸭鸭鸭! 成员冲刺阶段情况 林燊(组长) 过去两天完成了哪些任务 协调各成员之间的工作 多次测试软件运行 学习OPENMP ...

  3. 如何通过Git GUI将自己本地的项目上传至Github(转)

    githud是一个程序员以后成长都会使用到的,先不说很多优秀的开源框架都在这上面发布,光是用来管理自己的demo都已经让人感到很方便,用得也很顺畅.而真正让我下定决心使用github的原因是因为两次误 ...

  4. 叠加dgv中相同的行信息

    俗话说,磨刀不误砍柴工,先说一下情况.点击按钮后往dgv中添加一行(行中字段含有数量),再点击一次,又添加一行. 假如这两条信息一样.则要进行叠加(数量相加).我的思路是这样的:每次点击一次就往dgv ...

  5. 跨域ajax问题

    1. Intro 在用ajax请求时,请求的域名和所在域名不同,会出现跨域问题导致请求失败. 复杂请求: 条件: .请求方式:HEAD.GET.POST .请求头信息: Accept Accept-L ...

  6. web安全基础

    web安全备忘 主机系统安全防护:防火墙控制 Web是一个分布式系统,一个站点多个主机布置,一主机布置多个站点:并发,异步,同步 主机安全配置文件修改与强化 web站点数据验证逻辑的常用技巧:功能性代 ...

  7. Django Class Based View

    本节内容 一   Class Based View 基于类的视图 1.  类的视图 View 2.  类的视图 TemplateView 3.  类的视图 login_required解决方法 二   ...

  8. Adobe reader multiple languages pack

    用户打开客户发过来的PDF文档,显示不正常,这是电脑的Adobe Reader缺少相关的字体. 可以从下面地址下载相对版本的字体包安装:http://supportdownloads.adobe.co ...

  9. 踩了的Dockerfile的坑

    1.Dockerfile VOLUME的目录,RUN命令操作该目录无效 VOLUME $APP_HOME RUN mkdir -p $APP_HOME && mkdir -p $APP ...

  10. maven理论基础

    Maven介绍 Maven是一个Java项目管理和构建工具 Maven使用pom.xml定义项目内容,并使用预设的目录结构 在Maven中声明一个依赖项可以自动下载并导入classpath Maven ...