一、下载 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 = 10000Restart=on-failure
​
RestartPreventExitStatus=1# Set environment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1PrivateTmp=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;

\