linux 完整安装 mysql 5.7 及半路遇到的问题

2024-01-06 15:08

本文主要是介绍linux 完整安装 mysql 5.7 及半路遇到的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、下载   (mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz)

下载mysql:官网下载略慢,可以在CSDN快速下载

2、解压,改名

[root@localhost mysql]# tar -zxfv mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz -C  /usr/local

[root@localhost mysql]# mv mysql-5.7.31-linux-glibc2.12-x86_64/  mysql-5.7.31

3、创建data文件夹

[root@localhost mysql]# cd mysql-5.7.31/

[root@localhost mysql]# mkdir data

4、查看是否有mysql用户,如果提示不存在,则创建mysql用户

  [root@localhost mysql]# groups mysql
  [root@localhost mysql]# groupadd mysql
  [root@localhost mysql]# useradd -r -s /sbin/nologin -g mysql mysql -d  /usr/local/mysql-5.7.31

5、给mysql用户赋权限

[root@localhost mysql]# chown -R mysql ./

[root@localhost mysql]# chgrp -R mysql ./

[root@localhost mysql]# chown -R mysql:mysql data

6、配置参数

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

注意:此处会生成一个密码,记得要保存好密码

7、生成mysql密钥对

[root@localhost mysql]# bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql-5.7.31/data/mysql

8、复制server文件到指定目录

[root@localhost mysql]# cd support-files/

[root@localhost mysql]# cp mysql.server /etc/init.d/mysql

9、更改server文件中安装目录

[root@localhost mysql]# vi /etc/init.d/mysql

将红框内的内容修改为安装目录地址:

9、此时启动mysql服务可能报错

启动mysql服务指令:

[root@localhost mysql]# /etc/init.d/mysql start

# service mysql start    # mysql服务名就是 /etc/init.d/mysql 中的mysql

# service mysql stop    # mysql服务名就是 /etc/init.d/mysql 中的mysql

# service mysql status    # mysql服务名就是 /etc/init.d/mysql 中的mysql

报错如下,原因是没有mariadb和mariadb.log。

[root@localhost mysql]#  /etc/init.d/mysql start
Starting MySQL.2020-02-13T05:45:18.227723Z mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
 ERROR! The server quit without updating PID file (/var/lib/mysql/bogon.pid).

创建日志目录及日志文件即可:

[root@localhost mysql]# cd /var/log/

[root@localhost mysql]# mkdir mariadb

[root@localhost mysql]# cd mariadb/

[root@localhost mysql]# touch mariadb.log

10、此时启动mysql服务可能报错:

[root@localhost mysql]# /etc/init.d/mysql start
Starting MySQL.2020-02-13T05:47:39.907062Z mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.
 ERROR! The server quit without updating PID file (/var/lib/mysql/bogon.pid).

修改my.cnf中的配置即可,将mysqld_safe下的配置注释:

11、此时启动mysql服务会显示启动成功

12、必要时可以创建软连接,启动mysql

[root@localhost mysql]# ln -s /usr/local/mysql-5.7.31/bin/mysql  /usr/bin/

13、使用root用户登录mysql,密码就是刚才生成的密码

[root@localhost mysql]# mysql -hlocalhost -uroot -pMC=O3YI>ZEh?Amo
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.31 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]>

 

如果忘记root密码,按如下方法可以进行重置:

① 先修改/etc/my.cnf下配置,添加红框内配置

[root@localhost mysql]# vi /etc/my.cnf

② 重启mysql 

[root@localhost mysql]# service mysql restart

③ 登录 mysql -uroot  直接回车

选择数据库

MySQL [(none)]> use mysql;  记得用 ; 或者\g 结尾

下面修改密码:

以前的版本我们用的是以下修改
MySQL [(none)]>  update user set password=password('root') where user='root';
但是在5.7版本中不存在password字段,所有我们要用以下修改进行重置密码
MySQL [(none)]>  update user set authentication_string=password('123456') where user='root';
执行
MySQL [(none)]> flush privileges;
④ 退出mysql
MySQL [(none)]> \q;
⑤ 将最开始修改的配置文件my.cnf中的skip-grant-tables删除
⑥ 重启mysql,重置完成

 

14、更改root账户密码,创建远程链接

此时已经进入mysql语句界面,输入行显示mysql>,注意sql语句使用分号结尾

MySQL [(none)]> set password=password('123456');

MySQL [(none)]> grant all privileges on *.* to 'root'@'%' identified by 'root';

MySQL [(none)]> flush privileges;

MySQL [(none)]> show databases;

MySQL [(none)]> \q 

 

15、通过navicat或者其他工具远程链接

可能存在无法连接的情况,需要关闭防火墙和SELINUX

# 防火墙关闭

[root@localhost mysql]# systemctl stop firewalld.service

[root@localhost mysql]# systemctl disable firewalld.service

# 关闭selinux

[root@localhost mysql]# setenforce 0

[root@localhost mysql]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

16、设置开机自启

将myslq的server文件加入到自启动列表

[root@localhost mysql]# chkconfig --add /etc/init.d/mysql

查看自启列表

[root@localhost mysql]# chkconfig --list

Note: This output shows SysV services only and does not include native

systemd services. SysV configuration data might be overridden by native

systemd configuration.

If you want to list systemd services use 'systemctl list-unit-files'.

To see services enabled on particular target use

'systemctl list-dependencies [target]'.

mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off

netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off

network 0:off 1:off 2:on 3:on 4:on 5:on 6:off

设置自启成功。

 

-----------------------------------至此mysql5.7 成功完成安装。

这篇关于linux 完整安装 mysql 5.7 及半路遇到的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/576725

相关文章

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分

MySQL的JDBC编程详解

《MySQL的JDBC编程详解》:本文主要介绍MySQL的JDBC编程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、前置知识1. 引入依赖2. 认识 url二、JDBC 操作流程1. JDBC 的写操作2. JDBC 的读操作总结前言本文介绍了mysq

java.sql.SQLTransientConnectionException连接超时异常原因及解决方案

《java.sql.SQLTransientConnectionException连接超时异常原因及解决方案》:本文主要介绍java.sql.SQLTransientConnectionExcep... 目录一、引言二、异常信息分析三、可能的原因3.1 连接池配置不合理3.2 数据库负载过高3.3 连接泄漏

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

Python实现Excel批量样式修改器(附完整代码)

《Python实现Excel批量样式修改器(附完整代码)》这篇文章主要为大家详细介绍了如何使用Python实现一个Excel批量样式修改器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录前言功能特性核心功能界面特性系统要求安装说明使用指南基本操作流程高级功能技术实现核心技术栈关键函

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T