您好,欢迎访问代理记账网站
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

Linux 下 MySQL 8.0版本的安装以及部署的详细步骤(超完整)

准备工作

  • 操作系统:Linux CentOS 7.9

  • MySQL安装包:在官网下载需要的版本,这里我用的版本是 MySQL 8.0.11
    mysql-8.0.11-linux-glibc2.12-x86_64.tar

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

  • 最好使用管理员权限 (root 用户)

    su root

开始

将安装包上传至服务器 解压到当前文件夹:

tar -xvf mysql-8.0.11-linux-glibc2.12-x86_64.tar
tar -zxvf mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz

移动解压后的目录到目标安装目录:

sudo mv mysql-8.0.11-linux-glibc2.12-x86_64 /usr/local

文件名太长,改成 mysql-8.0.11:

mv mysql-8.0.11-linux-glibc2.12-x86_64 mysql-8.0.11

增加用户组 mysql:

sudo groupadd mysql

在用户组下增加用户 mysql:

sudo useradd -r -g mysql mysql

检查用户组、用户是否存在:

groups mysql

若存在则显示 mysql : mysql ;若不存在,则显示 groups: mysql: No such user

将安装目录 /usr/local/mysql-8.0.11/ 的所有者及所属组改为 mysql:

chown -R mysql:mysql /usr/local/mysql-8.0.11/

修改配置文件 my.cnf:

touch /etc/my.cnf
vim /etc/my.cnf

增加配置,设置编码格式及忽略大小写:

[mysqld]
basedir=/usr/local/mysql-8.0.11
datadir=/usr/local/mysql-8.0.11/data
port=3306
socket=/tmp/mysql.sock
character_set_server=utf8
lower_case_table_names=1
log-error=/usr/local/mysql-8.0.11/data/mysql.log
pid-file=/usr/local/mysql-8.0.11/data/mysql.pid
[mysql]
default-character-set = utf8

注意: MySQL 8.0 版本的忽略大小写配置 lower_case_table_names=1 一定要在执行初始化前写在配置文件里,我之前遇到过这坑,当时像用 5.7 版本一样先初始化然后再改的配置文件,导致 mysql 无法启动,所以不同版本间的差异一定要注意!

在 mysql-8.0.11 目录下创建一个 data 文件夹:

cd mysql-8.0.11
mkdir data

初始化:

./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-8.0.11/ --datadir=/usr/local/mysql-8.0.11/data/

如果出现以下错误:
./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
./bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory

执行以下命令后重试:
yum install libaio
yum -y install numactl

将mysql加入到可控制启动服务的文件夹内,并命名mysql(service可控制的服务名):

目的:可用 service mysql start命令来控制启动 mysql

cd support-files
cp mysql.server /etc/init.d/mysql

配置环境变量:

vim /etc/profile

在底部添加以下内容:

export MYSQL_HOME="/usr/local/mysql-8.0.11"
export PATH="$PATH:$MYSQL_HOME/bin"

让修改的profile文件立即生效:

source /etc/profile

启动并登录 mysql 进行操作

启动 mysql:

service mysql start

登录 mysql:

mysql -u root -p

初始密码可以查看 /usr/local/mysql-8.0.11/data/mysql.log 日志文件,在前面几行中找到生成的密码,如下所示:
[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: dOwfzj.Fj7KC
拿到密码 dOwfzj.Fj7KC 登录 mysql ~

修改密码:

mysql> use mysql;
mysql> ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘你的密码’;
mysql> flush privileges;

注意: 还是版本的差异问题,MySQL 8.0 版本与 5.7 版本修改密码的命令以及下面的授权命令都有或多或少的不同,一定要注意!

创建用户并授权(可根据自己的需求自由设置):

mysql> create user ‘root’@’%’ identified by ‘你的密码’;
mysql> grant all privileges on *.* to ‘root’@’%’;
mysql> flush privileges;

注意: MySQL 5.7 版本只需一行命令即可完成,8.0 版本需要拆分成两行!

允许使用某个用户名及密码从任何主机连接到该 mysql 服务:

注意: 上一步骤创建的 root 用户在创建时就已完成该设置,可根据需求查看 mysql.user 表中的 host 列来判断是否需要执行此设置,这里还是以 root 用户为例!

mysql> use mysql;
mysql> update user set host=’%’ where user = ‘root’;
mysql> flush privileges;

退出后重启服务:

mysql> exit

service mysql restart

到此结束

现在 MySQL 的安装、配置和部署已经完成,可以连接了!


分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进