Linux系统同时安装MySQL5.7和MySQL8.0
安装介质下载地址:https://downloads.mysql.com/archives/community/
安装包上传目录:/data/software
1.MySQL5.7安装步骤
1.1、先将安装包解压并创建软链接
cd /data/software
tar -xvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
ln -s /data/software/mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql57
1.2在MySQL安装目录下创建存储数据库数据的新目录data/:
cd /usr/local/mysql57/
mkdir data
1.3编辑my.cnf文件并赋予执行权限(8.0和5.7不一样):
cd /usr/local/mysql57/
vim my.cnf
[mysqld]
basedir=/usr/local/mysql57/
datadir=/usr/local/mysql57/data/
port=3306
socket=/tmp/mysql57.sock
log-bin=/usr/local/mysql57/mysql-bin
server-id=2
[mysqld_safe]
log-error=/usr/local/mysql57/data/error.log
pid-file=/usr/local/mysql57/data/mysqld.pid
tmpdir=/tmp/mysql57
1.4chmod 755 my.cnf
1.5修改/usr/local/mysql57/support-files/mysql.server文件:
vim /usr/local/mysql57/support-files/mysql.server
…
46 basedir=/usr/local/mysql57
47 datadir=/usr/local/mysql57/data
…
57 lockdir=’/var/lock/subsys’
58 lock_file_path="$lockdir/mysql57"
…
63 mysqld_pid_file_path=/usr/local/mysql57/data/mysqld.pid
…
66 basedir=/usr/local/mysql57
67 bindir=/usr/local/mysql57/bin
…
70 datadir=/usr/local/mysql57/data
…
72 sbindir=/usr/local/mysql57/bin
73 libexecdir=/usr/local/mysql57/bin
…
207 conf=/usr/local/mysql57/my.cnf
1.6将修改之后的文件复制到/etc/init.d/目录,再将复制过去的文件重命名为mysql57
cp /usr/local/mysql57/support-files/mysql.server /etc/init.d/
mv /etc/init.d/mysql.server /etc/init.d/mysql57
1.7添加mysql用户和用户组,修改MySQL安装目录的所有者:
groupadd mysql
useradd mysql -g mysql
chown -R mysql:mysql /usr/local/mysql57/
1.8初始化MySQL5.7
/usr/local/mysql57/bin/mysqld --defaults-file=/usr/local/mysql57/my.cnf --user=mysql --initialize
MySQL5.7就算是安装完毕了。
1.9启动MySQL5.7
service mysql57 start
1.10登录MySQL5.7
socket本地登录:
/usr/local/mysql57/bin/mysql -S/tmp/mysql57.sock -uroot -p
tcp/ip登录:
/usr/local/mysql57/bin/mysql -uroot -p -h127.0.0.1 -P3306
ln -s /usr/local/mysql57/bin/mysql /usr/bin
mv /usr/bin/mysql /usr/bin/mysql57
1.11查看MySQL版本号以及更改root用户的默认密码
测试一下,查看安装的MySQL版本号
mysql57 -V
登录(输入密码不显示,直接粘贴原先的初始化密码回车就行)
mysql57 -uroot -p -S/tmp/mysql57.sock
更改root用户的默认密码为123456
mysql> set password for ‘root’@‘localhost’=‘123456’;
#退出
mysql> exit
2.MySQL8.0安装步骤
2.1先将安装包解压并创建软链接
cd /data/software
tar -xvf mysql-8.0.26-el7-x86_64.tar.gz
ln -s /data/software/mysql-8.0.26-el7-x86_64 /usr/local/mysql80
2.2在MySQL安装目录下创建存储数据库数据的新目录data/:
cd /usr/local/mysql80/
mkdir data
2.3新建编辑my.cnf文件并赋予执行权限(MySQL8.0的配置文件):
cd /usr/local/mysql80/
vim my.cnf
[mysqld]
basedir=/usr/local/mysql80/
datadir=/usr/local/mysql80/data/
port=3307
socket=/tmp/mysql80.sock
character-set-server=UTF8MB4
symbolic-links=0
log-bin=/usr/local/mysql80/mysql-bin
server-id=1
gtid_mode=on
enforce_gtid_consistency=on
[mysqld_safe]
log-error=/usr/local/mysql80/data/error.log
pid-file=/usr/local/mysql80/data/mysqld.pid
tmpdir=/tmp/mysql80
chmod 755 my.cnf
2.4对照以下内容,修改/usr/local/mysql80/support-files/mysql.server文件:
vim /usr/local/mysql80/support-files/mysql.server
……
46 basedir=/usr/local/mysql80
47 datadir=/usr/local/mysql80/data
……
58 lock_file_path="$lockdir/mysql80"
63 mysqld_pid_file_path=/usr/local/mysql80/data/mysqld.pid
……
66 basedir=/usr/local/mysql80
67 bindir=/usr/local/mysql80/bin
……
70 datadir=/usr/local/mysql80/data
71 fi
72 sbindir=/usr/local/mysql80/bin
73 libexecdir=/usr/local/mysql80/bin
……
207 conf=/usr/local/mysql80/my.cnf
2.5将修改之后的文件复制到/etc/init.d/目录,再将复制过去的文件重命名为mysql80:
cp /usr/local/mysql80/support-files/mysql.server /etc/init.d/
mv /etc/init.d/mysql.server /etc/init.d/mysql80
2.6修改MySQL安装目录的所有者:
chown -R mysql:mysql /usr/local/mysql80/
2.7初始化MySQL8.0,记得保存如下图框出来位置的初始化密码,登录的时候要用这个密码登录:
/usr/local/mysql80/bin/mysqld --defaults-file=/usr/local/mysql80/my.cnf --user=mysql --initialize
MySQL8.0就算是安装完毕了。
2.8启动MySQL8.0(输入密码不显示,直接粘贴原先的初始化密码就行)
service mysql80 start
2.9登录MySQL8.0
因为要同时安装5.7和8.0,所以要选择登录的是哪个目录下的MySQL,8.0的目录是mysql80、端口号是3307。这些内容都是在配置文件中定义的。指定本地IP是使用tcp/ip方式登录,也可以通过指定socket文件的方式登录。
socket本地登录:
/usr/local/mysql80/bin/mysql -S/tmp/mysql80.sock -u root -p
tcp/ip登录:
/usr/local/mysql80/bin/mysql -u root -p -h 127.0.0.1 -P 3307
2.10配置使用mysql80登录:
ln -s /usr/local/mysql80/bin/mysql /usr/bin
mv /usr/bin/mysql /usr/bin/mysql80
2.11查看安装的MySQL版本号以及登录
mysql80 -V
mysql80 -uroot -p -S/tmp/mysql80.sock
修改root用户的密码为:123456
mysql> set password for ‘root’@‘localhost’=‘123456’;
#退出
mysql> exit
2.12允许其他所有机器连接本机MySQL8.0
mysql> use mysql;
mysql> update user set host=’%’ where user=‘root’ and host=‘localhost’; #允许所有机器连接本虚拟机的MySQL
mysql> flush privileges; #刷新权限
mysql> select user,host from user;
安装完成后,检查MySQL5.7 MySQL8.0服务是否启动
[root@node1 software]# ps -ef|grep mysqld|grep -v grep
root 14596 1 0 00:27 pts/0 00:00:00 /bin/sh /usr/local/mysql57//bin/mysqld_safe --datadir=/usr/local/mysql57/data/ --pid-file=/usr/local/mysql57/data/mysqld.pid
mysql 14799 14596 1 00:27 pts/0 00:01:06 /usr/local/mysql57/bin/mysqld --basedir=/usr/local/mysql57/ --datadir=/usr/local/mysql57/data --plugin-dir=/usr/local/mysql57//lib/plugin --user=mysql --log-error=/usr/local/mysql57/data/error.log --pid-file=/usr/local/mysql57/data/mysqld.pid --socket=/tmp/mysql57.sock --port=3306
root 15194 1 0 00:31 pts/0 00:00:00 /bin/sh /usr/local/mysql80//bin/mysqld_safe --datadir=/usr/local/mysql80/data/ --pid-file=/usr/local/mysql80/data/mysqld.pid
mysql 15443 15194 4 00:31 pts/0 00:02:50 /usr/local/mysql80/bin/mysqld --basedir=/usr/local/mysql80/ --datadir=/usr/local/mysql80/data --plugin-dir=/usr/local/mysql80//lib/plugin --user=mysql --log-error=/usr/local/mysql80/data/error.log --pid-file=/usr/local/mysql80/data/mysqld.pid --socket=/tmp/mysql80.sock --port=3307




