分别在 mysql官网 下载 mysql5.7 和 mysql 8.0
在这里插入图片描述
2. 解压
mysql5.7 解压到 /usr/local/mysql57,mysql8.0 解压到 /usr/local/mysql80
3. 添加配置文件
分别在mysql57 和 mysql80 目录下 创建一个 my.cnf 文件,
并修改权限: chmod 755 /usr/local/mysql80/my.cnf
#mysql80目录下的my.cnf,mysql57 下的将对应的 mysql 后面的 80 改成 57,修改端口号为 3305(随意,不被占用就行), 删掉标注不要的内容 即可
[client]
port=3308
#mysql57 不要这个
mysqlx_port=33080
socket=/tmp/mysql80.sock
#mysql57 不要这个
mysqlx_socket=/tmp/mysqlx80.sock[mysqld]
skip-grant-tables
#mysql安装目录
basedir=/usr/local/mysql80
#mysql数据库目录
datadir=/usr/local/mysql80/data
port=3308
#mysql57 不要这个
mysqlx_port=33080
socket = /tmp/mysql80.sock
#mysql57 不要这个
mysqlx_socket=/tmp/mysqlx80.sock[mysqld_safe]
#错误日志
log-error=/usr/local/mysql80/data/error.log
#pid文件
pid-file=/usr/local/mysql80/data/mysqld.pid
tmpdir=/tmp/mysql80
修改文件 /usr/local/mysql80/support-files/mysql.server 中的如下内容,并将修改后的文件复制到 /etc/init.d 目录,并重命名为 mysql80(mysql57同理)
basedir=/usr/local/mysql80
datadir=/usr/local/mysql80/data
lockdir='/var/lock/subsys'
lock_file_path="$lockdir/mysql80"
mysqld_pid_file_path=/usr/local/mysql80/data/mysqld.pid
conf=/usr/local/mysql80/my.cnf
4. 添加用户和用户组,修改目录所有者
groupadd mysql;
useradd mysql -g mysql;
chown mysql:mysql /usr/local/mysql57;
chown mysql:mysql /usr/local/mysql80;
5. 初始化(mysql57 同理)
/usr/local/mysql80/bin/mysqld --defaults-file=/usr/local/mysql80/my.cnf --user=mysql --initialize
会得到一个密码
在这里插入图片描述
6. 启动 mysql 服务(mysql57 同理)
service mysql80 start
7. 登录(mysql57 同理)
/usr/local/mysql80/bin/mysql --socket=/tmp/mysql80.sock -uroot -p‘fQg-?/h1kfi:’
8. 修改密码(mysql57 同理)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)mysql> alter user root identified with mysql_native_password by '123456';
Query OK, 0 rows affected (0.00 sec)mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -ADatabase changed
mysql> update user set host='%' where user='root' and host='localhost';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)mysql> exit
Bye
9. mysql80 端口为 0 问题
停止服务
service mysql80 stop
修改 /usr/local/mysql80/my.cnf
将 [mysqld] 下的 skip-grant-tables 注释
重新启动服务
service mysql80 start