侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

CentOS7.5使用mysql_multi方式安装MySQL5.7.28多实例(详解)

linux  /  管理员 发布于 7年前   122

因使用源码安装的MySQL5.7.28多实例,在导入数据库时会出现问题,所以重新研究使用mysql_multi的方法来管理多实例,经过测试环境验证之后,在各方面使用上特别在备份还原上,没有报MySQL5.7.28多实例的问题,踩了不少坑,这里我将我的部署过程分享下,如果在哪里出问题的,还请多多指正与指导,谢谢!!

参考文章:Centos7.5安装mysql5.7.24二进制包方式部署

https:///article/151867.htm

本从就直接从2.7章节开始安装mysql多实例,具体部署过程如下:

2.7 安装mysql多实例

2.7.1. 创建软件安装目录(部署路径请根据实际修改)

[root@~]# mkdir -pv /data/mysql/{3306,3307}[root@~]# mkdir -v /data/mysql/3306/{logs,data,binlog}[root@~]# mkdir -v /data/mysql/3307/{logs,data,binlog}

2.7.2. MySQL安装包下载

[root@~]# cd /opt[root@~]# wget -c https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz[root@~]# tar zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz[root@~]# mv mysql-5.7.28-linux-glibc2.12-x86_64 /usr/local/mysql[root@~]# chown -R mysql:mysql /usr/local/mysql[root@~]# chown -R mysql:mysql /data

2.7.3. MySQL参数配置

 配置my.cnf参数文件

(1)server_id=3306与server_id=3307数值请根据实际配置,注意配置的id值与局域网内其他各实例所配置的数值不可以冲突;

(2)max_connections=1000配置MySQL数据库的最大连接数,根据实际需要配置,其他参数的优化根据实际需要修改或添

加;

(3)配置文件全部内容如下

[root@~]# vim /etc/my.cnf[mysqld_multi]mysqld = /usr/local/mysql/bin/mysqldmysqladmin = /usr/local/mysql/bin/mysqladminlog = /data/mysql/mysqld_multi.log #user=root#pass=[mysql]prompt="\u@jsshapp \R:\m:\s [\d]> "no-auto-rehash[mysqld3306]user = mysqlport = 3306symbolic-links = 0#basedir = /usr/datadir = /data/mysql/3306/datasocket = /data/mysql/3306/mysql3306.sockpid-file = /data/mysql/3306/mysqld3306.pidserver_id = 3306character_set_server = utf8max_connections = 1000skip_name_resolve = 1open_files_limit = 65536thread_cache_size = 64table_open_cache = 4096table_definition_cache = 1024table_open_cache_instances = 64max_prepared_stmt_count = 1048576explicit_defaults_for_timestamp = truelog_timestamps = systembinlog_format = rowlog_bin = /data/mysql/3306/binlog/mysql-binbinlog_rows_query_log_events = onexpire_logs_days = 7binlog_cache_size = 4Mmax_binlog_cache_size = 2Gmax_binlog_size = 1Gsync_binlog = 1log_bin_trust_function_creators = 1slow_query_log = onslow_query_log_file = /data/mysql/3306/data/slow.loglog-error = /data/mysql/3306/logs/error.loglog_queries_not_using_indexes = onlong_query_time = 1.000000gtid_mode = onenforce_gtid_consistency = ondefault_storage_engine = innodbdefault_tmp_storage_engine = innodbinnodb_data_file_path = ibdata1:12M:autoextend:max:2000Minnodb_temp_data_file_path = ibtmp1:12M:autoextend:max:2000Minnodb_buffer_pool_filename = ib_buffer_poolinnodb_log_files_in_group = 3innodb_log_file_size = 512Minnodb_online_alter_log_max_size = 1024Minnodb_open_files = 4096innodb_page_size = 16kinnodb_thread_concurrency = 0innodb_read_io_threads = 4innodb_write_io_threads = 4innodb_purge_threads = 4innodb_page_cleaners = 4innodb_print_all_deadlocks = oninnodb_lock_wait_timeout = 20innodb_spin_wait_delay = 128innodb_autoinc_lock_mode = 2innodb_io_capacity = 200innodb_io_capacity_max = 2000#innodb_flush_neighbors = innodb_log_buffer_size = 8Minnodb_flush_log_at_timeout = 1innodb_flush_log_at_trx_commit = 2innodb_buffer_pool_size = 1024Minnodb_buffer_pool_instances = 4autocommit = 1innodb_buffer_pool_dump_pct = 25innodb_buffer_pool_dump_at_shutdown = ONinnodb_buffer_pool_load_at_startup = ON[mysqld3307]user = mysqlport = 3307symbolic-links = 0lower_case_table_names = 1#basedir = /usr/datadir = /data/mysql/3307/datasocket = /data/mysql/3307/mysql3307.sockpid-file = /data/mysql/3307/mysqld3307.pidserver_id = 3307character_set_server = utf8max_connections = 1000skip_name_resolve = 1open_files_limit = 65536thread_cache_size = 64table_open_cache = 4096table_definition_cache = 1024table_open_cache_instances = 64max_prepared_stmt_count = 1048576explicit_defaults_for_timestamp = truelog_timestamps = systembinlog_format = rowlog_bin = /data/mysql/3307/binlog/mysql-binbinlog_rows_query_log_events = onexpire_logs_days = 7binlog_cache_size = 4Mmax_binlog_cache_size = 2Gmax_binlog_size = 1Gsync_binlog = 1slow_query_log = onslow_query_log_file = /data/mysql/3307/data/slow.loglog-error = /data/mysql/3307/logs/error.loglog_queries_not_using_indexes = onlong_query_time = 1.000000gtid_mode = onenforce_gtid_consistency = ondefault_storage_engine = innodbdefault_tmp_storage_engine = innodbinnodb_data_file_path = ibdata1:12M:autoextend:max:2000Minnodb_temp_data_file_path = ibtmp1:12M:autoextend:max:2000Minnodb_buffer_pool_filename = ib_buffer_poolinnodb_log_files_in_group = 3innodb_log_file_size = 512Minnodb_online_alter_log_max_size = 1024Minnodb_open_files = 4096innodb_page_size = 16kinnodb_thread_concurrency = 0innodb_read_io_threads = 4innodb_write_io_threads = 4innodb_purge_threads = 4innodb_page_cleaners = 4innodb_print_all_deadlocks = oninnodb_lock_wait_timeout = 20innodb_spin_wait_delay = 128innodb_autoinc_lock_mode = 2innodb_io_capacity = 200innodb_io_capacity_max = 2000#innodb_flush_neighbors = innodb_log_buffer_size = 8Minnodb_flush_log_at_timeout = 1innodb_flush_log_at_trx_commit = 2innodb_buffer_pool_size = 1024Minnodb_buffer_pool_instances = 4autocommit = 1innodb_buffer_pool_dump_pct = 25innodb_buffer_pool_dump_at_shutdown = ONinnodb_buffer_pool_load_at_startup = ON[mysqldump]quickmax_allowed_packet = 32M

2.7.4. 配置MySQL环境变量

[root@~]# echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile[root@~]# tail -1 /etc/profile[root@~]# source /etc/profile

2.7.5. testone实例初始化

 操作实例初始化

[root@~]# mysqld --defaults-file=/etc/my.cnf --initialize --basedir=/usr/local/mysql/ --user=mysql --datadir=/data/mysql/3306/data/ > /tmp/3306.log 2>&1[root@~]# tail -100f /tmp/3306.log---使用tail命令查看初始化日志,有出现如下内容,即表示初始化完成(其中#5+t+xYW+<t?即为root用户的临时密码)A temporary password is generated for root@localhost: #5+t+xYW+<t?

 生成ssl文件

[root@~]# mysql_ssl_rsa_setup --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/3306/data

 启动testone实例

[root@~]# mysqld_multi start 3306[root@~]# tail -100f /data/mysql/3306/logs/error.log ----使用tail命令查看启动日志,有出现即表示启动成功Version: '5.7.28-log' socket: '/data/mysql/3306/mysql3306.sock' port: 3306 MySQL Community Server (GPL)

 修改root密码

[root@~]# less /tmp/3306.log | grep 'A temporary password'[root@~]# mysql -uroot -p -S /data/mysql/3306/mysql3306.sockEnter password:mysql> alter user 'root'@'localhost' identified by '统一密码';mysql> flush privileges;mysql> exit;

 验证 testone root用户统一密码(界面正常输出information_schema内容表示正常)

[root@~]# mysql -uroot -p -S /data/mysql/3306/mysql3306.sock -e "show databases;" | grep information_schemaEnter password:

 修改my.cnf配置文件,将修改的统一密码,添加到配置文件中

[root@~]# sed -i "s@^#user=root@user=root@g" /etc/my.cnf[root@~]# sed -i "s@^#pass=@pass=统一密码@g" /etc/my.cnf[root@~]# cat /etc/my.cnf | grep pass= ---使用cat命令查看配置文件pass字段输出的结果是否一致

 停止testone实例

[root@~]# mysqld_multi stop 3306[root@~]# netstat -tnlp|grep 3306 ---输入结果为空表示服务停止正常

2.7.6. testtwo实例初始化

 操作实例初始化

[root@~]# mysqld --defaults-file=/etc/my.cnf --initialize --basedir=/usr/local/mysql/ --user=mysql --datadir=/data/mysql/3307/data/ > /tmp/3307.log 2>&1[root@~]# tail -100f /tmp/3307.log---使用tail命令查看初始化日志,有出现如下内容,即表示初始化完成(其中-pn>t;Ye)Ay6=I即为root用户的临时密码)A temporary password is generated for root@localhost: -pn>t;Ye)Ay6=I 生成ssl文件[root@~]# mysql_ssl_rsa_setup --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/3307/data

 启动testwo实例

[root@~]# mysqld_multi start 3307

----使用tail命令查看启动日志,有出现即表示启动成功

[root@~]# tail -100f /data/mysql/3307/logs/error.logVersion: '5.7.28-log' socket: '/data/mysql/3307/mysql3307.sock' port: 3307 MySQL Community Server (GPL)

 修改root密码

[root@~]# less /tmp/3307.log|grep 'A temporary password'[root@~]# mysql -uroot -p -S /data/mysql/3307/mysql3307.sockEnter password:mysql> alter user 'root'@'localhost' identified by '统一密码';mysql> flush privileges;mysql> exit;

 验证 testtwo root用户统一密码(界面正常输出information_schema内容表示正常)

[root@~]# mysql -uroot -p -S /data/mysql/3307/mysql3307.sock -e "show databases;" | grep information_schema

Enter password:

 停止testtwo实例

[root@~]# mysqld_multi stop 3307[root@~]# netstat -tnlp|grep 3307 ---输入结果为空表示服务停止正常

2.7.7. mysqld_multi多实例管理命令

 启动全部实例

[root@~]# mysqld_multi start

 停止单个实例

[root@~]# mysqld_multi stop 3306[root@~]# mysqld_multi stop 3307

 启动单个实例

[root@~]# mysqld_multi start 3306[root@~]# mysqld_multi start 3307

 查看全部实例的状态(is running)

[root@~]# mysqld_multi reportReporting MySQL serversMySQL server from group: mysqld3306 is runningMySQL server from group: mysqld3307 is running

 查看单个实例状态

[root@~]# mysqld_multi report 3306Reporting MySQL serversMySQL server from group: mysqld3306 is running[root@~]# mysqld_multi report 3307Reporting MySQL serversMySQL server from group: mysqld3307 is running

 停止全部实例

[root@~]# mysqld_multi stop

2.7.8. 数据导入

(1)将待导入的数据库脚本(test.sql、testtwo.sql)文件(名称根据实际情况操作)上传至/data/路径下

(2)使用命令确认两实例已经处于运行状态

[root@~]# mysqld_multi reportReporting MySQL serversMySQL server from group: mysqld3306 is runningMySQL server from group: mysqld3307 is running

(3)进入testone的mysql数据库创建testone数据库实例、用户名及密码并导入数据

[root@~]# cd /data/[root@~]# mysql -uroot -p -S /data/mysql/3306/mysql3306.sockEnter password: mysql>create database testone default character set utf8 collate utf8_bin;mysql> grant select,insert,update,delete,create,alter,execute on testone.* to 'testone'@'%' identified by '密码';mysql> flush privileges;mysql> exit[root@~]# mysql -uroot -p -S /data/mysql/3306/mysql3306.sock testone < /data/test.sql

(3)进入testtwo的mysql数据库,创建testtwo服务数据库实例、用户名与密码并导入数据

[root@~]# mysql -uroot -p -S /data/mysql/3307/mysql3307.sockEnter password:mysql> create database testtwo default character set utf8 collate utf8_bin;mysql> grant select,insert,update,delete,create,alter,execute on testtwo.* to 'testtwo'@'%' identified by '密码';mysql> flush privileges;mysql> exit[root@~]# mysql -uroot -p -S /data/mysql/3307/mysql3307.sock testtwo < /data/testtwo.sql

2.7.9. 防火墙配置

 根据实际要求,添加开放端口

[root@~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent[root@~]# firewall-cmd --zone=public --add-port=3307/tcp --permanent

 重新载入

[root@~]# firewall-cmd --reload

总结

以上所述是小编给大家介绍的CentOS7.5使用mysql_multi方式安装MySQL5.7.28多实例,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对站的支持!如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!


  • 上一条:
    Linux服务器下MariaDB 10自动化安装部署
    下一条:
    Linux环境中使用BIEE 连接SQLServer业务数据源
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在Linux系统中使用Iptables实现流量转发功能流程步骤(0个评论)
    • vim学习笔记-入门级需要了解的一些快捷键(0个评论)
    • 在centos7系统中实现分区并格式化挂载一块硬盘到/data目录流程步骤(0个评论)
    • 在Linux系统种查看某一个进程所占用的内存命令(0个评论)
    • Linux中grep命令中的10种高级用法浅析(0个评论)
    • 近期文章
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-11
    • 2017-07
    • 2017-10
    • 2017-11
    • 2018-01
    • 2018-02
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-03
    • 2022-04
    • 2022-08
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-06
    • 2023-07
    • 2023-10
    • 2023-12
    • 2024-01
    • 2024-04
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客