CentOS7安装MySQL8.0教程

环境介绍
操作系统:Centos7.6
MySQL版本: 8.0.27
只要是8.0.*版本,那就可以按照本文说明安装

一、安装前准备

1、卸载MariaDB

安装MySQL的话会和MariaDB的文件冲突,所以需要先卸载掉MariaDB。

1.1、查看是否安装mariadb
rpm -qa|grep mariadb
1.2、卸载
rpm -e --nodeps 文件名
1.3、检查是否卸载干净
rpm -qa|grep mariadb
2.检查依赖
2.1、查看是否安装libaio(MySQL需要依赖libaio库)
rpm -qa|grep libaio

如果没有安装则执行

yum -y install libaio //安装libaio 
2.2、查看是否安装numactl
rpm -qa|grep numactl

如果没有安装则执行

yum -y install numactl //安装numactl 

二、下载并安装MySQL

1、下载资源包

阿里云下载地址:https://mirrors.aliyun.com/mysql/MySQL-8.0/?spm=a2c6h.25603864.0.0.5f4c712bmNnZeW
官网下载地址:https://dev.mysql.com/downloads/mysql/
在这里插入图片描述

2、解压

本文安装包上传到了 /usr/local/ 目录下
进入安装包目录

cd /usr/local/

解压

tar -zxvf mysql-8.0.27-el7-x86_64.tar.gz
3、重命名

将解压后的文件夹重命名为mysql

mv mysql-8.0.27-el7-x86_64/ mysql
4、创建存储数据文件

在重命名后的mysql文件夹中创建data文件夹

mkdir mysql/data
5、设置用户组并赋权

先进入mysql文件夹

cd /usr/local/mysql

创建用户组

groupadd mysql

创建用户
-r:创建系统用户
-g:指定用户组

useradd -r -g mysql mysql

更改属主和数组

chown -R mysql:mysql ./

更改权限

chmod -R 755 ./
6、初始化MySQL

进入MySQL的bin目录

cd /usr/local/mysql/bin/

初始化

./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

初始化完成后会打印一个随机密码,后面会用到。
在这里插入图片描述

7、配置参数文件
vi /etc/my.cnf

配置文件修改为以下内容 也可以根据自己需要设置参数

# client:客户端配置部分,这里定义了连接到MySQL服务器的客户端的一些参数
[client]
# MySQL服务器监听的端口,默认为3306
port = 3306
# MySQL服务器的Unix套接字文件路径
socket = /usr/local/mysql/data/mysql.sock
# 客户端使用的默认字符集,设置为utf8mb4
default-character-set = utf8mb4

# mysql:MySQL客户端程序的配置部分
[mysql]  
# MySQL客户端使用的默认字符集,同样设置为utf8mb4
default-character-set = utf8mb4

# mysqld:MySQL服务器的配置部分,其中包含了一些重要的服务器参数设置
[mysqld]  
# 控制服务器是否应执行客户端字符集的握手。在此设置为FALSE,表示服务器不应执行字符集的握手
character-set-client-handshake = FALSE
# 服务器默认字符集设置为 utf8mb4
character-set-server = utf8mb4
# 服务器默认排序规则设置为 utf8mb4_general_ci
collation-server = utf8mb4_general_ci
# 每次客户端连接到服务器时,都会执行的初始化SQL语句,此处设置为设置字符集为utf8mb4
init_connect = 'SET NAMES utf8mb4'

# MySQL服务器监听的端口,同样设置为3306
port = 3306
# MySQL服务器的Unix套接字文件路径
socket = /usr/local/mysql/data/mysql.sock
# 禁用外部锁定功能
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
datadir = /usr/local/mysql/data
#lower_case_table_names=1
#如果要设置lower_case_table_names可以在初始化里面设置 ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql --lower_case_table_names=1

# mysqldump工具的配置部分
[mysqldump]
# 启用快速模式,用于导出数据
quick
# 用于mysqldump导出数据时允许的最大数据包大小
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

配置后修改 /etc/my.cnf 的权限为777

chmod 777 /etc/my.cnf
8.启动MySQL
/usr/local/mysql/support-files/mysql.server start
9.设置软连接,并重启MySQL
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
ln -s /usr/local/mysql/mysql.sock /var/mysql.sock
service mysql restart
10、登录并更改密码
[root@localhost bin]# mysql -uroot -p
Enter password: 输入初始化随机密码

两种改密方式二选一

alter user 'root'@'localhost' identified by '123456';
set password for root@localhost = '123456';
11.开放远程连接
mysql>use mysql;
msyql>update user set user.Host='%' where user.User='root';
mysql>flush privileges;    //刷新权限
12、连接工具测试连接MySQL

在这里插入图片描述
如果服务器本地可以连接,但是连接工具远程连接不进去,则需要检查一下防火墙是否放行3306端口,也可以暂时先关闭防火墙后重试。

13、关闭防火墙
systemctl stop firewalld

防火墙相关设置

# 查看当前防火墙状态
sudo systemctl status firewalld

# 如果防火墙当前是关闭状态(inactive),则开启防火墙
sudo systemctl start firewalld

# 若要让防火墙在系统重启后仍然保持开启状态(永久开启)
sudo systemctl enable firewalld

# 开放 81 端口并设置为永久生效
sudo firewall-cmd --permanent --add-port=3306/tcp

# 重新加载防火墙规则使之生效
sudo firewall-cmd --reload

# 查看开放了哪些端口
firewall-cmd --list-ports
14、MySQL启动和停止

CentOS6和CentOS7命令都可以使用。

启动

service mysql start
systemctl start mysql

停止

service mysql stop
systemctl stop mysql

重启

service mysql restart
systemctl restart mysql

查看状态

service mysql status
systemctl status mysql

三、设置开机自启动(可选)

将服务文件拷贝到 /etc/init.d下,并重命名为mysqld

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

赋予可执行权限

chmod +x /etc/init.d/mysqld

添加服务

chkconfig --add mysqld

显示服务列表

chkconfig --list

注:如果看到mysqld的服务,并且3,4,5都是on的话则成功,如果是off,则执行

chkconfig --level 345 mysqld on

重启系统

reboot

重启后查看mysql是否开机自启动

ps -ef|grep mysql
  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋枫 ~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值