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

Linux下安装MySQL8.0的详细步骤(解压tar.xz安装包方式安装)

Linux下安装MySQL8.0的详细步骤

第一步:下载安装配置

第二步:修改密码,并设置远程连接(为了可以在别的机器下面连接该mysql)

第三步:使用Navicat客户端连接


搞了一台云服务器,首先要干的活就是得安装数据库,在Windows下安装不用说,傻瓜式操作,在Linux上安装少说要记录一下。

我使用的是XShell7 ssh 连接工具访问的Linux,其他工具的用法和命令都一样,界面如下:
在这里插入图片描述
在这里我使用的不是root用户登录的,所以先切换到root用户,命令:su

第一步:下载安装配置

  1. 切换到 /usr/local/
cd /usr/local/
  1. 创建mysql文件夹
mkdir mysql
  1. 切换到mysql文件夹下
cd mysql
  1. 下载mysql8.0安装包
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

等待下载成功

在这里插入图片描述

  1. 解压mysql8.0安装包
tar xvJf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz 

在这里插入图片描述

  1. 重命名解压出来的文件夹,这里改成mysql-8.0
mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql-8.0
  1. . /use/local/mysql-8.0文件夹下创建data文件夹 存储文件
mkdir data
  1. 分别创建用户组以及用户和密码(如果提示已存在说明之前有创建过了)
groupadd mysql
useradd -g mysql mysql
  1. 授权刚刚新建的用户
chown -R mysql.mysql /usr/local/mysql/mysql-8.0
chmod 750 /usr/local/mysql/mysql-8.0/data -R
  1. 配置环境,编辑/etc/profile文件

注意:这里有一个坑,在配置完环境变量后,需要执行source /etc/profile命令,使配置文件生效

vim /etc/profile
#--------------------------
#点击键盘上的i键,进入输入模式,在配置文件最后增加一行:
#--------------------------
export PATH=$PATH:/usr/local/mysql/mysql-8.0/bin:/usr/local/mysql/mysql-8.0/lib
#添加完成后,按Esc键退出输入模式,进入命令模式,输入:wq,保存并退出
#然后在输入cat /etc/profile  查看是否保存成功,效果如下:↓↓↓↓↓↓

在这里插入图片描述
11. 编辑my.cnf文件

vim /etc/my.cnf
[mysql]
default-character-set=utf8mb4
[client]
#port=3306
socket=/var/lib/mysql/mysql.sock
[mysqld]
#port=3306
#server-id=3306
user=mysql
general_log = 1
general_log_file= /var/log/mysql/mysql.log
socket=/var/lib/mysql/mysql.sock
basedir=/usr/local/mysql/mysql-8.0
datadir=/usr/local/mysql/mysql-8.0/data
log-bin=/usr/local/mysql/mysql-8.0/data/mysql-bin
innodb_data_home_dir=/usr/local/mysql/mysql-8.0/data
innodb_log_group_home_dir=/usr/local/mysql/mysql-8.0/data/
character-set-server=utf8mb4
lower_case_table_names=1
autocommit=1
default_authentication_plugin=mysql_native_password
symbolic-links=0
# Disabling symbolic-links is recommended to prevent assorted security risks
# 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=/usr/local/mysql/mysql-8.0/data/mysql.log
pid-file=/usr/local/mysql/mysql-8.0/data/mysql.pid
#
# include all files from the config directory
  1. 切换到/usr/local/mysql/mysql-8.0/bin目录下
cd bin
  1. 初始化基础信息,得到数据库的初始密码(在/usr/local/mysql/mysql-8.0/bin目录下执行)
./mysqld --user=mysql --basedir=/usr/local/mysql/mysql-8.0 --datadir=/usr/local/mysql//mysql-8.0/data/ --initialize
#初始化完成后,复制最后的初始密码,保存下来后面需要(这一步好像并没有用)
#igTn=3j-
  1. 复制 mysql.server 文件,在/usr/local/mysql/mysql-8.0目录下执行
cp -a ./support-files/mysql.server /etc/init.d/mysql 
cp -a ./support-files/mysql.server /etc/init.d/mysqld
  1. 赋予权限
chown 777 /etc/my.cnf
chmod +x /etc/init.d/mysql
chmod +x /etc/init.d/mysqld
  1. 检查一下/var/lib/mysql是否存在,否则进行创建
mkdir /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql/ 
  1. 启动数据库,有SUCCESS字眼说明MySQL安装完成
service mysql start 
#出现SUCCESS 说明启动成功,效果图如下:

在这里插入图片描述
ps:
如果发现启动失败,可以先查看data里面的mysql.log,如果有提示3306这样的字样,第一个想到的应该是端口被占用,
使用lsof -i:端口号,查看是哪个PID(进程号)占用了该端口,然后使用kill PID(进程号)杀掉进程,重新执行service mysql start

第二步:修改密码,并设置远程连接(为了可以在别的机器下面连接该mysql)

在这一步最开始就浪费了我好大的时间。如果用之前的初始密码登录,可能会出现以下的错误:
在这里插入图片描述
在这一步的时候,研究了好久,记录一下处理过程:

  • 在 vim /etc/my.cnf文件中,在[mysqld]的段中加上一句:skip-grant-tables --跳过密码验证
  • 然后保存退出,重启MySQL服务
  • 然后输入mysql -uroot -p 敲两下回车,进入mysql
  • USE mysql ; --进入数据库
  • 在mysql8.0 中,这个更新语法不能用UPDATE user SET Password = password ( ‘new-password’ ) WHERE User = ‘root’ ; 使用这个:ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘新密码’;
  • 最后按照下边的步骤进行就可以了。
  1. 修改数据库root账号的密码,并设置可以远程访问(因为root默认是不能远程访问的)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
  1. 执行flush privileges; 使密码生效
flush privileges;#刷新权限
  1. 选择数据库
use mysql;
  1. 再修改远程连接并生效
mysql> create user 'root'@'%' identified by  'password';
Query OK, 0 rows affected (0.03 sec)
mysql> grant all privileges on *.* to 'root'@'%' with grant option;
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
  1. 执行提交命令,搞定!
flush privileges;#刷新权限

第三步:使用Navicat客户端连接

1.填写IP、端口连接mysql服务

在这里插入图片描述

注:若连接不到可以查看mysql端口是否开放,若未开放则开放端口继续连接,最终测试成功!!!

http://www.lryc.cn/news/14176.html

相关文章:

  • leaflet 绘制多个点的envelope矩形(082)
  • CAJ论文怎么批量免费转换成Word
  • 面试必问: 结构体大小的计算方法
  • Java中super函数的用法
  • 第十一届“泰迪杯”数据挖掘挑战赛携“十万”大奖火热来袭
  • 分享三个可以在家做的正规兼职工作,看到就是赚到
  • javaFx实现鼠标穿透画布,同时操作画布和桌面,背景透明,类似ppt批注
  • 客户服务知识库的最佳实践7个步骤
  • 多重继承的虚函数表
  • 第11篇:Java开发工具使用和代码规范配置
  • Rust模式匹配
  • GIT:【基础一】必要配置和命令
  • 黑马程序员-Linux系统编程-01
  • Python|每日一练|动态规划|图算法|散列表|数组|双指针|单选记录:不同路径|求两个给定正整数的最大公约数和最小公倍数|删除有序数组中的重复项
  • Java常用框架(一)
  • 基于 DSP+FPGA 的高清图像跟踪系统研制
  • apisix部署
  • 无聊小知识01.serialVersionUID的作用
  • pytorch搭建手写数字识别LeNet-5网络,并用tensorRT部署
  • 扬帆优配|五千亿巨头一度涨停! 4天3倍,港股又现“狂飙”股!
  • RocketMQ之(一)RocketMQ入门
  • 推荐系统[三]:粗排算法常用模型汇总(集合选择和精准预估),技术发展历史(向量內积,WideDeep等模型)以及前沿技术
  • vue3 + vite 使用 svg 可改变颜色
  • SQL82 返回 2020 年 1 月的所有订单的订单号和订单日期
  • vulnhub zico2
  • 处理窗口的常用API函数及窗口处理经验总结(附源码)
  • @TableId注解详细介绍
  • kubectl常用的命令
  • Linux 配置远程SSH服务(密码+密钥)
  • WuThreat身份安全云-TVD每日漏洞情报-2023-02-20