CentOS7安装MySQL8的超级详细教程(无坑!)


Posted in Servers onJune 10, 2022

前言

环境介绍 :

服务器: 阿里云轻量应用服务器

系统版本: CentOS 7

MySQL版本: 8.0

一、卸载MariaDB

在CentOS中默认安装有MariaDB,是MySQL的一个分支,主要由开源社区维护。
CentOS 7及以上版本已经不再使用MySQL数据库,而是使用MariaDB数据库。
如果直接安装MySQL,会和MariaDB的文件冲突。
因此,需要先卸载自带的MariaDB,再安装MySQL。

1.1 查看版本:

rpm -qa|grep mariadb

1.2 卸载

rpm -e --nodeps 文件名

1.3 检查是否卸载干净:

rpm -qa|grep mariadb

CentOS7安装MySQL8的超级详细教程(无坑!)

二、安装MySQL

2.1 下载资源包

2.1.1 官网下载

MySQL官网下载地址 :

https://dev.mysql.com/downloads/mysql/

CentOS7安装MySQL8的超级详细教程(无坑!)

2.1.2 wget下载

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

2.2 解压

.tar.gz后缀:tar -zxvf 文件名
.tar.xz后缀:tar -Jxvf 文件名

2.3 重命名

将解压后的文件夹重命名(或者为文件夹创建软链接)

# 重命名
mv 原文件夹名 mysql8
# 软链接
ln -s 文件夹名 mysql8

2.4 添加PATH变量

添加PATH变量后,可在全局使用MySQL。

有两种添加方式:export命令临时生效、修改配置文件用久生效;

#临时环境变量,关闭shell后失效,通常用于测试环境
export PATH=$PATH:/data/software/mysql8/bin

三、用户和用户组

3.1 创建用户组和用户

# 创建一个用户组:mysql
groupadd mysql
# 创建一个系统用户:mysql,指定用户组为mysql
useradd -r -g mysql mysql

创建用户组:groupadd

创建用户:useradd

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

3.2 数据目录

1、创建目录

mkdir -p /data/software/mysql8/datas

2、赋予权限

# 更改属主和数组
chown -R mysql:mysql /data/software/mysql8/datas
# 更改模式
chmod -R 750 /data/software/mysql8/datas

四、初始化MySQL

4.1 配置参数

在/data/software/mysql8/下,创建my.cnf配置文件,用于初始化MySQL数据库

[mysql]
# 默认字符集
default-character-set=utf8mb4
[client]
port       = 3306
socket     = /tmp/mysql.sock

[mysqld]
port       = 3306
server-id  = 3306
user       = mysql
socket     = /tmp/mysql.sock
# 安装目录
basedir    = /data/software/mysql8
# 数据存放目录
datadir    = /data/software/mysql8/datas/mysql
log-bin    = /data/software/mysql8/datas/mysql/mysql-bin
innodb_data_home_dir      =/data/software/mysql8/datas/mysql
innodb_log_group_home_dir =/data/software/mysql8/datas/mysql
#日志及进程数据的存放目录
log-error =/data/software/mysql8/datas/mysql/mysql.log
pid-file  =/data/software/mysql8/datas/mysql/mysql.pid
# 服务端使用的字符集默认为8比特编码
character-set-server=utf8mb4
lower_case_table_names=1
autocommit =1
 
 ##################以上要修改的########################
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 1024
sort_buffer_size = 4M
net_buffer_length = 8K
read_buffer_size = 4M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 64M
thread_cache_size = 128
  
#query_cache_size = 128M
tmp_table_size = 128M
explicit_defaults_for_timestamp = true
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
   
binlog_format=mixed
    
binlog_expire_logs_seconds =864000
    
# 创建新表时将使用的默认存储引擎
default_storage_engine = InnoDB
innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 1024M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
transaction-isolation=READ-COMMITTED
      
[mysqldump]
quick
max_allowed_packet = 16M
       
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 4M
read_buffer = 2M
write_buffer = 2M
        
[mysqlhotcopy]
interactive-timeout

4.2 初始化

mysqld --defaults-file=/data/software/mysql8/my.cnf --basedir=/data/software/mysql8/ --datadir=/data/software/mysql8/datas/mysql --user=mysql --initialize-insecure

参数(重要)

  • defaults-file:指定配置文件(要放在–initialize 前面)
  • user: 指定用户
  • basedir:指定安装目录
  • datadir:指定初始化数据目录
  • intialize-insecure:初始化无密码

五、启动MySQL

查看 MySQL的 bin路径下,是否包含mysqld_safe,用于后台安全启动MySQL。

CentOS7安装MySQL8的超级详细教程(无坑!)

5.1 启动服务

# 完整命令
/data/software/mysql8/bin/mysqld_safe --defaults-file=/data/software/mysql8/my.cnf &
# 添加PATH变量后的命令(省略bin目录的路径)
mysqld_safe --defaults-file=/data/software/mysql/my.cnf &

查看是否启动

ps -ef|grep mysql

CentOS7安装MySQL8的超级详细教程(无坑!)

5.2 登录

# 无密码登录方式
/data/software/mysql8/bin/mysql -u root --skip-password
# 有密码登录方式(初始的随机密码在/data/mysql8_data/mysql/mysql.log下)
mysql -u root -p
password:随机密码

CentOS7安装MySQL8的超级详细教程(无坑!)

5.3 修改密码

# 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
# 刷新权限
FLUSH PRIVILEGES;

CentOS7安装MySQL8的超级详细教程(无坑!)

5.4 设置允许远程登录

登录到mysql里执行

mysql> use mysql
mysql> update user set user.Host='%'where user.User='root';
mysql> flush privileges;
mysql> quit

5.5 在Navicat上测试连接

CentOS7安装MySQL8的超级详细教程(无坑!)

总结

到此这篇关于CentOS7安装MySQL8的文章就介绍到这了,更多相关CentOS7安装MySQL8内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!


Tags in this post...

Servers 相关文章推荐
Nginx四层负载均衡的配置指南
Jun 11 Servers
Nginx stream 配置代理(Nginx TCP/UDP 负载均衡)
Nov 17 Servers
Nginx性能优化之Gzip压缩设置详解(最大程度提高页面打开速度)
Feb 12 Servers
为Centos安装指定版本的Docker
Apr 01 Servers
Nginx速查手册及常见问题
Apr 07 Servers
Nginx隐藏式跳转(浏览器URL跳转后保持不变)
Apr 07 Servers
阿里云k8s服务升级时502错误 springboot项目应用
Apr 09 Servers
阿里云 Windows server 2019 配置FTP
Apr 28 Servers
鲲鹏 CentOS 7 安装Python3.7
May 11 Servers
详解ZABBIX监控ESXI主机的问题
Jun 21 Servers
django项目、vue项目部署云服务器的详细过程
Jul 23 Servers
zabbix如何添加监控主机和自定义监控项
Aug 14 Servers
ubuntu下常用apt命令介绍
Jun 05 #Servers
netty 实现tomcat的示例代码
Jun 05 #Servers
基于docker安装zabbix的详细教程
Jun 05 #Servers
linux目录管理方法介绍
Jun 01 #Servers
Linux磁盘管理方法介绍
Jun 01 #Servers
Linux中文件的基本属性介绍
Jun 01 #Servers
解决Vmware虚拟机安装centos8报错“Section %Packages Does Not End With %End. Pane Is Dead”
Jun 01 #Servers
You might like
56.com视频采集接口程序(PHP)
2007/09/22 PHP
常用PHP框架功能对照表
2014/10/23 PHP
CodeIgniter控制器之业务逻辑实例分析
2016/01/20 PHP
yii2中dropDownList实现二级和三级联动写法
2017/04/26 PHP
PHP简单计算两个时间差的方法示例
2017/06/20 PHP
Laravel框架模板继承操作示例
2018/06/11 PHP
用JavaScript获取网页中的js、css、Flash等文件
2006/12/20 Javascript
细品javascript 寻址,闭包,对象模型和相关问题
2009/04/27 Javascript
JS弹出层单纯的绝对定位居中示例代码
2014/02/18 Javascript
jQuery性能优化技巧分析
2015/02/20 Javascript
js 获取元素所有兄弟节点的实现方法
2016/09/06 Javascript
JavaScript计算值然后把值嵌入到html中的实现方法
2016/10/29 Javascript
Angular多选、全选、批量选择操作实例代码
2017/03/10 Javascript
关于javascript作用域的常见面试题分享
2017/06/18 Javascript
详谈commonjs模块与es6模块的区别
2017/10/18 Javascript
vue多层嵌套路由实例分析
2019/03/19 Javascript
Vue编程式跳转的实例代码详解
2019/07/10 Javascript
小程序最新获取用户昵称和头像的方法总结
2019/09/23 Javascript
Python二维码生成库qrcode安装和使用示例
2014/12/16 Python
python构建深度神经网络(续)
2018/03/10 Python
利用python库在局域网内传输文件的方法
2018/06/04 Python
对Python模块导入时全局变量__all__的作用详解
2019/01/11 Python
pycharm配置pyqt5-tools开发环境的方法步骤
2019/02/11 Python
Django中如何防范CSRF跨站点请求伪造攻击的实现
2019/04/28 Python
Python2.7实现多进程下开发多线程示例
2019/05/31 Python
解决django服务器重启端口被占用的问题
2019/07/26 Python
python中setuptools的作用是什么
2020/06/19 Python
H5 video poster属性设置视频封面的方法
2020/05/25 HTML / CSS
印度在线杂货店:bigbasket
2018/08/23 全球购物
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类
2012/02/06 面试题
亿企通软件测试面试题
2012/04/10 面试题
八项规定整改措施
2014/02/12 职场文书
2014年校长工作总结
2014/12/11 职场文书
初三化学教学反思
2016/02/22 职场文书
2019年行政人事个人工作总结范本!
2019/07/19 职场文书
python 离散点图画法的实现
2022/04/01 Python