1. 分别在 mysql官网 下载 mysql5.7 和 mysql 8.0
2. 解压
mysql5.7 解压到 /usr/local/mysql57,mysql8.0 解压到 /usr/local/mysql80
tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz /usr/local/mysql57
tar -xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz /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
#不区分大小写设置
lower-case-table-names=1
[mysqld_safe]
#错误日志
log-error=/usr/local/mysql80/data/error.log
#pid文件
pid-file=/usr/local/mysql80/data/mysqld.pid
tmpdir=/tmp/mysql80
2.修改文件 /usr/local/mysql80/support-files/mysql.server 中的如下内容,并将修改后的文件复制到 /etc/init.d 目录,并重命名为 mysql80(mysql57同理)
vi support-files/mysql.server
指定地址和配置文件的位置:
改1:并删掉下面的conf=/etc/my.cnf
basedir=/usr/local/mysql80
datadir=/usr/local/mysql80/data
conf=/usr/local/mysql80/my.cnf
改2:加 extra_args="-c $conf"
改3:$bindir/mysqld_safe --defaults-file="$conf" --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &
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 --lower-case-table-names=1
会得到一个密码
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 -A
Database 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: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
9. mysql80 端口为 0 问题
1、停止服务
service mysql80 stop
2、修改 /usr/local/mysql80/my.cnf
将 [mysqld] 下的 skip-grant-tables 注释
3、重新启动服务
service mysql80 start
MySQL
一、启动方式
1、使用 service 启动:service mysqld start
2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start
3、使用 mysq 脚本启动:sudo /etc/init.d/mysql start
4、使用 safe_mysqld 启动:safe_mysqld&
二、停止
1、使用 service 停止:service mysqld stop
2、使用 mysqld 脚本停止:/etc/inint.d/mysqld stop
3、使用 mysq 脚本停止:sudo /etc/init.d/mysql stop
4、mysqladmin shutdown
三、重启
1、使用 service 启动:service mysqld restart
2、使用 mysqld 脚本启动:/etc/inint.d/mysqld restart
3、使用 mysq 脚本启动:sudo /etc/init.d/mysql restart