CentOS7安装MySQL8.0版本详细步骤
一、下载 MySQL for Linux 通用二进制包
1.1 登录Oracle 软件交付云。
如果您没有帐户,请创建一个帐户。这里我就直接登录,开始下载步骤。
1.2 准备下载
登录后自动跳转到以下页面。
到这里,MySQL的下载器即下载完成,找到下载的文件目录,有个以下图标的文件。
我们打开该下载器,即可下载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;
\
转载自:https://juejin.cn/post/7118241196329631751