Centos 7.9安装MySQL8.0.32的详细教程
作者:sims 发布时间:2024-01-26 02:22:32
第一步、下载压缩包
下载社区版的 MySQL,根据需求下载对应版本,其中有最小安装版本。具体各个版本的区别,可以上网查询,链接MySQL :: Download MySQL Community Server
第二步,解压压缩包,并复制到安装目录
进入到压缩包所在的文件夹,解压分为两次,第一次解压 xz 文件,第二次解压 tar 文件。
xz -dv mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz
tar -xvf mysql-8.0.32-linux-glibc2.12-x86_64.tar
复制解压后的文件到到要安装的目录,我要把 MySQL 安装到/usr/local/mysql,所以,运行以下命令,把解压后的文件复制过去
sudo cp -r mysql-8.0.32-linux-glibc2.12-x86_64/* /usr/local/mysql
这里需要修改以下安装目录的权限,由于我们使用 mysql 用户运行数据库,所以,要把安装目录的拥有者改为 mysql,如果系统没有,需要添加 mysql 用户及分组,我们只使用 mysql 运行程序,所以指定了 mysql 禁止登录,增加安全性
sudo groupadd mysql
sudo useradd mysql -s /usr/sbin/nologin -g mysql
修改安装目录的拥有者为 mysql
chown -R mysql:mysql /usr/local/mysql/
第三步、编辑配置文件
编辑配置文件,我们把配置文件放到 /etc/my.cnf
配置如下:
[client]
port=3306
# 端口
# mysqlx_port=33060
socket=/var/lib/mysql/mysql.sock
# mysqlx_socket=/var/lib/mysqlx.sock
[mysqld]
# skip-grant-tables
# mysql安装目录
basedir=/usr/local/mysql/
# mysql数据库目录
datadir=/var/lib/mysql/data/
port=3306
innodb_file_per_table=1
character-set-server=UTF8MB4
mysqlx_port=33060
socket = /var/lib/mysql/mysql.sock
# mysqlx_socket=/var/lib/mysql/mysqlx.sock
[mysqld_safe]
# 错误日志
log-error=/var/log/mysql/error.log
# pid文件
pid-file=/usr/local/mysql/mysqld.pid
tmpdir=/var/lib/mysql/mysql
第四步、确定一些相关的目录
编辑文件support-files/mysql.server,修改里面的相关目录
安装目录 basedir=/usr/local/mysql
配置目录 /etc/my.cnf
数据库文件目录 datadir=/var/lib/mysql/data/
pid 文件pid-file=/usr/local/mysql/mysqld.pid
第五步、初始化数据库
初始化数据库,注意,初始化成功后,终端会显示 root 账号密码,一定要保存下来
sudo ./bin/mysqld --defaults-file=/etc/my.cnf --user=mysql --initialize
第六步、启动数据库,连接并修改 root 密码
sudo ./bin/mysqld --defaults-file=/etc/my.cnf --user=mysql
连接数据库,修改 root 密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
第六步、守护 MySQL 进程
创建守护程序,保证在服务器重启后能够自动启动,运行
sudo vim /etc/systemd/system/mysql.service
内容如下,其中 User 和 Group 为 mysql
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
#Restart=on-failure
#RestartPreventExitStatus=1
#PrivateTmp=false
# 使能
sudo systemctl enable mysql.service
# 启动
sudo systemctl start mysql.service
# 查看状态
sudo systemctl status mysql.service
第七步、验证
重启服务器验证 mysql 进程是否启动
来源:https://www.cnblogs.com/huangzhengguo/p/17226881.html


猜你喜欢
- 本文实例为大家分享了JSP学生信息管理系统源码,供大家参考,具体内容如下新建学生信息数据库1.添加记录模块<%@ page conte
- 获取DataFrame虽然是一个比较简单的操作,但是有时候到手边就是写不出来,所以在这里总结记录一下:1.链表推倒式data =
- 下面和大家分享一下具体的实现过程。HTML标签结构:<ul class="animation_menu">&
- Python中,队列是线程间最常用的交换数据的形式。Queue模块是提供队列操作的模块,虽然简单易用,但是不小心的话,还是会出现一些意外。创
- Python “TypeError: unhashable type: ‘dict&rsqu
- Turtle库是Python内置的图形化模块,属于标准库之一,位于Python安装目录的lib文件夹下,常用函数有以下几种:画笔控制函数pe
- 首先我们有一个接口可以获取动态的vkeyhttps://vv.video.qq.com/getinfo?otype=json&app
- 写完这个项目后,导师说这个你完全可以当作毕业项目使用了,写的很全,很多的都设计考虑周全,但我的脚步绝不止于现在,我想要的是星辰大海!与君共勉
- var InterestKeywordListString = $("#userInterestKeywordLabel"
- 用于处理XML文档的DOM元素属性 childNodes:返回当前元素所有子元素的数组; firstChild:返回当前元素的第一个下级子元
- 刚刚上网搜了一下如何用python统计列表中不同元素的数量,发现很少,找了半天。我自己来写一种方法。代码如下list=[1,1,2,2,3]
- datetime日期时间类,主要熟悉API,时区的概念与语言无关。from datetime import datetime as dtdt
- 与django路由有区别他们都有根路由,但是不一样。django的根路由:urlpatterns = [ path('l
- 本文实例讲述了redis数据库及与python交互用法。分享给大家供大家参考,具体如下:redis数据操作1.string类型:主要存储字符
- 关于怎么获得,我想其实网上有很多答案。list.index( )获得值的索引值,但是如果list中含有的值一样,例如含有两个11,22,这样
- 在 Python 中,我们可以使用基本的索引操作来获取数组中的元素。然而,有时候我们需要获取一个数组的子数组,也就是只获取数组中的一部分元素
- %matplotlib inline是一个魔法函数(Magic Functions)。官方给出的定义是:IPython有一组预先定义好的所谓
- 如何用FILESYSTEMOBJECT组件来做一个站内搜索?看看下面我们提供的例子,主要由searchpage.htm和searchresu
- Oracle数据库在使用的过程中常常会遇到这样或那样的问题,而这些问题常常又使我们感到很困惑,本文我们总结了Oracle数据库在使用过程中的
- Allure除了具有Pytest基本状态外,其他几乎所有功能也都支持。1、严重性如果你想对测试用例进行严重等级划分,可以使用@allure.