likes
comments
collection
share

CentOS7安装MySQL8.0版本详细步骤

作者站长头像
站长
· 阅读数 7

一、下载 MySQL for Linux 通用二进制包

1.1 登录Oracle 软件交付云

如果您没有帐户,请创建一个帐户。这里我就直接登录,开始下载步骤。

CentOS7安装MySQL8.0版本详细步骤

1.2 准备下载

登录后自动跳转到以下页面。

CentOS7安装MySQL8.0版本详细步骤

CentOS7安装MySQL8.0版本详细步骤

CentOS7安装MySQL8.0版本详细步骤

CentOS7安装MySQL8.0版本详细步骤

CentOS7安装MySQL8.0版本详细步骤

到这里,MySQL的下载器即下载完成,找到下载的文件目录,有个以下图标的文件。

CentOS7安装MySQL8.0版本详细步骤

我们打开该下载器,即可下载MySQL的二进制安装包。

下载之后的文件,就是我们上面选择的 V1020516-01.zip 文件,我们需要解压文件。将解压后文件中的mysql-commercial-8.0.29-linux-glibc2.12-x86_64.tar.xz上传到Linux上进行安装。

二、安装 MySQL

2.1 安装前提

2.1.1 以root用户登录CentOS7
2.1.2 安装依赖库
$ yum install libaio
$ yum install ncurses-compat-libs

2.2 创建 mysql 用户和组

# 添加 mysql 组
$ groupadd -g 27 -o -r mysql

# 添加 mysql 用户
$ useradd -M -N -g mysql -o -r -d datadir -s /bin/false -c "MySQL Server" -u 27 mysql

2.3 解包分发

说明:我们将上面的安装包 mysql-commercial-8.0.29-linux-glibc2.12-x86_64.tar.xz 文件上传到 /usr/local 目录下面。

$ cd /usr/local
$ tar xvf mysql-commercial-8.0.29-linux-glibc2.12-x86_64.tar.xz
# 为了后面操作方便,我们创建一个软链接
$ ln -s mysql-commercial-8.0.29-linux-glibc2.12-x86_64 mysql
# 设置PATH
$ export PATH=/usr/local/mysql/bin:$PATH

至此,MySQL 即安装完成。

三、安装后的设置

3.1 为导入和导出操作创建安全目录

$ cd /usr/local/mysql  
$ mkdir mysql-files
$ chown mysql:mysql mysql-files
$ chmod 750 mysql-files

3.2 配置服务器启动选项

$ cd /etc
$ touch my.cnf
$ chown root:root my.cnf  
$ chmod 644 my.cnf

# 编辑 my.cnf 文件并输入以下内容
$ vim my.cnf
# 输入内容
    [mysqld]
    datadir=/usr/local/mysql/data
    socket=/tmp/mysql.sock
    port=3306
    # 这里注意一下:后面MySQL启动后的初始密码即在该文件中 是 A temporary passwords...最后随机那一串
    log-error=/usr/local/mysql/data/localhost.localdomain.err
    user=mysql
    secure_file_priv=/usr/local/mysql/mysql-files
    local_infile=OFF

3.3 初始化数据目录

$ cd /usr/local/mysql
$ mkdir data
$ chmod 750 data
$ chown mysql:mysql data

$ cd /usr/local/mysql
$ bin/mysqld --defaults-file=/etc/my.cnf --initialize

3.4 使用 systemd 启动服务器

1、首先创建 mysql 服务

$ cd /usr/lib/systemd/system
$ touch mysqld.service
$ chmod 644 mysqld.service

2、编辑 mysqld.service 文件,输入以下内容。

[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql

# Have mysqld write its state to the systemd notify socket
Type=notify

# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0

# Start main service
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf $MYSQLD_OPTS 

# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql

# Sets open_files_limit
LimitNOFILE = 10000

Restart=on-failure

RestartPreventExitStatus=1

# Set environment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1

PrivateTmp=false

开启一些必要的系统设置。

# 开启开机自动启动服务
$ systemctl enable mysqld.service
Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service 
to /usr/lib/systemd/system/mysqld.service.

# 启动mysql服务
$ systemctl start mysqld

# 查看 mysql 状态
$ systemctl status mysqld

3.5 重置 MySQL root 帐户密码

上面随机生成的密码明显是不合适的。

$ cd /usr/local/mysql 
$ bin/mysql -u root -p
# 这里输入生成的随机密码,在上面 my.cnf 中设置的log-error=.../localhost.localdomain.err文件中查看
Enter password: (enter the random root password here)

这里,即进入了mysql操作命令

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '这里是我们自定义的密码';

到这里,MySQL即完全安装完成。不过此时,我们只能在本地访问数据库,若需要远程访问数据库,还需要设置所有客户端都可以访问。

3.6 MySQL err:1130

mysql> use mysql;
# 让所有的主机,使用root用户都可以连接数据库
mysql> update user set host = ‘%' where user =’root’;

mysql> flush privileges;

\