【Linux】linux_mysql8.0_安装配置,以及忘记密码重置密码

10 篇文章 0 订阅
6 篇文章 0 订阅

注意mysql8.0及以上版本如果要设置忽略大小写,必须要在数据库初始化之前加上忽略的配置,安装完成之后再去改配置行不通,会导致无法启动

删除自带的数据库

rpm -qa |grep mysql
rpm -qa |grep mariadb

在这里插入图片描述

 rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64

开始安装

1)、将安装包上传至服务器并解压:

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

2)、将解压后的文件夹重名名为“mysql”,并将其移动到 /usr/local/src目录下面

mv mysql-8.0.13-linux-glibc2.12-x86_64 mysql
mv ./mysql/ /usr/local/src/

3)、切换目录到usr/local/src下,并使用命令创建用户组和用户

cd /usr/local/src/
groupadd mysql
useradd -r -g mysql mysql

4)、为/usr/local/src/mysql/目录下所有文件授权
在这里插入图片描述

5)、在/usr/local/src/mysql/目录下新建一个文件夹data

在这里插入图片描述

mkdir data

6)、修改/usr/local/src/mysql/当前目录的用户

执行命令时可以看到本目录下所有的文件夹和文件的拥有者发生了变化(变更前拥有者是mysql,变更后拥有者是root)
命令:

chown -R root:root ./
chown -R mysql:mysql data

在这里插入图片描述
在这里插入图片描述

7)、进入support-files目录,并在该目录下新建一个文件,文件名为my-default.cnf,并赋所有权限。再把该文件复制到/etc目录下,并将文件重命名为my.cnf
创建文件:

touch my-default.cnf

赋权限:

chmod 777 ./my-default.cnf

复制文件到/etc目录下并重命名为my.cnf:

cp /usr/local/src/mysql/support-files/my-default.cnf /etc/my.cnf

在这里插入图片描述

8)、打开/etc/my.cnf文件,并将配置写入该文件并保存。
文件内容:

[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.

basedir = /usr/local/src/mysql
#MySQL的安装路径

datadir = /usr/local/src/mysql/data
#MySQL数据库文件存放路径

socket = /tmp/mysql.sock

#skip-grant-tables
#该参数可以让MYSQL服务器不加载权限判断,任何用户都能访问数据库。也就是说,启用这个参数之后,数据库的安全性会降低

log-error = /usr/local/src/mysql/data/error.log
#报错日志存放路径

pid-file = /usr/local/src/mysql/data/mysql.pid

#此目录被MySQL用来保存临时文件.例如,它被用来处理基于磁盘的大型排序,和内部排序一样.以及简单的临时表.
# 如果你不创建非常大的临时文件,将其放置到 swapfs/tmpfs 文件系统上也许比较好.另一种选择是你也可以将其放置在独立的磁盘上.
# 你可以使用”;”来放置多个路径,他们会按照roud-robin方法被轮询使用.
tmpdir = /tmp

port = 3306
#MySQL端口(默认是3306

lower_case_table_names = 1
#不区分大小写(1是不区分大小写,0是区分大小写)

# server_id = .....
# socket = .....
#lower_case_table_names = 1
max_allowed_packet=32M
default-authentication-plugin = mysql_native_password
#lower_case_file_system = on
#lower_case_table_names = 1
log_bin_trust_function_creators = ON
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

skip-name-resolve
#该选项禁用DNS解析,解决mysql在远程访问时非常慢的问题。不过,这样的话就不能在MySQL的授权表中使用主机名了而只能用ip格式。

9)、初始化数据库,并会自动生成随机密码,记下等下登陆要用
初始化命令:

/usr/local/src/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/src/mysql --datadir=/usr/local/src/mysql/data

在这里插入图片描述

初始化完成后可以看到data目录下出现了一些文件
如果需要重新初始化可以把这些文件删除,重新执行初始化语句在这里插入图片描述

正常情况下:
可以看到初始密码是:wyZ,0JN+e#S-
在这里插入图片描述
但是我初始化的时候并没有看到这些信息:
我发现在data目录下有个error.log可以查看到初始密码
在这里插入图片描述

10)设置开机自动启动mysql的功能
1、切换目录:

cd /usr/local/src/mysql/support-files

2、 将当前目录下的mysql.server文件拷贝到/etc/init.d/目录下,并将文件重命名为mysql,

cp mysql.server /etc/init.d/mysql

3、给/etc/init.d/mysql文件赋予可执行权限:

cd /etc/rc.d/init.d/
chmod +x mysql

在这里插入图片描述

11)、为了开机能自动启动,需要向linux系统注册服务,命令是:

chkconfig --add mysql

如果该命令执行报错,请看这篇文章的第11点进行解决:https://blog.csdn.net/weixin_42109071/article/details/89375748
并使用命令

chkconfig --list mysql

查看是否成功,只要有信息展示说明就是成功了
在这里插入图片描述

12)、打开/etc/ld.so.conf文件,并把路径“ mysql安装路径/lib ”添加到该文件中,不然会报错。(注意,etc目录下有一个跟该文件同名的文件夹,但我们此处要编辑的是文件而不是文件夹,不要搞错了。)
在这里插入图片描述

13)、配置环境变量
1、将“ /usr/local/src/mysql/bin” 和“ /usr/local/src/mysql/lib ”的路径添加到/etc/profile文件的export PATH=$PATH: 冒号后面并保存该文件(如果有多个环境变量,需使用英文冒号分隔开)

vi /etc/profile

环境变量一、/usr/local/src/mysql/bin
环境变量二、/usr/local/src/mysql/lib
两个环境变量之间使用英文冒号隔开

export PATH=$PATH:/usr/local/src/mysql/bin:/usr/local/src/mysql/lib

2、为了在不重启的前提下可以让环境变量立即生效,需执行命令:

source /etc/profile
  1. 启动mysql服务:
service mysql start

15)、使用mysql -uroot -p登录mysql,并输入随机生成的密码。
这是刚刚生成的随机密码

!dGlnxo.c5)L

可能遇到的问题:找不到初始密码,或者以后忘记密码了

免密码登陆

1:免密码登陆
找到mysql配置文件:my.cnf,
在【mysqld】模块添加:

skip-grant-tables

保存退出;

2://使配置生效
重启mysql服务:

service mysql restart

3://将旧密码置空

mysql -u root -p    //提示输入密码时直接敲回车。
//选择数据库
use mysql
//将密码置空
update user set authentication_string = '' where user = 'root';
//退出
quit

4:去除免密码登陆
删掉步骤1的语句

skip-grant-tables

重启服务

service mysqld restart

5://修改密码

mysql -u root -p  //提示输入密码时直接敲回车,刚刚已经将密码置空了
ALTER USER 'root'@'localhost' IDENTIFIED BY 'abc123@xxx';//'abc123@xxx'  密码形式过于简单则会报错

在这里插入图片描述

如果报错 ERROR 2002,提示因丢失了套接字文件导致不能连接mysql
解决:通过reboot命令重启一下服务器可以解决该问题

修改初始密码

再次进入mysql,并输入初始密码(随机生成),同时把初始密码修改为自己想要的密码,
命令为:

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';  #(密码设置的过于简单可能报错)
FLUSH PRIVILEGES; #立即生效

在这里插入图片描述
16)、开启远程连接:

use mysql; #使用该命令进入“mysql”这个自带的库
select host, user, authentication_string, plugin from user; # 查看用户信息
update user set host="%" where user="root"; # 任意ip都可访问(允许远程连接数据库)
flush privileges; #立即生效
quit; #退出登录

可能遇到的问题

注意:在user mysql时可能报错

 ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. 

此时执行如下SQL语句可解决:

ALTER USER USER() IDENTIFIED BY 'root'

17)、在使用navicat连接mysql的时候,可能会发现很慢,不只是连接。打开库、表、执行查询时都有可能存在该问题。那么可能是由于mysql在安装时配置文件中没有加一个参数,只需要把该配置项加入,重启mysql即可解决该问题。
直接打开 /etc/my.cnf/文件,在文件中加入:

skip-name-resolve

保存文件,重启mysql即可。
在这里插入图片描述

18)使用navicat测试一下,看看是否可以正常连接使用

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值