CentOS 7 下安装 MySQL 8.x
CentOS 7 下安装 MySQL 8.x
作者:Grey
原文地址:
环境
CentOS 版本:CentOS 7
下载地址:CentOS 7
安装方法见:Linux 安装,快照,克隆
MySQL 版本:MySQL 8.0.30
下载地址见:MySQL 下载
新建用户组
#> groupadd mysql
创建 MySQL 用户并分配其用户组
#> useradd -r -g mysql -s /bin/false mysql
准备必要文件夹并赋予相应的权限
#> mkdir -p /usr/local/mysql /data/mysql/
#> chown -R mysql.mysql /usr/local/mysql/
#> chown -R mysql.mysql /data/mysql/
#> chmod -R 755 /data/mysql/
#> chmod -R 755 /usr/local/mysql/
注:其中/data/mysql是存放 MySQL 数据的目录。
安装必要依赖
#> yum -y install wget gcc gcc-c++ ncurses ncurses-devel libaio-devel openssl openssl-devel git bison
#> yum install -y centos-release-scl-rh
#> yum install -y centos-release-scl
#> yum install -y devtoolset-10-gcc
#> yum install -y devtoolset-10-gcc-c++
如果安装比较慢,可以配置阿里云的镜像地址:CentOS 镜像
上传并解压 MySQL 安装包
将下载好的 MySQL 安装包上传至服务器的/usr/local/目录下并解压,并将解压后的 mysql 安装目录中的内容放入/usr/local/mysql目录下
#> cd /usr/local/
#> tar -xf mysql-8.0.30-linux-glibc2.17-x86_64-minimal.tar.xz
#> mv mysql-8.0.30-linux-glibc2.17-x86_64-minimal/* mysql/
初始化 MySQL 数据库
#> /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
初始化完毕,会打印如下日志信息
2022-10-05T09:24:34.206466Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
2022-10-05T09:24:34.206531Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.30) initializing of server in progress as process 1533
2022-10-05T09:24:34.222068Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2022-10-05T09:24:34.868013Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2022-10-05T09:24:35.827528Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
修改 MySQL 配置参数
MySQL 的配置文件默认位置是/etc/my.cnf,关于配置文件的说明见:option-files
修改配置之前,一个比较好的习惯的是先备份配置
#> cd /etc
#> cp my.cnf my.cnf.backup
将/etc/my.cnf内容替换为如下内容:
[client]
port=3306
socket=/tmp/mysql.sock
default-character-set=utf8
#user=root
#password=123
[mysqld]
server-id=1
#skip-grant-tables
default_authentication_plugin=mysql_native_password
port=3306
user=mysql
log_bin=mysql-bin
binlog_format=mixed
max_connections=200
socket=/tmp/mysql.sock
basedir=/usr/local/mysql
datadir=/data/mysql
pid-file=/data/mysql/mysql.pid
init-connect='SET NAMES utf8'
character-set-server=utf8
default-storage-engine=INNODB
log_error=/data/mysql/mysql-error.log
slow_query_log_file=/data/mysql/mysql-slow.log
[mysqldump]
quick
max_allowed_packet=16M
my.cnf 文件的更多配置参数见:mysql-options
配置环境变量
配置环境变量并应用环境变量
#> echo "export PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile
#> source /etc/profile
配置启动脚本【可选】
#> cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
给启动脚本赋予可执行权限
#> chmod +x /etc/init.d/mysqld
这样就可以通过如下命令进行 MySQL 的启动了
#> service mysqld restart
配置 MySQL 开机启动【可选】
#> chkconfig --level 345 mysqld on
新建一个用户并赋予权限【可选】
安装完毕后,root用户默认没有密码,可以通过如下命令登录并修改root用户密码
#> mysql -u root -p
按回车,即可无密码登录,可以通过如下命令创建用户
创建一个用户名为 dump 的用户,密码初始化为 1234(可根据自定义需求修改)
mysql> create user 'dump'@'%' identified by '1234';
赋予权限,并配置可访问的 ip(可根据自定义需求修改)
mysql> grant all privileges on *.* to 'dump'@'%';
mysql> flush privileges;
开放 3306 端口
如果要远程访问 MySQL,操作系统需要打开 MySQL 的默认 3306 端口的访问权限
#> firewall-cmd --zone=public --add-port=3306/tcp --permanent
#> firewall-cmd --reload
接下来,可以通过 MySQL 客户端连接验证
推荐这一款免费开源的 MySQL 客户端:HeidiSQL
MySQL 的卸载
如果要完全卸载 MySQL,可以通过如下的方式:
停止服务
#> service mysqld stop
然后执行
#> find / -name mysql
找到所有 mysql 相关的文件夹
/etc/selinux/targeted/active/modules/100/mysql
/usr/lib64/mysql
/usr/share/mysql
/usr/local/mysql
/usr/local/mysql/bin/mysql
/usr/local/mysql/include/mysql
/data/mysql
/data/mysql/mysql
然后执行rm -rf删掉这些文件即可。
当然你确保
#> find / -name mysql
出来的文件没有需要保留的文件,也可以执行
#> rm -rf `find / -name mysql`
批量删除。
参考文档
Installing MySQL on Unix/Linux Using Generic Binaries
CentOS 7 下安装 MySQL 8.x的更多相关文章
- CentOS 7 下安装 MySQL 5.7
从 CentOS 7 系统开始,MariaDB 成为 yum 源中默认的数据库安装包.在 CentOS 7 及以上的系统中使用 yum 安装 MySQL 包将无法使用 MySQL.您可以选择使用完全兼 ...
- CentOS 7 下安装 MySQL 8.0
前言 本篇文章主要介绍在 CentOS 7 环境下安装 MySQL 8.0. 正文 1. 配置yum源 首先在 https://dev.mysql.com/downloads/repo/yum/ 找到 ...
- Centos 7 下安装mysql
// 卸载原有maridb-lib库 [root@localhost ~]# rpm -qa | grep mariadb mariadb-libs-5.5.41-2.el7_0.x86_64 [ro ...
- CentOS 7 下安装 mysql ,以及用到的命令
VMware虚拟机装好后,再装个CentOS7系统,以上环境自行百度... 一.Linux下查看mysql是否安装 1.指令ps -ef|grep mysql [root@localhost 桌面]# ...
- CentOS 7下安装Mysql 5.7
参见http://www.07net01.com/2016/03/1355735.html 过程中需要安装perl CentOS 7 采用了 firewalld 防火墙 service firewal ...
- centos 7下安装mysql
可参考: http://blog.csdn.net/xyang81/article/details/51759200 1.去mysql官方网站查询最新的版本: 2.运行指令: wget http:// ...
- centos 6.5下安装mysql+nginx+redmine 3.1.0 笔记
centos 6.5下安装mysql+nginx+redmine 3.1.0 笔记 目录[-] 过程 1.安装RVM 2.利用rvm安装 Ruby 1.9.3 并设为默认 3.安装rails 4.安装 ...
- Centos下安装mysql 总结
一.MySQL安装 Centos下安装mysql 请点开:http://www.centoscn.com/CentosServer/sql/2013/0817/1285.html 二.MySQL的几个 ...
- CentOS 7 下安装 LEMP 服务(nginx、MariaDB/MySQL 和 php)
原文 CentOS 7 下安装 LEMP 服务(nginx.MariaDB/MySQL 和 php) LEMP 组合包是一款日益流行的网站服务组合软件包,在许多生产环境中的核心网站服务上起着强有力的作 ...
随机推荐
- [USACO 2009 Mar S]Look Up_via牛客网
题目 链接:https://ac.nowcoder.com/acm/contest/28537/N 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言 ...
- 【Azure Developer】在Azure VM (Windows) 中搭建 kafka服务,并且通过本地以及远程验证 发送+消费 消息
问题描述 查看了 "How to Install and Run Apache Kafka on Windows? " 一文后,成功安装了Kafka服务,但是如何使用呢?如何在其他 ...
- springboot整合xxl-job分布式定时任务【图文完整版】
一.前言 定时任务有很多种,有一些大的框架也有一些简单的实现. 比如常见的: JDK的Timer和TimerTask Quartz异步任务调度框架 分布式定时任务XXL-JOB Spring Task ...
- Docker 10 镜像原理
参考源 https://www.bilibili.com/video/BV1og4y1q7M4?spm_id_from=333.999.0.0 https://www.bilibili.com/vid ...
- 什么是云计算?云计算三种模式Sass、Paas、Iaas
云计算 云计算的"云"指的是计算机网络(一般指的是 Internet),"计算"指的是多个计算机共同计算巨大的数据的过程.通过云计算平台把任务分解成一个个小的任 ...
- python自动化测试-列表、元组、字典学习笔记
1.列表 格式: L = [1,2,3,5] M = [7,8,9] print(type(L)) -> :list 列表增加元素: print(L.append(10)) -&g ...
- 三 单例模式【Singleton Pattern】 来自CBF4LIFE 的设计模式
这个模式是很有意思,而且比较简单,但是我还是要说因为它使用的是如此的广泛,如此的有人缘,单例就是单一.独苗的意思,那什么是独一份呢?你的思维是独一份,除此之外还有什么不能山寨的呢?我们举个比较难复制的 ...
- Arrays.asList()你真的知道怎么用吗?
发现问题 前几天在看别人的项目的时候,发现一个问题,简单复现一下这个问题 // 注意这是一个Integer对象的数组哦 Integer[] arr = new Integer[]{9999,88,77 ...
- 理解 KingbaseES 中的递归查询
关键字:SQL,CTE,递归查询 概述:通常递归查询是一个有难度的话题,尽管如此,它们仍使您能够完成在 SQL 中无法实现的操作.本文通过示例进行了简单介绍,并展示了与 PL/SQL的递归查询实现的差 ...
- 《Java编程思想》读书笔记(五)
前言:本文是<Java编程思想>读书笔记系列的最后一章,本章的内容很多,需要细读慢慢去理解,文中的示例最好在自己电脑上多运行几次,相关示例完整代码放在码云上了,码云地址:https://g ...