CentOS7安装部署MySQL8二进制包

CentOS7安装部署MySQL8二进制包

以前写了MySQL5.x版本的教程,但是还没写过MySQL8.x的教程,那么今天就来写一写。

本教程主要用于CentOS7操作系统如何安装MySQL8数据库。

1.查看操作系统glibc版本

$ rpm -qa|grep glibc
glibc-devel-2.17-307.el7.1.x86_64
glibc-common-2.17-307.el7.1.x86_64
glibc-headers-2.17-307.el7.1.x86_64
glibc-2.17-307.el7.1.x86_64

2.下载对应的二进制MySQL版本

官网下载地址:https://dev.mysql.com/downloads/mysql/

这里下载的是二进制包,如果需要源码包编译,可以选择源码包。由于机器的glibc是2.17版本,所以下载相应的压缩包。

  • Select Operating System: Linux - Generic
  • Select OS Version: ALL
  • 这里我选择了 Linux - Generic (glibc 2.17) (x86, 64-bit), Compressed TAR Archive
$ wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.26-linux-glibc2.17-x86_64-minimal-rebuild.tar

如果官网下载慢,可以使用这给地址,这个镜像源列表会更新最新版本。

http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-8.0/
比如:
http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-8.0/mysql-8.0.27-linux-glibc2.17-x86_64-minimal.tar.xz

3.解压部署

居然解压嵌套,那就一步步来吧。

$ tar xf mysql-8.0.26-linux-glibc2.17-x86_64-minimal-rebuild.tar
$ mkdir mysql
$ mv mysql-8.0.26-linux-glibc2.17-x86_64-minimal-rebuild.tar.xz mysql
$ cd mysql
$ xz -d mysql-8.0.26-linux-glibc2.17-x86_64-minimal-rebuild.tar.xz
$ tar xf mysql-8.0.26-linux-glibc2.17-x86_64-minimal-rebuild.tar

移动到想要部署的目录,这里目标目录的父目录确保存在。

$ mv mysql-8.0.26-linux-glibc2.17-x86_64-minimal-rebuild ~/3rd/mysql8

4.配置环境

4.1 创建目录

创建一个存储数据和日志文件的目录

$ cd ~/3rd/mysql8
$ mkdir data
$ mkdir log

4.2 创建一个配置文件

$ vim bin/my.cnf
[mysqld]
datadir=/home/testerzhang/3rd/mysql8/data
basedir=/home/testerzhang/3rd/mysql8
socket=/home/testerzhang/3rd/mysql8/bin/mysql.sock
user=testerzhang
port=3306
character-set-server=utf8mb4
collation-server = utf8mb4_general_ci
mysqlx=0


# 禁止主机名解析
# skip_name_resolve=on
#跳过密码验证,忘记密码 可以设置,然后修改密码,再关闭
#skip-grant-tables

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd


[client]
port=3306
socket=/home/testerzhang/3rd/mysql8/bin/client.pid
default-character-set = utf8mb4

[mysqld_safe]

log-error=/home/testerzhang/3rd/mysql8/log/mysqld.log
pid-file=/home/testerzhang/3rd/mysql8/bin/mysqld.pid

4.3 初始化数据库

$ ./bin/mysqld --initialize-insecure --user=testerzhang  --basedir=/home/testerzhang/3rd/mysql8  --datadir=/home/testerzhang/3rd/mysql8/data

这里使用--initialize-insecure 参数是代表生成空密码口令。

4.4 配置环境变量并生效

配置环境变量,加入MySQL的PATH路径和LD_LIBRARY_PATH路径

$  vim ~/.bash_profile

export MYSQL_HOME=$HOME/3rd/mysql8

export PATH=$MYSQL_HOME/bin:$PATH
export LD_LIBRARY_PATH=$MYSQL_HOME/lib:$LD_LIBRARY_PATH

生效环境变量

$  source ~/.bash_profile

4.5 写个启动脚本启动

$ cd ~/3rd/mysql8/bin
$ vim startmysql.sh
./mysqld_safe --defaults-file=./my.cnf --mysqlx=0 &

$ sh -x startmysql.sh

4.6 修改root密码

$ mysql  -h127.0.0.1 -P3306 -uroot -p
mysql> use mysql;

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Testerzhang';
Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

然后使用新的密码再次连接,如果可以连接,证明修改密码没问题。

4.7 创建普通用户

MySQL8有新的安全要求,不能像之前的版本那样一次性创建用户并授权需要先创建用户,再进行授权操作

mysql> CREATE USER 'test'@'%' IDENTIFIED BY 'testerzhang';

赋予权限:

下面例子意思是:test用户可以任意主机访问,同时可以访问test数据库下。

mysql> GRANT ALL PRIVILEGES ON test.* TO 'test'@'%' WITH GRANT OPTION;
mysql> flush privileges;

5. 老mysql客户端连接数据库

# mysql -V
mysql  Ver 15.1 Distrib 5.5.68-MariaDB, for Linux (x86_64) using readline 5.1
# mysql -h10.3.3.16 -P3306 -utest -ptesterzhang
ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory

两种方法:

  1. 升级客户端
  2. 修改服务端为旧模式。

这里推荐升级客户端,以下是教程。

5.1 添加yum源

# vim /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

5.2 安装或更新

  • 如果没安装过
# yum install mariadb*
  • 如果已安装,想升级
# yum upgrade mariadb*

安装后,查看mysql客户端版本

# mysql -V
mysql  Ver 15.1 Distrib 10.2.40-MariaDB, for Linux (x86_64) using readline 5.1

5.2 再次测试连接

# mysql -h10.3.3.16 -P3306 -utest -ptesterzhang
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 8.0.26 MySQL Community Server - GPL

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]>

成功连接。


本文没有授权给任何组织、企业和个人转载,未经作者允许禁止转载!

欢迎关注我的公众号testerzhang,原创技术文章第一时间推送。

公众号二维码

updatedupdated2021-09-062021-09-06