Linux(CentOS7)下MySQL8.0安装教程 --超详细

1. 下载MySQL

mysql官网下载地址:https://downloads.mysql.com/archives/community/
在这里插入图片描述
版本选择Linux-Generic下mysql-8.0.15 (x86 64-bit)版本

2. 导入MySQL安装包到linux系统

我们把下载好的mysql安装包导入到linux系统下,这里以CentOS-7-2009 linux系统下的 /usr/local/ 路径为例子:
在这里插入图片描述

#解压
tar -xvf mysql-8.0.15-linux-glibc2.12-x86_64.tar.xz
#解压好后重命名:
mv mysql-8.0.15-linux-glibc2.12-x86_64 mysql 

在这里插入图片描述
由于CentOS自带了mariadb,会与mysql冲突,所以需要先卸载它

# 查看mariadb安装信息:
rpm -qa | grep mariadb
# 卸载mariadb:
rpm -e mariadb-libs-5.5.68-2.el7.x86_64 --nodeps

在这里插入图片描述

# 卸载好后再执行命令 
rpm -qa | grep mariadb  
# 这个也执行下,确认没有再出现安装信息表示卸载干净了,此时可以开始安装mysql了
rpm -qa | grep mysql

3. MySQL自定义配置

mysql安装若不指定安装路径或其他属性,会按照mysql的默认配置进行,如果我们需要自定义一些配置则需要手动修改mysql的配置
mysql的默认配置文件路径为 /etc/my.cnf
如果系统中没有,可以手动创建:vim /etc/my.cnf
在这里插入图片描述
上面图上的内容是我在我自己电脑上安装mysql的配置,这里详细介绍一下

# client表示客户端的配置		
[client]	
# 客户端连接mysql的端口号,默认3306
port = 3306			
#为MySQL客户程序与服务器之间的本地通信指定一个套接字文件(注意,如何客户端有该配置,服务端也需配置和客户端相同的路径,否则启动会报找不到该文件)
socket=/usr/local/mysql/mysql.sock	

[mysqldump]
#支持较大数据库的转储,在导出非常巨大的表时需要此项。
quick
# 服务器和客户端之间最大能发送的可能信息包
max_allowed_packet = 16M

# mysqld表示mysql服务端配置
[mysqld]
# mysql的安装路径
basedir = /usr/local/mysql
# mysql的数据存储路径(如果没有需要手动创建,否则启动报错)
datadir = /usr/local/mysql/data
# 服务端id
server-id = 1
#为MySQL客户程序与服务器之间的本地通信指定一个套接字文件(注意,如何客户端有该配置,服务端也需配置和客户端相同的路径,否则启动会报找不到该文件)
socket = /usr/local/mysql/mysql.sock
# 为mysqld程序指定一个存放进程ID的文件
pid-file = /usr/local/mysql/mysqld.pid

# mysql默认数据库字符集类型
character-set-server = utf8mb4
# mysql默认数据库排序规则(utf8mb4_bin是区分大小写的)
collation-server = utf8mb4_bin
init_connect='SET NAMES utf8mb4'
# 表名以及字段名是否区分大小写(默认为1,即不区分,设为2则表示区分)
lower_case_table_names = 1

以上是我安装时的一些配置信息,mysql其他的配置还有很多,具体可以参考这里

4. 初始化MySQL并启动

mysql自定义配置好了后就可以开始初始化了,mysql初始化需要指定用户,所以我们需要创建一个指定的用户,通用创建命令如下

  • 创建群组命令:groupadd 群组名
  • 创建用户并指定群组:useradd -g 群组名 用户名 -p 密码(密码在创建中可以不设置,不过安全起见最好设个密码)
  • 查看某用户群组:groups 用户名
  • 授予指定用户指定路径的所有操作权限:chown -R 用户名 : 群组名 需要授予操作权的全路径名

mysql配置中没指定用户,则默认指定用户名为mysql的用户,所以我们以创建mysql用户为例:
在这里插入图片描述
用户创建好就可以开始初始化

  • 初始化mysql通用命令:mysqld --initialize --用户名 --mysql安装路径
    –datadir=数据库存储路径

这里需要注意的开头的 mysqld 是 mysql 安装路径下 bin 文件夹里的 mysqld 文件,因此执行初始化命令需要进入到mysqld文件的路径下执行,或者指定mysqld文件的全路径;用户名是在my.cnf配置中配置的用户名,如果没配置mysql默认以指定用户名为mysql的用户
以mysql安装路径下初始化为例:

# 进入mysql安装路径
cd /usr/local/mysql
# 初始化mysql:
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

在这里插入图片描述
如果在初始化中出现报错日志,则需要解决错误再重新初始化,重新初始化需要把数据库存储路径下的文件全部清空,即把 /usr/local/mysql/data/ 下的文件清空,否则会报重复初始化错误;
初始化成功后,如上图会生成一个root用户以及它的初始密码,此时mysql安装成功

初始化成功后还需要手动启动mysql,mysql提供了原始的启动脚本,在安装路径下的support-files文件夹里,执行以下命令即可启动mysql:

# 进入support-files:
cd /usr/local/mysql/support-files
# 启动mysql:
./mysql.server start

在这里插入图片描述

5. 连接MySQL

初始化mysql完成后,就可以连接访问MySQL了
本地连接mysql需要进入mysql安装路径下的bin文件夹里,执行以下命令:

# 进入bin路径
cd /usr/local/mysql/bin/
# 连接mysql
./mysql -uroot -p 密码

密码输入刚刚初始化成功生成的初始密码,成功连接上mysql后需要修改初始密码

  • 修改密码通用命令:ALTER USER ‘用户’@‘host地址’ IDENTIFIED WITH
    mysql_native_password BY '密码’

需要注意的是由于安装的是mysql8.0版本,这个版本user表没有password字段了,密码存储在authentication_string字段中,因此需要用以上的修改密码命令的方式修改,
其中命令中的with mysql_native_password是表示可视化工具能够连接,命令如果不附带这段会导致可视化工具无法连接

修改密码成功后执行 exit 命令退出再次重复连接命令输入新密码连接,以下是我在自己电脑上修改在本机上访问登录root用户的密码的命令:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'

在这里插入图片描述
初始密码修改好后,此时mysql就能正常使用了,但是我们可能会需要远程访问,mysql默认是关闭远程访问的,所以需要开启远程访问,启用远程访问其实就是给指定用户授予远程机器可以通过该用户访问数据库的权限

  • 用户授权通用命令:grant #auth on #databaseName.#table to’#userName’@’#host’;

这里解析下每个#的作用
#auth 代表权限,如下

  • all privileges 全部权限
  • select 查询权限
  • select,insert,update,delete 增删改查权限
  • select,[…]增…等权限

#databaseName 代表数据库名
#table 代表具体表,如下

  • *代表全部表
  • A,B 代表具体A,B表

#userName 代表用户名
#host 代表访问权限,如下

  • %代表通配所有host地址权限(可远程访问)
  • localhost为本地权限(不可远程访问)
  • 指定特殊Ip访问权限 如192.168.56.40

具体的授予权限的用户可以参考这篇文章

这里以开启远程能通过root用户访问数据库并有热和权限为例,本地连接上数据库后执行以下命令:

# 进入mysql库
use mysql;
# 修改root用户能通过所有远程计算机访问
update user set host = '%' where user = 'root';
# 查看root用户是否修改成功
select host, user, authentication_string, plugin from user;
# 授予远程通过root用户访问数据库的任何操作权限
GRANT ALL ON *.* TO 'root'@'%';
# 刷新状态
flush privileges;

在这里插入图片描述

此时,远程计算机还不能直接访问,还需要两边把各自的防火墙关了

# 关闭防火墙命令
systemctl stop firewalld.service
# 查看防火墙状态
firewall-cmd --state

在这里插入图片描述
此时,远程计算机可以访问了
在这里插入图片描述

6. 设置开机自启MySQL

以上安装好的mysql每次开机需要手动启动的,要设置为开机自启按一下命令操作

# 将服务文件拷贝到init.d下,并重命名为mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# 赋予可执行权限
chmod +X /etc/init.d/mysqld
# 将mysql添加到系统服务
chkconfig --add mysqld
# 显示服务列表
chkconfig --list

此时,如果看到mysql的服务,并且3,4,5都是on的话则成功,如果是off,则键入
在这里插入图片描述
键入命令

chkconfig --level 345 mysqld on

此时,设置开机自启就完成了,可以重启机器验证一下

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值