Linux中安装mysql8,很详细
Linux中安装mysql8,很详细
一、先前往官网下载mysql8
下载地址:
https://dev.mysql.com/downloads/
选择Linux
二、删除Linux中的mysql(如果有的话),上传安装包
1、先查看mysql是否存在,命令如下:
rpm -qa|grep -i mysql
如果使用这个命令之后没有出现任何内容,表示没有安装过mysql,如果有出现,则删除。
2、如果存在,那么停止mysql,删除所有的服务
三、解压安装MySQL
1、解压MySQL压缩包
tar xvJf “你的安装包名称”,我这里是
tar xvJf mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
2、重命名解压后的MySQL
觉得解压之后的MySQL文件夹名称太长了,可以 mv “原文件名称” “新文件名称”,重命名一下,注意如果是在当前文件中重命名,新文件名中不能包含斜杆“/”,这是我的
mv mysql-8.0.31-linux-glibc2.12-x86_64 mysql-8.0.31
3、进入MySQL根目录,创建data文件夹
进入根目录
cd mysql-8.0.31/
创建data文件
mkdir data
四、创建mysql组和用户
这个我没发现有什么用,但很多教程都这么做,我这里也创建一下。
1、创建mysql组
groupadd mysql
2、创建mysql用户
useradd -g mysql mysql
出现这样的提示表示已经创建过mysql组和用户了。
3、将安装的MySQL权限给mysql用户
命令,chown -R “mysql组名”.“mysql用户名” “mysql安装根目录”
chown -R mysql.mysql /usr/MYSQL/mysql-8.0.31
五、MySQL初始化
在初始化之前提一嘴,Linux中的MySQL默认是区分表明大小写的,如果你是安装的也是MySQL8,那么不区分大小需要在数据库初始化时设置,不然初始化后,在配置文件在设置重启时是会报错的。
进入MySQL的bin目录进行初始化
./mysqld --user=mysql --basedir=/usr/MYSQL/mysql-8.0.31 --datadir=/usr/MYSQL/mysql-8.0.31/data --lower-case-table-names=1 --initialize
–lower-case-table-names=1 即设置不区分表明大小写,最后面的 dwW3</EIewj 为初始化生产的临时密码。
六、修改MySQL配置文件
初次进入时配置是空的,进入命令
vim /etc/my.cnf
[mysqld]
port=3306
basedir=/usr/MYSQL/mysql-8.0.31/ # MySQL根目录
datadir=/usr/MYSQL/mysql-8.0.31/data/ # MySQL的data目录
socket=/tmp/mysql.sock
character-set-server=UTF8MB4
symbolic-links=0
#解决“java.sql.SQLException: Expression #1 of ORDER BY clause is not in SELECT list,references column”
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
保存退出
七、添加服务到系统
进入MySQL根目录,直接复制粘贴命令即可。
cp -a ./support-files/mysql.server /etc/init.d/mysql
八、授权以及添加服务
这里授权和添加服务都是在MySQL的根目录中操作。
1、授权
chmod +x /etc/init.d/mysql
2、添加服务
chkconfig --add mysql
九、启动MySQL
启动MySQL命令
service mysql start
查看MySQL状态
service mysql status
十、将MySQL命令添加到服务
命令: ln -s “你的MySQL根目录/bin/mysql” /usr/bin ,这一步是为了能在任何地方通过用户名和密码登录MySQL,这是我的
ln -s /usr/MYSQL/mysql-8.0.31/bin/mysql /usr/bin
十一、修改密码
1、先使用前面初始化拿到的临时密码登录
mysql -uroot -p
输入的密码是不显示的
2、切换到mysql数据库
切换mysql命令
use mysql
查询用户表命令
select Host, User from user;
可以看到允许访问root的host有哪些,%表示所有,这里只有localhost,修改密码不成功可以看一下root对应的host的值。
3、修改密码
修改密码的命令为:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
修改之后需要刷新,使密码生效
flush privileges;
4、踩坑,修改成功可以不看
(1)、设置简单密码报错
初次修改密码时,如果设置过于简单的密码可能会报错,可以使用命令
show variables like 'validate_password%';
validate_password_policy 的默认值为 1 或者 MEDIUM,表示密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
validate_password_length 的默认值为 8,表示密码长度为8。
注意查看密码安全策略的这步,只有初始密码登录MySQL才能查到结果,修改密码再次使用此命令查询没有结果。
设置简单密码策略
set global validate_password_policy=0;
设置密码长度
set global validate_password_length=6;
这样设置之后就可以将密码修改为“123456”了。
(2)修改密码报错
有些朋友修改密码时会报错,原因可能就在这里,假如你修改密码的命令为:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
那么是没有问题的,如果你修改密码的命令为:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
那么可能就会报错。
解决办法,使用如下命令:
update user set Host='%' where User='root';
将root用户对应的Host改为“%”再重新修改密码就行了。
记得修改密码后用命令
flush privileges;
刷新一下密码,不然修改的密码是不生效的。
相关文章
- TimeVAE:用于生成多变量时间序列的变异自动编码器
- 具有线性阈值激活的神经网络:结构和算法
- 内网渗透之横向移动 -- 从域外向域内进行密码喷洒攻击
- [战力升级]腾讯云首款ARM架构实例重磅发布!体验全新架构算力!
- 计算机专业开题报告这么写,有效有用还能过
- 《云荐大咖》Vol.2:以创始人视角了解DNSPod;鹅厂前端开发大佬教你升职加薪
- 2011年最热门的开源PHP项目回顾
- disruptor笔记之三:环形队列的基础操作(不用Disruptor类)
- 2021-11-17:最长同值路径。给定一个二叉树,找到最长的路
- Istio 实践手册 | 迎接新一代微服务架构
- Go语言核心36讲(Go语言实战与应用七)--学习笔记
- Moment.js 如何获得当前时间的零时时间
- Moment.js 如何使用 Epoch Time 来构造对象
- linux之抓包神器tcpdump
- Global Platform Tech Studio
- Gin 框架:实现分布式日志追踪
- 简述消息队列在电商系统使用场景以及工作模式
- PHP 5.4将被包含进Fedora 17
- 一文讲透自适应熔断的原理和实现
- 说透 Docker:虚拟化