Linux(CentOS) Mysql 8.0.30 安装(多源安装)


安装命令根据实际部署情况修改调整,CentOS一般选择通用版本Red Hat Enterprise Linux 7

本文档使用wget下载,也可以自主下载上传到服务器,非YUM安装方式

版本地址:全版本 | Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit)版本

文档更新记录:2022/09/23-MySQL Community Server最新版本号:8.0.30


1.0 CentOS7配置阿里云yum源 ,根据实际情况判断是否需要配置

1.1 在安装MySQL之前,需要卸载服务器自带的MySQL包和MySQL数据库分支mariadb的包

  1. $ rpm -qa|grep mysql
  2. $ rpm -qa |grep mariadb
  3. mariadb-libs-5.5.68-1.el7.x86_64
  4. $ rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps

1.2 下载(此处下载到/home目录下)

  1. $ wget -P /home https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.30-el7-x86_64.tar
  2. #备注:该包下面有3个子包,此文档主要介绍mysql-8.0.30-el7-x86_64.tar.gz和mysql-router-8.0.30-el7-x86_64.tar.gz
  3. 1mysql-8.0.30-el7-x86_64.tar.gz # MySQL主包,此文档使用的包
  4. 2mysql-router-8.0.30-el7-x86_64.tar.gz # 用于在应用程序和MySQL服务器之间提供透明路由和负载均衡,从而有效提高MySQL数据库服务的高可用性与可伸缩行,此处不介绍
  5. 3mysql-test-8.0.30-el7-x86_64.tar.gz # 测试包

1.3 多实例安装举例(此处安装2个实例,从7001~7002)

  1. $ groupadd mysql
  2. $ useradd -r -g mysql -s /bin/false mysql
  3. $ yum install libaio -y #如果安装失败在安装,一般不需要
  4. $ cd /home
  5. $ tar -xf mysql-8.0.30-el7-x86_64.tar
  6. $ tar -zxvf mysql-8.0.30-el7-x86_64.tar.gz
  7. $ mv mysql-8.0.30-el7-x86_64 /home/mysql
  8. $ mkdir -p /home/mysql/data/{7001,7002}
  9. $ chown -R mysql:mysql /home/mysql
  10. $ cd /home/mysql

1.3 多实例安装举例(此处安装2个实例,从7001~7002,已开启binlog,如果不是用来设置主从的话步长和起始位置设置为1就行,配置7003请忽略,用来做2主1从的配置)

  1. $ vim /etc/my.cnf
  2. [mysqld]
  3. user=mysql
  4. basedir=/home/mysql
  5. #禁止反解析IP(提高速度)
  6. skip-name-resolve
  7. [mysqld_multi]
  8. mysqld=/home/mysql/bin/mysqld_safe
  9. mysqladmin=/home/mysql/bin/mysqladmin
  10. log=/home/mysql/data/mysqld_multi.log
  11. [mysqld7001]
  12. mysqld=mysqld
  13. mysqladmin=mysqladmin
  14. datadir=/home/mysql/data/7001
  15. port=7001
  16. server_id=7001
  17. socket=/tmp/mysql_7001.sock
  18. log_error=/home/mysql/data/error_7001.log
  19. #开启binlog
  20. log_bin=mysql_bin
  21. binlog_format=ROW
  22. lower_case_table_names=1
  23. log_slave_updates=true
  24. gtid_mode=on
  25. enforce_gtid_consistency=1
  26. #不同步的表(当前_其他)
  27. binlog_ignore_db=mysql
  28. binlog_ignore_db=information_schema
  29. binlog_ignore_db=performance_schema
  30. #屏蔽同步(其他_>当前)
  31. replicate_ignore_db=mysql
  32. replicate_ignore_db=information_schema
  33. replicate_ignore_db=performance_schema
  34. #自增起始位置
  35. auto_increment_offset=1
  36. #自增步长
  37. auto_increment_increment=1
  38. [mysqld7002]
  39. mysqld=mysqld
  40. mysqladmin=mysqladmin
  41. datadir=/home/mysql/data/7002
  42. port=7002
  43. server_id=7002
  44. socket=/tmp/mysql_7002.sock
  45. log_error=/home/mysql/data/error_7002.log
  46. #开启binlog
  47. log_bin=mysql_bin
  48. binlog_format=ROW
  49. lower_case_table_names=1
  50. log_slave_updates=true
  51. gtid_mode=on
  52. enforce_gtid_consistency=1
  53. #不同步的表(当前_其他)
  54. binlog_ignore_db=mysql
  55. binlog_ignore_db=information_schema
  56. binlog_ignore_db=performance_schema
  57. #屏蔽同步(其他_>当前)
  58. replicate_ignore_db=mysql
  59. replicate_ignore_db=information_schema
  60. replicate_ignore_db=performance_schema
  61. #自增起始位置
  62. auto_increment_offset=1
  63. #自增步长
  64. auto_increment_increment=1
  65. # [mysqld7003]
  66. # mysqld=mysqld
  67. # mysqladmin=mysqladmin
  68. # datadir=/home/mysql/data/7003
  69. # port=7003
  70. # server_id=7003
  71. # socket=/tmp/mysql_7003.sock
  72. # log_error=/home/mysql/error_7003.log
  73. # #开启binlog
  74. # log_bin=mysql_bin
  75. # binlog_format=ROW
  76. # lower_case_table_names=1
  77. # log_slave_updates=true
  78. # gtid_mode=on
  79. # enforce_gtid_consistency=1
  80. # #不同步的表(当前_其他)
  81. # binlog_ignore_db=mysql
  82. # binlog_ignore_db=information_schema
  83. # binlog_ignore_db=performance_schema
  84. # #屏蔽同步(其他_>当前)
  85. # replicate_ignore_db=mysql
  86. # replicate_ignore_db=information_schema
  87. # replicate_ignore_db=performance_schema
  88. # #只读
  89. # read_only=1
  90. # innodb_read_only=1
  91. # #super_read_only=1

1.3 初始化多实例(此处要初始化2个实例,从7001~7002,忽略大小写一定要在初始化就加入,并记录下原始密码!!!记录下原始密码!!!记录下原始密码!!!,后面改密前登录使用)

  1. /home/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize --lower-case-table-names=1 --basedir=/home/mysql/ --datadir=/home/mysql/data/7001
  2. /home/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize --lower-case-table-names=1 --basedir=/home/mysql/ --datadir=/home/mysql/data/7002

1.3 设置环境变量(用于系统识别mysqld_multi、mysqladmin等命令)

  1. $ vim /etc/profile
  2. export PATH=/home/mysql/bin:$PATH
  3. $ source /etc/profile

1.5 使用mysqld_multi启动单个实例举例(7001端口),其他端口类似

  1. $ mysqld_multi start 7001

1.6 使用mysqld_multi启动全部实例

  1. $ mysqld_multi start

1.7 [推荐] 关闭单个数据库实例命令(举例7001)

  1. $ mysqladmin -S /tmp/mysql_7001.sock -p shutdown
  2. #备注:不推荐使用mysqld_multi关闭多实例,因为麻烦,需要在my.cnf文件的[mysqld_multi]模块里面配置用户密码,并且各个数据库的用户密码都需要相同,否则无法关闭

1.8 推荐使用socket登录MySQL(举例7001)

  1. $ mysql -S /tmp/mysql_7001.sock -p

1.9 使用mysqld_multi查看实例状态

  1. $ mysqld_multi report
  2. Reporting MySQL servers
  3. MySQL server from group: mysqld7001 is running
  4. MySQL server from group: mysqld7002 is running

1.10 首次登录(举例7001)必须重新设置密码才能正常使用,此处使用

  1. $ mysql -S /tmp/mysql_7001.sock -p
  2. # 修改默认root本地密码并创建远程连接用户park
  3. alter user root@localhost identified by '密码';
  4. create user 'park'@'%' identified with mysql_native_password by '密码';
  5. grant all on *.* to 'park'@'%';
  6. # 创建主从同步的用户backup
  7. create user 'backup'@'%' identified with mysql_native_password by '密码';
  8. grant replication slave on *.* to 'backup'@'%';
  9. flush privileges;
  10. exit;

1.11 如果是想配置2台服务器互为主从(需要从1.3的步骤改为 将7001配置的自增步长设置为2,自增起始位置设置为1;将7002配置的自增步长设置为2,自增起始位置设置为2,执行初始化)

  1. (7001为从7002为主)
  2. 7002上执行:
  3. # 登录数据库(获得binlog当前日志位置)
  4. $ mysql -S /tmp/mysql_7002.sock -p
  5. show master status;
  6. 得:
  7. +------------------+----------+--------------+---------------------------------------------+------------------------------------------+
  8. | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
  9. +------------------+----------+--------------+---------------------------------------------+------------------------------------------+
  10. | mysql_bin.000001 | 1650 | | mysql,information_schema,performance_schema | 4ef1f4e6-7a66-11eb-9cc0-e8611f2b6693:1-6 |
  11. +------------------+----------+--------------+---------------------------------------------+------------------------------------------+
  12. 其中:mysql_bin.000001master_log_file1650master_log_pos
  13. 7001上执行:
  14. # 登录数据库
  15. $ mysql -S /tmp/mysql_7001.sock -p
  16. change master to master_host='127.0.0.1', master_port=主库端口此处为7002, master_user='主库用户此处为backup', master_password='backup的密码', master_log_file='此处为mysql-bin.000001', master_log_pos=此处为1650 for channel "通道名称此处设置为7002-7001";
  17. flush privileges;
  18. # 启动同步,使用 show slave status\G; 查看 出现两个IO为YES即可,常用start slave;为停止同步
  19. start slave;
  20. (7002为从7001为主)
  21. 7001上执行:
  22. # 登录数据库(获得binlog当前日志位置)
  23. $ mysql -S /tmp/mysql_7001.sock -p
  24. show master status;
  25. 得:
  26. +------------------+----------+--------------+---------------------------------------------+------------------------------------------+
  27. | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
  28. +------------------+----------+--------------+---------------------------------------------+------------------------------------------+
  29. | mysql_bin.000001 | 1888 | | mysql,information_schema,performance_schema | 4af1d4e6-7a66-11eb-9ca0-e8611g2b6692:1-8 |
  30. +------------------+----------+--------------+---------------------------------------------+------------------------------------------+
  31. 其中:mysql_bin.000001master_log_file1888master_log_pos
  32. 7002上执行:
  33. # 登录数据库
  34. $ mysql -S /tmp/mysql_7002.sock -p
  35. change master to master_host='127.0.0.1', master_port=主库端口此处为7001, master_user='主库用户此处为backup', master_password='backup的密码', master_log_file='此处为mysql-bin.000001', master_log_pos=此处为1888 for channel "通道名称此处设置为7001-7002";
  36. flush privileges;
  37. # 启动同步,使用 show slave status\G; 查看 出现两个IO为YES即可,常用start slave;为停止同步
  38. start slave;
  39. # 备注:可以2台主一台从配合mysql router用,只要channel名称不同就可以同时开2个主同步到一个从
  40. 备份顺序(7001主,7002主,7003从):
  41. 7001-->7002
  42. 7002-->7001
  43. 7001->7003
  44. 7002->7003

Linux(CentOS) Mysql 8.0.30 安装(多源安装)的更多相关文章

  1. Linux\CentOS MySql 安装与配置

    一.MySQL 简介 MySQL 是一个关系型数据库管理系统,是MySQL AB公司开发,现在属于 Oracle 旗下产品. MySQL 采用标准化语言.体积小.速度快.成本低.开源等特点使得一些中小 ...

  2. linux下Mysql 8.0.19 编译安装

    1 前言 linux下安装MySQL的方式有很多种,包括以仓库的方式安装(yum,apt,zypper),以包的方式安装(rpm,deb),以docker方式安装,从压缩包解压安装,从源码编译安装,这 ...

  3. linux 搭建elk6.8.0集群并破解安装x-pack

    一.环境信息以及安装前准备 1.组件介绍 *Filebeat是一个日志文件托运工具,在你的服务器上安装客户端后,filebeat会监控日志目录或者指定的日志文件,追踪读取这些文件(追踪文件的变化,不停 ...

  4. Python3.7和数据库MySQL 8.0.12 绿色解压 安装教程(一)

    首先要安装MySQL 数据库才可以继续安装图形工具SQLyog 第一步:下载解压包>> MYSQL官网地址:https://dev.mysql.com/downloads/file/?id ...

  5. win10下MYSQL 8.0.16的下载、安装以及配置

    win10系统MySQL 8.0的下载安装超详细教程 https://blog.csdn.net/qq_34444097/article/details/82315587 下载安装配置链接:https ...

  6. 重要参考文档---MySQL 8.0.29 使用yum方式安装,开启navicat远程连接,搭建主从,读写分离(需要使用到ProxySQL,此文不讲述这个)

    yum方式安装 echo "删除系统默认或之前可能安装的其他版本的 mysql" for i in $(rpm -qa|grep mysql);do rpm -e $i --nod ...

  7. [Linux] 无法访问国外网站,完成epel源安装的解决办法--待续

    一.缘由: 由于一个机房的网络限制,无法访问国外IP地址,在安装一些开源软件的时候比如smokeping.ansible就无法从epel源在线安装, 编译安装的话,又需要安装各种依赖,麻烦的一逼.所以 ...

  8. linux下mysql 8.0安装

    安装本身同mysql 5.7,仍然建议使用tar.gz解压版,而非rpm安装包版. mysql已经将之前的mysql_native_password认证,修改成了caching_sha2_passwo ...

  9. (0.2.4)Mysql安装——yum源安装

    转自:https://www.cnblogs.com/jimboi/p/6405560.html Centos6.8通过yum安装mysql5.7 1.下载好对应版本的yum源文件 2.安装用来配置m ...

  10. Python3.7和数据库MySQL 8.0.12 数据库数据驱动mysql-connector安装(四)

    安装mysql-connector驱动 在系统CMD输入命令: pip install mysql-connector 示例: 创建数据库 # 导入驱动 import mysql.connector ...

随机推荐

  1. [cocos2d-x]关于定时器

    什么是定时器 定时器的作用就是每隔一段时间,就执行一段自定义的动作,比如飞机向前方移动,子弹的移动等等.该函数定义在CCNode头文件中,基本上cocos2dx中所有的东西都能够使用定时器. 定时器的 ...

  2. 【白话模电1】PN结与二极管

    距离上一次写半导体,已经过了很久了,上次分享了本征半导体的基本概念: https://zhuanlan.zhihu.com/p/109483580 今天给大家聊聊半导体工业中的基础:PN结与二极管 1 ...

  3. Springboot+Dplayer+RabbitMQ实现视频弹幕延时入库

    编写之初,在网上找了很多关于springboot整合dplayer实现弹幕的方式,发现案例很少,然后自己就着手写一个小项目,分享给大家~ 注:Dplayer版本:v1.22.2 流程:前端自定义弹幕发 ...

  4. Unity_UIWidgets - 组件Drawer

    Unity_UIWidgets - 组件Drawer 组件Drawer Drawer 构造 代码 效果 Drawer使用完毕 结语 图标Icon QQ 今日无推荐 组件Drawer 各位伙伴,周日愉快 ...

  5. 【分析笔记】DW7888 马达驱动芯片待机模式漏电流过高的问题

    发现问题 客户反馈说我们的硬件关机漏电流很大,但是拔掉电池之后再上电(仍处于关机状态)就会恢复为 16~20uA 左右.这让我也讶异,因为亲自测试过,漏电流只有 MCU 的休眠电流 16~20uA 左 ...

  6. java基础(六):面向对象

    面向对象 面向对象:以类的方式组织代码,以对象组织数据 特性: 封装 继承 多态 类:抽象概念 对象:具体事物 面向对象是java学习的重中之重,毕竟java就是一个面向对象的语言~ 类 = 属性+方 ...

  7. 基于遗传算法的地图四色原理绘图上色的Python代码

      本文介绍利用Python语言,实现基于遗传算法(GA)的地图四色原理着色操作. 1 任务需求   首先,我们来明确一下本文所需实现的需求.   现有一个由多个小图斑组成的矢量图层,如下图所示.   ...

  8. 面向对象程序设计(三):new&deleet什么是动态内存

    <C++ primer>中提到:在C++中,动态内存的管理是通过一对运算符来完成的: new 在内存池中为对象分配一块空间,并指向这个对象的指针,我们可以在这里对对象进行初始化: dele ...

  9. Typora下载与安装 0.9.75版本

    Typora下载与安装 效果图 一.简介 一款 Markdown 编辑器和阅读器 (0.9.75 版本 不需购买) 二.下载 下载地址:Typora 三.安装 1.下载文件后双击安装 2. 选择存放的 ...

  10. el-transfer 数据量过大加载慢卡顿解决办法:el-transfer虚拟滚动懒加载的实现

    参考链接 1)https://github.com/GreenHandLittleWhite/blog/issues/152)https://github.com/GreenHandLittleWhi ...