关于mysql:详解在Linux中同时安装配置并使用-MySQL57-和-MySQL80

5次阅读

共计 3742 个字符,预计需要花费 10 分钟才能阅读完成。

最近须要应用 mysql8.0 版本,然而本来的 mysql5.7 版本曾经被多个服务依赖,于是想想能不能同一台服务器装多个版本的 mysql,一查的确可行,这里做一个记录不便本人前期回顾

浏览本文前请留神!!!

  1. 本文是帮忙您建设在 mysql5.7 版本曾经装置实现并在运行中,另外装置配置 mysql8.0 版本
  2. 如果须要同时装置两个版本,能够先查阅我之前所写对于 mysql5.7 版本的装置,实现后再按本文持续操作即可

装置环境

CentOS7 + MySQL8.0

下载安装包

  1. 点击进入 MySQL Community Server 8.0.29 官网下载地址
  2. 点击下拉抉择 Linux - Generic,找到名为 mysql-8.0.29-linux-glibc2.12-x86_64.tar.xz 点击下载即可

简化版命令步骤

给我本人的揭示:原来的 mysql5.7 配置根本没有动,服务也没无关,上面的命令都是对于 mysql8.0 的,原 mysql5.7 的配置文件在/etc/my.cnf

  1. 解压 xz 文件为 tar 文件,留神命令无过程显示须要期待窗口跳至下一行

    • xz -d /usr/soft/sort/mysql-8.0.29-linux-glibc2.12-x86_64.tar.xz -C /usr/soft/sort/
    • tar -xvf /usr/soft/sort/mysql-8.0.29-linux-glibc2.12-x86_64.tar -C /usr/soft/install/
  2. 赋予权限 chown -R mysql.mysql /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64
  3. 批改配置文件 vi /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/my.cnf

    [client]
    port=3307
    # mysql57 不要这个
    mysqlx_port=33070
    socket=/tmp/mysql80.sock
    # mysql57 不要这个
    mysqlx_socket=/tmp/mysqlx80.sock
    
    [mysqld]
    # skip-grant-tables
    # mysql 装置目录
    basedir=/usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64
    # mysql 数据库目录
    datadir=/usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/data
    port=3307
    innodb_file_per_table=1
    character-set-server=utf8
    # mysql57 不要这个
    mysqlx_port=33070
    socket = /tmp/mysql80.sock
    # mysql57 不要这个
    mysqlx_socket=/tmp/mysqlx80.sock
    
    [mysqld_safe]
    # 谬误日志
    log-error=/usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/data/error.log
    # pid 文件
    pid-file=/usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/data/mysqld.pid
    tmpdir=/tmp/mysql80
  4. 赋予配置文件权限 chmod 755 /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/my.cnf
  5. 批改连贯服务文件 vi /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/support-files/mysql.server

    # 这两项在结尾比拟好找
    basedir=/usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64
    datadir=/usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/data
    
    # 这项默认的不必找
    lockdir='/var/lock/subsys'
    
    # 这项默认有然而须要在最初改个 80
    lock_file_path="$lockdir/mysql80"
    
    # 上面两个藏在上面仔细的找一下
    mysqld_pid_file_path=/usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/data/mysqld.pid
    conf=/usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/my.cnf
  6. 复制注册连贯服务文件 cp -i /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/support-files/mysql.server /etc/init.d/mysql80
  7. 初始化 mysql80 /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/bin/mysqld --defaults-file=/usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/my.cnf --user=mysql --initialize

    • root@localhost: 初始密码
  8. 启动 mysql80 服务 service mysql80 start,而后要记得凋谢防火墙的 3307 端口能力应用内部连贯
  9. 登录 /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/bin/mysql --socket=/tmp/mysql80.sock -u root -p'初始密码'
  10. 重置明码,登录后顺次执行命令

    • flush privileges;
    • 留神:新版本 mysql8 后,不再反对 password()办法,只能通过 alter语句进行批改
    • ALTER USER 'root'@'localhost' IDENTIFIED BY '你的明码';
    • 如果不行能够试试 ALTER USER 'root'@'%' IDENTIFIED BY '你的明码';
    • use mysql;
    • update user set host='%' where user='root' and host='localhost';
    • flush privileges;
  11. 查看占用端口show global variables like 'port';,如果发现为 0,须要执行以下步骤批改

    • 进行服务:service mysql80 stop
    • 批改配置文件:vi /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/my.cnf,将 [mysqld] 下的 skip-grant-tables 正文
    • 重新启动服务:service mysql80 start

开启 3307 端口流程

  1. cd /etc/sysconfig进入该目录,查看是否存储了 iptables 文件
  2. vim iptables应用 vim 编辑器 批改 iptables 文件,按下 i 进入编辑模式
  3. 在初始端口那行上面增加-A INPUT -p tcp -m state --state NEW -m tcp --dport 3307 -j ACCEPT,凋谢 3307 端口
  4. service iptables restart重启防火墙即可

如何 mysql80 服务启动失败

能够参考一下步骤从新初始化数据库,亲测无效

  1. 删除 data 文件夹 rm -rf /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/data
  2. 新建 data 目录 mkdir /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/data
  3. 赋予权限 chown -R mysql.mysql /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64
  4. 从新初始化 /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/bin/mysqld --defaults-file=/usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/my.cnf --user=mysql --initialize
  5. 测试启动服务 service mysql80 start,胜利即可

参考文档

  1. linux 下同时装置 mysql5.7 和 mysql8.0
  2. linux 装置两个 mysql(8.0 和 5.7),并同时应用
  3. tar.xz 文件如何解压
  4. linux mysql8 初始密码批改
  5. linux 下查看 mysql 端口号和批改端口号办法

我是 fx67ll.com,如果您发现本文有什么谬误,欢送在评论区探讨斧正,感谢您的浏览!
如果您喜爱这篇文章,欢送拜访我的 本文 github 仓库地址,为我点一颗 Star,Thanks~ :)
转发请注明参考文章地址,非常感谢!!!

正文完
 0