最近须要应用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=33070socket=/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/dataport=3307innodb_file_per_table=1character-set-server=utf8# mysql57 不要这个mysqlx_port=33070socket = /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.pidtmpdir=/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_64datadir=/usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/data# 这项默认的不必找lockdir='/var/lock/subsys'# 这项默认有然而须要在最初改个80lock_file_path="$lockdir/mysql80"# 上面两个藏在上面仔细的找一下mysqld_pid_file_path=/usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/data/mysqld.pidconf=/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~ :)
转发请注明参考文章地址,非常感谢!!!