共计 3742 个字符,预计需要花费 10 分钟才能阅读完成。
最近须要应用 mysql8.0 版本,然而本来的 mysql5.7 版本曾经被多个服务依赖,于是想想能不能同一台服务器装多个版本的 mysql,一查的确可行,这里做一个记录不便本人前期回顾
浏览本文前请留神!!!
- 本文是帮忙您建设在
mysql5.7
版本曾经装置实现并在运行中,另外装置配置mysql8.0
版本 - 如果须要同时装置两个版本,能够先查阅我之前所写对于
mysql5.7
版本的装置,实现后再按本文持续操作即可
装置环境
CentOS7 + MySQL8.0
下载安装包
- 点击进入 MySQL Community Server 8.0.29 官网下载地址
- 点击下拉抉择
Linux - Generic
,找到名为mysql-8.0.29-linux-glibc2.12-x86_64.tar.xz
点击下载即可
简化版命令步骤
给我本人的揭示:原来的 mysql5.7
配置根本没有动,服务也没无关,上面的命令都是对于 mysql8.0
的,原 mysql5.7
的配置文件在/etc/my.cnf
-
解压 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/
- 赋予权限
chown -R mysql.mysql /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64
-
批改配置文件
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
- 赋予配置文件权限
chmod 755 /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/my.cnf
-
批改连贯服务文件
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
- 复制注册连贯服务文件
cp -i /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/support-files/mysql.server /etc/init.d/mysql80
-
初始化 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: 初始密码
- 启动 mysql80 服务
service mysql80 start
,而后要记得凋谢防火墙的 3307 端口能力应用内部连贯 - 登录
/usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/bin/mysql --socket=/tmp/mysql80.sock -u root -p'初始密码'
-
重置明码,登录后顺次执行命令
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;
-
查看占用端口
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 端口流程
cd /etc/sysconfig
进入该目录,查看是否存储了iptables
文件vim iptables
应用vim 编辑器
批改iptables
文件,按下i
进入编辑模式- 在初始端口那行上面增加
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3307 -j ACCEPT
,凋谢 3307 端口 service iptables restart
重启防火墙即可
如何 mysql80 服务启动失败
能够参考一下步骤从新初始化数据库,亲测无效
- 删除 data 文件夹
rm -rf /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/data
- 新建 data 目录
mkdir /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64/data
- 赋予权限
chown -R mysql.mysql /usr/soft/install/mysql-8.0.29-linux-glibc2.12-x86_64
- 从新初始化
/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
- 测试启动服务
service mysql80 start
,胜利即可
参考文档
- linux 下同时装置 mysql5.7 和 mysql8.0
- linux 装置两个 mysql(8.0 和 5.7),并同时应用
- tar.xz 文件如何解压
- linux mysql8 初始密码批改
- linux 下查看 mysql 端口号和批改端口号办法
我是 fx67ll.com,如果您发现本文有什么谬误,欢送在评论区探讨斧正,感谢您的浏览!
如果您喜爱这篇文章,欢送拜访我的 本文 github 仓库地址,为我点一颗 Star,Thanks~ :)
转发请注明参考文章地址,非常感谢!!!