当前位置: 首页 > article >正文

Linux之安装MySQL

1、查看系统当前版本是多少位的

getconf LONG_BIT

在这里插入图片描述

2.去官网下载对应的MYSQL安装包

这里下载的是8版本的,位数对应之前的64位
官网地址:https://downloads.mysql.com/archives/community/
在这里插入图片描述

3.上传压缩包

在这里插入图片描述

4.到对应目录下解压

tar -xvf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz 

在这里插入图片描述

5.压缩包根据不同需要可以选择删了

 rm -rf mysql-8.0.26-linux-glibc2.12-x86_64

6.创建数据存放目录和修改解压后的目录名

# 创建存放数据的地方
mkdir data
# 修改解压后的目录名,这里改成了mysql8
mv mysql-8.0.26-linux-glibc2.12-x86_64 mysql8
# 然后把这些挪个规范一些的地方
mv /root/mysql /var/lib/mysql

7.创建用户组和用户

# 创建组
groupadd mysql
# 创建用户
useradd -g mysql mysql

8.改变mysql8目录权限

# 将mysql8给mysql用户和组mysql,前面是用户,后面是组
chown -R mysql:mysql /var/lib/mysql/mysql8/
# 数据存放的地方也要加一下,如果在在你的mysql主目录下面就不用了
chown -R mysql:mysql /var/lib/mysql/data/

9.数据库初始化

注意:
1.要先切入你安装MySQL的主目录
2.初始化可以不指定用户也就是–user=mysql,一般这个都是root干的,可以直接把这个删除

# ./bin/mysqld:这是运行mysqld服务器守护进程的命令路径。如果你是在MySQL的主目录下执行这个命令,那么它会指向MySQL的二进制文件。
# --user=mysql:指定MySQL服务将作为哪个操作系统用户运行。通常这是一个专门为MySQL创建的用户,例如'mysql'。
# --basedir=/var/lib/mysql/mysql8:定义了MySQL安装的基础目录。
# --datadir=/var/lib/mysql/data:指定了数据文件存放的目录。
# --initialize:告诉mysqld以初始化模式启动,并完成必要的初始化任务。

./bin/mysqld --user=mysql --basedir=/var/lib/mysql/mysql8 --datadir=/var/lib/mysql/data --initialize

3.初始化完成记一下密码,比如我这里是:6Vfm?<KM9qtU
在这里插入图片描述

10.修改my.cnf文件

vim /etc/my.cnf

[mysqld]
	# 基础地址
    basedir = /var/lib/mysql/mysql8 
    # 数据地址
    datadir = /var/lib/mysql/data
    # sock文件地址
    socket = /var/lib/mysql/mysql8/mysql.sock
    character-set-server=utf8
    port = 3306
   sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
 [client]
   socket = /var/lib/mysql/mysql8/mysql.sock
   default-character-set=utf8
#[mysqld]
#datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
#symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
  
#[mysqld_safe]
#log-error=/var/log/mariadb/mariadb.log
#pid-file=/var/run/mariadb/mariadb.pid
  
#
# include all files from the config directory
#
#!includedir /etc/my.cnf.d

11.创建mysql服务

  1. 将主目录里面的mysql.server复制到/etc/init.d
cp -a /var/lib/mysql/mysql8/support-files/mysql.server /etc/init.d/mysqld
  1. 赋予执行权限
chmod +x /etc/init.d/mysqld
  1. 创建mysql服务。
chkconfig --add mysqld
  1. 检查是否成功
chkconfig  --list mysqld

在这里插入图片描述

12.配置全局变量

  1. 编辑profile文件
    vim /etc/profile
  2. 在最后加上这一句
# 这个换成你的sql所在的路径
export PATH=$PATH:/var/lib/mysql/mysql8/bin:/var/lib/mysql/mysql8/lib

在这里插入图片描述
3. 保存退出
4. 重新加载配置文件

source /etc/profile
  1. 启动mysql服务看下是否有问题
service mysql start
service mysql status

在这里插入图片描述

5.1 如果失败有问题,可能是原来的mysql.service混淆导致的,改个名字

sudo mv /etc/systemd/system/mysql.service /etc/systemd/system/mysql.service.disabled

13. 修改密码

  1. 这里密码就是之前记得密码
mysql -uroot -p

在这里插入图片描述
2. 使用命令
这里就简单设置一下

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

14.使用远程登录

  1. 切换数据库
use mysql;
  1. 修改mysql库中host值
update user set host='%' where user='root' limit 1;
  1. 刷新mysql权限
flush privileges;
  1. 查看是连接成功
    在这里插入图片描述
    失败:
    如果上面连接超时失败,请检查
    1、 电脑能否ping通虚拟机,如果不能先解决这个问题
    2、打开my.cnf往上面在加一句,让他允许外部链接,然后重启mysql
vim /etc/my.cnf
bind-address = 0.0.0.0

在这里插入图片描述

重启

service mysql stop
service mysql start

3、下令防火墙开启3306端口访问,应该就可以了

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

http://www.kler.cn/a/533489.html

相关文章:

  • 基于PLC的电热水器的水箱水位控制系统(论文+源码
  • 构建一个翻译助手Agent:提升翻译效率的实践
  • 畅游Diffusion数字人(15):详细解读字节跳动最新论文——音频+姿态控制人类视频生成OmniHuman-1
  • SQL进阶实战技巧:如何构建用户行为转移概率矩阵,深入洞察会话内活动流转?
  • 【数据结构】栈与队列
  • 生成式AI安全最佳实践 - 抵御OWASP Top 10攻击 (上)
  • Oh3.2项目升级到Oh5.0(鸿蒙Next)具体踩坑记录二
  • 正则表达式详细介绍
  • 题解:洛谷 P1744 采购特价商品
  • 算法随笔_39: 最多能完成排序的块_方法2
  • embeddingbag词袋
  • 协议的种类
  • RNN/LSTM/GRU 学习笔记
  • java进阶知识点
  • 软件测试丨PyTorch 图像目标检测
  • CSS的媒体查询语法
  • Zabbix7.0安装(Ubuntu24.04+LNMP)
  • ES面试题
  • 【学Rust写CAD】4 相对坐标系详解与实现要素概览
  • YOLOv11-ultralytics-8.3.67部分代码阅读笔记-autobackend.py
  • WebSocket协议里客户端发送给服务器的数据会用4字节的掩码循环异或的分析
  • UE5 创建自定义工具上下文的方法
  • H3CIE-RS+面试——OSPF(倒计时第40天)
  • 寒假2.4:序列化漏洞
  • AWS 成本和使用情况报告:全面管理云支出和优化资源
  • 大语言模型轻量化:知识蒸馏的范式迁移与工程实践