Linux CENTOS安装mysql8 64位

news2025/3/1 16:19:03

1. 查看系统中是否已经安装了mariadb 执行:yum list installed | grep mariadb
若已经存在,则删除 执行: yum remove mariadb

2.下载需要安装的压缩文件,从官网下载,文件为名字为 mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
该文件是tar.xz后缀。需要tar xvJf 解压

3.将压缩文件解压到/usr/local/目录下
tar xvJf xxx.tar.xz 由于此处使用的是tar.gz文件,要使用该命令
解压后文件位于/usr/local目录下,并修改文件夹名称 mysql8
在这里插入图片描述
4.将 /usr/local/mysql8/bin 这个路径追加到etc/profile文件的PATH中,若PATH已配置了其他的,则追加
如下所示:

export JAVA_HOME=/opt/jdk1.8.0_121
 
export JRE_HOME=${JAVA_HOME}/jre
 
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
 
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
 
export PATH=$PATH:${JAVA_PATH}:$PATH:/usr/local/mysql8/bin

由于此处已经配置了JAVA_HOME JRE_HOME CLASSPATH JAVA_PATH PATH ,只需要在PATH中添加:/usr/local/mysql8/bin
再执行source profile,重新载入该配置文件即可生效。这样就能在linux中调用mysql命令

5.mysql --version 查看安装的mysql版本
显示如下

[root@VM-0-8-centos local]# mysql --version
mysql  Ver 8.0.31 for Linux on x86_64 (MySQL Community Server - GPL)
[root@VM-0-8-centos local]#

6.创建用户组、用户
创建用户组:groupadd
创建用户:useradd(-r 创建系统用户,-g 指定用户组)
执行如下代码:创建用户组,并将新建的用户添加到用户组里面

groupadd mysql
useradd -r -g mysql mysql

7.创建存放mysql数据的目录 放在 /data/mysql8_data下
mkdir -p /data/mysql8_data
该目录是用于存放数据的,而mysql的安装目录在/usr/local/mysql8目录下
8.赋予权限
将mysql存放数据的目录修改拥有者和组权限,以前是root用户root组,修改后是mysql用户,mysql组

chown -R mysql:mysql /data/mysql8_data

再修改目录和文件的访问权限

chmod -R 750 /data/mysql8_data

9.初始化和启动
(1)在 /usr/local/etc/ 下创建 my.cnf 配置文件,用于初始化 MySQL 数据库,在启动时候,需要指明启动mysql服务时调用的是哪一个配置文件,后面有说明。

在本地先准备一个文件my.cnf
内容如下,也可以可先建立文件,再将内容复制到文件里,若文件内容较多,可以分多次拷贝。

[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    = /usr/local/mysql8
# 数据存放目录
datadir    = /data/mysql8_data/mysql
log-bin    = /data/mysql8_data/mysql/mysql-bin
innodb_data_home_dir      =/data/mysql8_data/mysql
innodb_log_group_home_dir =/data/mysql8_data/mysql
# 日志及进程数据的存放目录
log-error =/data/mysql8_data/mysql/mysql.log
pid-file  =/data/mysql8_data/mysql/mysql.pid
# 服务端字符集
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

--------------------------------------说明----------------------------------------
简介: lower_case_table_names 是mysql设置大小写是否敏感的一个参数。

1.参数说明:
lower_case_table_names=0 表名存储为给定的大小和比较是区分大小写的
lower_case_table_names = 1 表名存储在磁盘是小写的,但是比较的时候是不区分大小写
lower_case_table_names=2 表名存储为给定的大小写但是比较的时候是小写的
unix,linux下lower_case_table_names默认值为 0 .Windows下默认值是 1 .Mac OS X下默认值是 2

2.查看方法:
进入mysql命令行 执行以下任一语句查看:
show variables like ‘lower_case_table_names’;
select @@lower_case_table_names;

更改数据库参数文件my.cnf来修改该属性我的值。
在mysqld下 添加或修改 lower_case_table_names = 1
之后重启数据库,只能通过文件的方式进行修改
--------------------------------------说明----------------------------------------

(2)初始化
需要进入 /usr/local/mysql/bin,若添加了 PATH 变量可忽略。本人已经添加了PATH配置了mysql的bin路径指向,可以在linux中执行mysql的命令
初始化命令如下:

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

执行如下代码即可:

mysqld --defaults-file=/usr/local/etc/my.cnf --basedir=/usr/local/mysql8 --datadir=/data/mysql8_data/mysql --user=mysql --initialize-insecure

(3)启动MySql
查看 MySQL 的 /bin 下是否包含 mysqld_safe,用于后台安全启动 MySQL,经过查看确实有,位置如下

[root@VM-0-8-centos bin]# pwd
/usr/local/mysql8/bin
[root@VM-0-8-centos bin]# ls
ibd2sdi         my_print_defaults    mysqld         mysql_migrate_keyring      mysql_upgrade
innochecksum    mysql                mysqld-debug   mysqlpump                  perror
lz4_decompress  mysqladmin           mysqld_multi   mysql_secure_installation  zlib_decompress
myisamchk       mysqlbinlog          mysqld_safe    mysqlshow
myisam_ftdump   mysqlcheck           mysqldump      mysqlslap
myisamlog       mysql_config         mysqldumpslow  mysql_ssl_rsa_setup
myisampack      mysql_config_editor  mysqlimport    mysql_tzinfo_to_sql
[root@VM-0-8-centos bin]# 

启动mysql,并读取制定的配置文件,命令如下:

/usr/local/mysql8/bin/mysqld_safe --defaults-file=/usr/local/etc/my.cnf &

若添加了PATH变量,可省略如下

mysqld_safe --defaults-file=/usr/local/etc/my.cnf &

在这里插入图片描述
查看mysql服务是否启动成功

ps -ef|grep mysql

在这里插入图片描述
(4)登录
mysql -uroot -p 输入密码的时候直接回车进入mysql
在这里插入图片描述
(5)修改密码
由于mysql8和mysql5版本的不同他们的加密策略也不同,所以要将mysql8的策略改一下,保证navicate能远程登录。
首次修改:
MySQL 初始化的 root 用户、新创建的用户,都需要设置首次密码。建议使用本地密码插件 mysql_native_password。

# 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

# 刷新权限
FLUSH PRIVILEGES;

平时修改:可在 Linux 或 MySQL 中修改。

Linux 命令行    mysqladmin -u用户名 -p旧密码 password 新密码
登录mysql后命令执行
# 设置密码
SET PASSWORD FOR '用户名'@'主机' = PASSWORD(‘密码');

# 刷新权限
FLUSH PRIVILEGES;

(6)关闭MySql服务
在linux 中 执行 mysqladmin -uroot -p shutdown 回车后输入密码即可


远程连接MySql
首先进入 mysql 数据库,查看当前用户user表

USE mysql;

SELECT user,host,plugin,authentication_string FROM user;

在这里插入图片描述
host 字段 表示可访问当前数据库的主机,目前仅本地可访问。


然后创建用户,以供任意远程访问

# 创建用户
CREATE user 'root'@'%';

# 设置首次密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';

# 授权用户所有权限,刷新权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
FLUSH PRIVILEGES;

再次查看时候,发现已创建一个可被任意远程主机访问的 root 用户,如下图
在这里插入图片描述


为了安全考虑需要将防火墙开启,开放端口3306供远程访问

开放端口:默认端口号 3306

查看端口状态:no 表示未开启
firewall-cmd --query-port=3306/tcp

永久开放端口:
firewall-cmd --add-port=3306/tcp --permanent

重启防火墙:
systemctl restart firewalld

备注:查看mysql端口:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/75167.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

S7-1200和1500PLC与条码枪建立TCP_IP通信的具体方法示例

S7-1200和1500PLC与条码枪建立TCP_IP通信的具体方法示例 今天和大家分享西门子S7-1200和1500PLC如何获取条码枪的扫描数据,这种案例中一般PLC作为TCP/IP的客户端(只接收数据,不发送数据),条码枪作为TCP/IP的服务器。 如下图所示,在指令—通信—开放式用户通信中可以找到相关…

洞察 | 软件定义汽车时代下,汽车制造产业的应对策略

汽车产业作为先进制造行业,伴随着数字化技术,电气化技术的迭代正快速的成长,而随着智能汽车、自动驾驶概念的提出,整车制造的软硬件复杂度也在持续提升,软件定义汽车转型已成整体汽车制造产业的共识。 据中国软件行业…

成长任务| 挑战代码画颗圣诞树

🎄立即投稿🎄 📌活动规则 圣诞将至,这次来试试用代码过圣诞吧~挑战圣诞树的一万种画法! √ 使用代码画一颗#圣诞树#,将你的代码文件通过本页面投稿,审核通过即可参与活动 √ 可使用任意编程语言&#xff…

【解纠缠表示:图像增强】

DRLIE: Flexible Low-Light Image Enhancement via Disentangled Representations (DRLIE:基于解纠缠表示的柔性弱光图像增强) 解纠缠表示 弱光图像增强(Low-light image enhancement (LIME))是将亮度不理想的图像转化…

为了彻底弄懂CSS中的1px究竟有多长,我翻出了家里的卷尺

CSS是描述HTML文档如何显示的,在显示的过程中,HTML元素的长宽、间距、字体大小等等,都需要通过长度尺寸单位来表示。我们常常会说:字体大小16像素, 间距10个像素。这里的像素,就是CSS中的长度尺寸单位。一个…

软件测试行业真的不行了吗?那出路到底在哪?

下面这张图片,想必大家应该都知道~~~ 其实每个人都在金字塔里面,只不过大家的高低位置不同,当然,越在底层的人越多,越在高层的人越少~ 这也符合“二八定律”,“优胜劣汰”,“适者生存”~ 当你的…

c++中的this指针

1.this指针的引入 首先我们看下面这一段代码 class Date { public:void DateSet(int year, int month, int day){_year year;_month month;_day day;}void print(){cout << _year << "-" << _month << "-" << _day <…

论文速递:一种用于视觉定位的基于NLP思路的直线特征匹配算法

标题&#xff1a;Line as a Visual Sentence:Context-aware Line Descriptor for Visual Localization 作者&#xff1a;Sungho Yoon1 and Ayoung Kim2∗ 摘要 在机器人以及计算机视觉领域&#xff0c;除了通过使用图像匹配的特征点计算多视图几何来求解问题&#xff0c;还可…

12月的第一波驱动,来看看支持哪款游戏吧!

真的停不下来&#xff01;2022年的最后一个月&#xff0c;新游戏仍然在发力&#xff0c;《极品飞车&#xff1a;不羁》、《巫师 3&#xff1a;狂猎》、《传送门RTX版》都在12月正式上线&#xff01; 为了提供更好的游戏体验&#xff0c;英伟达、AMD、英特尔三巨头更是马不停蹄…

时间轮算法HashedWheelTimer

文章目录一.HashedWheelTimer是什么?二.能干什么?为什么需要这个东西?优点适用场景三.怎么用?使用步骤1.引入pom2.使用举例四.时间轮原理五.使用注意点1.一个HashedWheelTimer对象只有一个worker线程2.每次添加的任务只会执行一次3.时间轮的参数非常重要4.所有的任务都是顺…

rabbitmq基础1——消息中间件概念、Rabbitmq的发展起源和基本组件的作用流程

文章目录一、消息中间件1.1 概念1.2 作用1.2.1 消息队列持久化1.2.2 消息队列分发策略1.2.3 消息队列的高可用和高可靠1.2.3.1 一主多从共享集群1.2.3.2 一主多从同步集群1.2.3.3 多主多从同步集群1.2.3.4 多主转发集群1.2.3.5 Master-slave与Breoker-cluster组合方案1.3 初识A…

实战总结!18种接口优化方案的总结

之前工作中&#xff0c;遇到一个504超时问题。原因是因为接口耗时过长&#xff0c;超过nginx配置的10秒。然后 真枪实弹搞了一次接口性能优化&#xff0c;最后接口从11.3s降为170ms。本文将跟小伙伴们分享接口优化的一些通用方案。 1. 批量思想&#xff1a;批量操作数据库 优化…

Windows环境监控Linux服务器资源grafana+prometheus+mysql_exporter

Windows环境监控Linux服务器资源grafanaprometheusmysql_exporter 1.安装mysql (1)在虚拟机中下载wget命令 yum -y install wget(2)在线下载mysql安装包 wget https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm(3)安装MySQL rpm -ivh mysql57-communi…

信仰崩了?Preact 开始采用 Vue3 的响应式设计

前言 不知大家有没有听过Preact这个框架&#xff0c;就算没听过Preact那也应该听过React吧&#xff1f; 一字之差&#xff0c;preact比react多了个p&#xff01;&#xff08;听起来咋不像啥好话呢&#xff09; 这个P代表的是 Performance&#xff0c;高性能版React的意思。P…

一篇博客详解朴素贝叶斯解分类问题

目录 回归问题 正则化Regularization 分类问题—类别之间是独立的 为什么不用回归解分类问题以概率的形式解分类问题 抽盒机率→分类机率正态分布覆盖 原理高斯分布函数 极大似然估计求最优参数 朴素贝叶斯法 用同一个协方差三步骤 模型的简化 回归问题 大概内容与之前的类…

工业ESD防静电闸机系统帮助您实现静电监控自如!

如何有效检测、消除静电&#xff0c;对元器件品质进行有效管控&#xff1f;现在工厂常用的设备有腕带接地、电阻测试仪&#xff0c;ESD防静电系统&#xff0c;但是这些都是在我们生产的同时去监控处理掉静电&#xff0c;那么有没有一种能直接从人体根源消除掉静电的系统呢&…

Postman 的简单使用

什么是Postman 在程序开发中用于调试网络程序或者跟踪网页请求。可以对网页进行简单的基本信息调试。Postman最早是作用chrome浏览器插件存在的&#xff0c;但是2018年初Chrome停止对Chrome应用程序的支持。所以现在Postman提供了独立的安装包&#xff0c;不再依赖于Chrome浏览…

MySQL innodb引擎架构分析-Buffer Pool

文章目录系列文章目录前言一、Buffer Pool是什么&#xff1f;二、Buffer Pool是如何工作的&#xff1f;1. free链2. flush链根据脏页的情况(阈值)和相关配置刷新自适应刷脏3. Lru升级链总结参数&#xff1a;innodb_buffer_pool_size参数&#xff1a;innodb_buffer_pool_instanc…

避免重要数据泄露的8种方式

得益于国家的大力支持&#xff0c;我国数字化经济已开启高速发展模式&#xff0c;数据已经成为企业不可或缺的重要资产&#xff0c;相对应的数据安全风险问题也随之而来。 数据泄露不仅给企业带来了财产损失&#xff0c;也给企业带来了极大的声誉威胁。以下是日常生活中企业和…

W公司对接奥迪Audi EDI项目案例

项目背景 奥迪&#xff08;Audi&#xff09;是德国大众汽车集团子公司奥迪汽车公司旗下的豪华汽车品牌&#xff0c;作为高技术水平、质量标准、创新能力、以及经典车型款式的代表&#xff0c;奥迪是汽车品牌之一。公司总部设在德国的英戈尔施塔特&#xff0c;并在中国等许多国…