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

相关文章

使用Python创建一个功能完整的Windows风格计算器程序

《使用Python创建一个功能完整的Windows风格计算器程序》:本文主要介绍如何使用Python和Tkinter创建一个功能完整的Windows风格计算器程序,包括基本运算、高级科学计算(如三... 目录python实现Windows系统计算器程序(含高级功能)1. 使用Tkinter实现基础计算器2.

MySQL主从同步延迟问题的全面解决方案

《MySQL主从同步延迟问题的全面解决方案》MySQL主从同步延迟是分布式数据库系统中的常见问题,会导致从库读取到过期数据,影响业务一致性,下面我将深入分析延迟原因并提供多层次的解决方案,需要的朋友可... 目录一、同步延迟原因深度分析1.1 主从复制原理回顾1.2 延迟产生的关键环节二、实时监控与诊断方案

SQLyog中DELIMITER执行存储过程时出现前置缩进问题的解决方法

《SQLyog中DELIMITER执行存储过程时出现前置缩进问题的解决方法》在SQLyog中执行存储过程时出现的前置缩进问题,实际上反映了SQLyog对SQL语句解析的一个特殊行为,本文给大家介绍了详... 目录问题根源正确写法示例永久解决方案为什么命令行不受影响?最佳实践建议问题根源SQLyog的语句分

慢sql提前分析预警和动态sql替换-Mybatis-SQL

《慢sql提前分析预警和动态sql替换-Mybatis-SQL》为防止慢SQL问题而开发的MyBatis组件,该组件能够在开发、测试阶段自动分析SQL语句,并在出现慢SQL问题时通过Ducc配置实现动... 目录背景解决思路开源方案调研设计方案详细设计使用方法1、引入依赖jar包2、配置组件XML3、核心配

MySQL数据库约束深入详解

《MySQL数据库约束深入详解》:本文主要介绍MySQL数据库约束,在MySQL数据库中,约束是用来限制进入表中的数据类型的一种技术,通过使用约束,可以确保数据的准确性、完整性和可靠性,需要的朋友... 目录一、数据库约束的概念二、约束类型三、NOT NULL 非空约束四、DEFAULT 默认值约束五、UN

windows和Linux使用命令行计算文件的MD5值

《windows和Linux使用命令行计算文件的MD5值》在Windows和Linux系统中,您可以使用命令行(终端或命令提示符)来计算文件的MD5值,文章介绍了在Windows和Linux/macO... 目录在Windows上:在linux或MACOS上:总结在Windows上:可以使用certuti

MySQL 多表连接操作方法(INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN)

《MySQL多表连接操作方法(INNERJOIN、LEFTJOIN、RIGHTJOIN、FULLOUTERJOIN)》多表连接是一种将两个或多个表中的数据组合在一起的SQL操作,通过连接,... 目录一、 什么是多表连接?二、 mysql 支持的连接类型三、 多表连接的语法四、实战示例 数据准备五、连接的性

解决IDEA报错:编码GBK的不可映射字符问题

《解决IDEA报错:编码GBK的不可映射字符问题》:本文主要介绍解决IDEA报错:编码GBK的不可映射字符问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录IDEA报错:编码GBK的不可映射字符终端软件问题描述原因分析解决方案方法1:将命令改为方法2:右下jav

MySQL中的分组和多表连接详解

《MySQL中的分组和多表连接详解》:本文主要介绍MySQL中的分组和多表连接的相关操作,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录mysql中的分组和多表连接一、MySQL的分组(group javascriptby )二、多表连接(表连接会产生大量的数据垃圾)MySQL中的

Linux之systemV共享内存方式

《Linux之systemV共享内存方式》:本文主要介绍Linux之systemV共享内存方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、工作原理二、系统调用接口1、申请共享内存(一)key的获取(二)共享内存的申请2、将共享内存段连接到进程地址空间3、将