CentOS7 安装mysql8.0.13

260 阅读3分钟

一、工具准备

1.下载mysql8.0.13版本(这是我安装时使用的版本),下载地址:MySQL :: Download MySQL Community Server

1.1

1.2

选择和系统位数一致的版本下载

  1. CentOS 7 系统

3.VM Ware14

  1. 将下载的mysql8安装包上传到/home/apps(因个人习惯,所以建了一个apps专门存放软件,找起来方便),解压
tar -Jxvf mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz

二、安装

1.由于解压后的文件夹名字太长,所以修改名字,方便后面操作

mv mysql-8.0.13-linux-glibc2.12-x86_64 mysql8

2.创建用户组(必须)

groupadd mysql useradd -g mysql mysql

貌似这里必须创建名称为mysql 的用户组,当初因为这一步搞了一下午,mysql出于安全考虑这样设计。

3.设置目录权限

chown -R mysql.mysql /home/apps/mysql8

4.修改/etc/my.cnf文件

[mysqld]

basedir=/home/apps/mysql8
datadir=/home/apps/mysql8/data
port=3306

[mysql_safe]
log-error=/home/apps/mysql8/logs/mysql.log
pid-file=/home/apps/mysql8/mysql.pid

路径根据自己安装mysql 的情况修改

5.创建data文件夹,创建log,pid文件

创建data文件夹

cd mysql; 
mkdir data;

创建log和pid

vi /home/apps/mysql8/logs/mysql.log  # 空文件即可,保存退出,修改权限
chown -R mysql /home/apps/mysql8/logs/
chgrp -R mysql /home/apps/mysql8/logs/

vi /home/apps/mysql8/mysqld.pid  # 保存退出,修改权限
chown -R mysql  /home/apps/mysql8/mysql.pid
chgrp -R mysql  /home/apps/mysql8/mysql.pid

6.初始化mysql

cd /home/apps/mysql8/bin;

./mysqld --initialize --user=mysql \
--basedir=/home/apps/mysql8/ \
--datadir=/home/apps/mysql8/data

初始化后将会生成一个随机密码,显示如下,将其保存,第一次登陆mysql需要使用

7.进入mysql安装目录下的support-files目录下,将support-files/mysql.server 复制到/etc/init.d/mysql中,以完成自启动mysql

cd /home/apps/mysql8/support-files/ 
cp mysql.server /etc/init.d/mysql 
chmod +x /etc/init.d/mysql # 同时不要忘了设置权限

8.设置mysql开机自启

chkconfig --add mysql

9.创建软连接(建议添加)

ln -s /home/apps/mysql8/bin/mysql /usr/bin 
# 需要注意创建软连接需要使用全路径 

10.启动mysql服务

service mysql start

11.登陆mysql及修改密码

mysql -u root -p
# 然后使用刚刚的随机密码即可登陆,
# 登陆后第一件事当然是修改密码,那一串乱七八糟的密码谁记得住
ALTER user 'root'@'localhost' IDENTIFIED BY 'newpassword'; 
# newpassword 是你想要设置的密码

12.配置远程登陆

1.查看当前可登陆mysql 的主机

mysql>use mysql;# 使用mysql库 
mysql>select user,host from user;
# host是远程主机地址,可以写成%,即所有远程地址;

结果如下:

显然现在只有本机可以使用这个mysql

2.将mysql数据库user表里的root用户的host改成% ,即所有远程地址都可以访问

mysql>update user set host='%' where user='root';

允许root用户进行登陆

mysql>ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
# root是用户名 mysql默认的是root password是自己设置的密码 
# %表示任意主机,也可以指定ip地址. 

mysql>GRANT ALL ON *.* TO 'root'@'%';
# 刷新修改
flush privileges;

在/etc/my.cnf中的[mysqld]下添加

skip-name-resolve

注意:配置skip-name-resolve后不能配置skip-grant-tables

在window中使用Navicat连接 常规窗口

ssh连接虚拟机

其中,ssh窗口的密码不是数据库密码,而是登录centos 的密码

13.配置免密登陆

vim /etc/my.conf   
# 在[mysqld]下边添加 
skip-grant-tables # 配置免密码登录 

# 保存退出后重启
mysql service mysql restart