源码mysql5.7安装过程_mysql5.7 源码安装步骤

操作系统:centos 7

说明:以下都是root用户操作的。

一、数据库安装

1、查看系统是否有旧版的mysql

# rpm -qa |egrep -i 'mysql|mariadb'

8be78e8630d3b0f1b936daec1a5cbf43.png

如果有的话请先卸载,卸载命令:

# rpm -ev 软件包名称

2、查看老版本mysql相关的安装目录:

# find / -name mysql

有的话就删掉

3、创建/data/mysql目录用于存放mysql软件包,并下载软件包

4、解压软件包并重命名

# cd /data/mysql

# tar zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

# mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql-5.7.24

5、创建mysql用户(如果原来已经存在该用户,可以继续使用,也可以重新删除创建,删除用户命令: userdel -r mysql)

# groupadd mysql

# useradd-r -s /sbin/nologin -g mysql mysql

# getent passwd mysql #该命令用于查看是否成功创建mysql用户

mysql:x:986:1001::/home/mysql:/sbin/nologin

7、修改/etc/my.cf文件

[mysqld]

skip-name-resolve

basedir=/data/mysql/mysql-5.7.24 #新添加的,用于mysql初始化的时候去找相应的lib库等等。datadir=/data/mysql/mysql-5.7.24/data #原配置修改的,存放数据的目录

socket=/data/mysql/mysql-5.7.24/mysql.sock #原配置修改的,mysql的sock文件

# Disabling symbolic-links isrecommended to prevent assorted security risks

symbolic-links=0# Settings user and group are ignored when systemdisused.

# If you need to run mysqld under a different user or group,

# customize your systemd unit fileformariadb according to the

# instructionsin http://fedoraproject.org/wiki/Systemd

[mysqld_safe]

log-error=/data/mysql/mysql-5.7.24/mysql.err-log #原配置修改的,mysql错误日志存放路径

character-set-server=utf8 #添加的,指定字符编码

pid-file=/data/mysql/mysql-5.7.24/mysql.pid #原配置修改的,指定pid

#

# include all filesfromthe config directory

#!includedir /etc/my.cnf.d

或者:

[mysqld]

server-id=1

max_connections=3000

basedir = /data1/hadoop/mysql

datadir = /data1/hadoop/mysql/data

port = 3306

secure_file_priv=/data1/hadoop/mysql/data

query_cache_type=1

query_cache_size=120M

query_cache_min_res_unit=4096

character_set_server=utf8

#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

general_log=ON

slow_query_log=1

long_query_time=2

log-error=/data1/hadoop/mysql/logs/mysql.err

log_bin=/data1/hadoop/mysql/logs/mysql-bin

slow-query-log-file=/data1/hadoop/mysql/logs/slowquery.log

socket = /data1/hadoop/mysql/mysql.sock

symbolic-links=0

pid-file=/data1/hadoop/mysql/mysql.pid

[client]

socket=/data1/hadoop/mysql/mysql.sock

default-character-set=utf8

[mysql]

default-character-set=utf8

7、创建数据目录,日志目录等并授权

# cd /data/mysql/mysql-5.7.24# mkdir data

# touch {mysql.sock,mysql.err-log,mysql.pid}

# chmod755 data/ mysql.err-log mysql.pid mysql.sock

# chown-R mysql:mysql /data/mysql/mysql-5.7.24

8、数据库初始化

# cd /data/mysql/mysql-5.7.24/bin/

# ./mysqld --initialize --user=mysql --basedir=/data/mysql/mysql-5.7.24 --datadir=/data/mysql/mysql-5.7.24/data

66cad132f964981d6480dbd76aaea0ff.png

注:localhost:后面生成的是数据库的密码,请保存下来。

9、后台启动

# ./mysqld_safe --user=mysql &

10、查看进程,以确定是否启动成功

# ps -ef |grep mysql

2624946bc4e5218b0a3c67de2cf994a9.png

11、测试连接

# ./mysql -uroot -p

Enter password: # 刚刚生成的那个随机密码

在这里出错了,报错如下:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 提示找不到sock文件,在这里的话就去/etc/my.cnf文件里面把socket这一行改成/tmp/mysql.sock吧,如下:

socket=/tmp/mysql.sock

然后重新启动mysql,就可以正常进入到数据库了。

70e21fcc99886eac9112be1b821cb4f8.png

12、修改环境变量

每次进入数据库都要去bin目录执行对应的脚本,所以,这里设置环境变量更方便一点

# vim ~/.bashrc

文件最后添加如下两行:

export MYSQL_HOME=/data/mysql/mysql-5.7.24/

export PATH=$PATH:${MYSQL_HOME}/bin

192837c92fa144086610863fe78f3eef.png

# source ~/.bashrc

13、配置mysql的启动

# cp /data/mysql/mysql-5.7.24/support-files/mysql.server /etc/init.d/mysql

# vim /etc/init.d/mysql

修改如下两行的值,这两行默认为空。

9c35eabdb7f461aca8fc8952a408c6c7.png

以后就可以通过/etc/init.d/mysql start方式启动数据库了

7267dc494b641f45a69cb3fb3778b135.png

好了,基本安装就算完成了。

二、数据库修改密码和授权

修改数据库密码,刚刚生成的密码不太好记,所以我们这里修改一个自己熟悉的比较好记的密码,我这里测试,密码就设置的比较简单,生成环境建议设置的复杂一些;

第一种修改root密码的方式:(用mysqladmin命令行工具)

# mysqladmin -uroot -p '旧密码' password '新密码'

例:mysqladmin -uroot -p 'Pnh=?_Edg2+V' password '123456'

第二种方式:(登录数据库,用set password方式)

mysql> set password for 用户名@localhost = password('新密码');

例:mysql>set password for root@localhost = password('123');

d6596f9e7610f9e1884419e43a866237.png

第三种方式:(用update直接修改user表)

mysql>use mysql;

mysql>update user set password=password('1234') where user='root' and host='localhost';

mysql>flush privileges;

第四种方法:如果刚刚生成的随机密码忘记了怎么办?

解决:

# mysqld --skip-grant-tables #启动mysql服务的时候跳过权限表认证。注:这个窗口不会关闭,需要重新开启另外一个端口进行操作,执行这个命令的时候我这里报错了,如下:

[ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!

解决:打开/etc/my.cnf,在mysqld下面添加user=mysql就ok

在另外一个端口执行mysql进入数据库控制台

# mysql

mysql>use mysql

mysql>update user set password=password("123456789") where user="root";

mysql>flush privileged

2、远程授权

进入数据库

# mysql-u root -p

mysql>grant all privileges on *.* to 'root'@'%' identified by '123' with grant option;

mysql>flush privileges;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/442298.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot2整合mysql5_SpringBoot2.X (二十五):SpringBoot整合 Mybatis + MySQL CURD 示例

话不多数,直接开始撸代码…工程结构图开始之前先放张工程结构图1、maven 依赖:org.springframework.bootspring-boot-starter-weborg.mybatis.spring.bootmybatis-spring-boot-starter1.3.2com.github.pagehelperpagehelper-spring-boot-starter1.2.9com…

mysql crash 如何导出数据库_mysql 如何做到crash后无损恢复数据的

ps真实的流程没有我说的那么简单,下面的是最基本的情况。预备知识redologbinlogWAL机制redolog简介redolog是个循环日志,其大小固定为4g,存在2个指针来定位其是否已经满了。一个指针是当前写,一个指针是当前checkpoint,其2个指针的…

python turtle画四叶草的步骤_python turtle工具绘制四叶草的实例分享

本篇文章介绍了python使用turtle库绘制四叶草的方法,代码很简单,希望对学习python的朋友有帮助。import turtleimport timeturtle.setup(650.,350,200,200)turtle.pendown()turtle.pensize(10)turtle.pencolor(green)#四叶草def draw_clover(radius,rota…

python解图片迷宫生成路径_用Python代码来解图片迷宫的方法整理

译注:原文是StackOverflow上一个如何用程序读取迷宫图片并求解的问题,几位参与者热烈地讨论并给出了自己的代码,涉及到用python对图片的处理以及广度优先(BFS)算法等。问题by Whymarrh:当给定上面那样一张JPEG图片,如何…

信号模型噪声服从零均值高斯分布_非高斯噪声下基于分数低阶循环谱的调制识别方法...

1 引言当前,绝大多数非高斯噪声的建模形式都为Alpha稳定分布噪声。首先,Alpha稳定分布符合中心极限定理,在理论上适合应用于实际场景中的噪声建模;其次,Alpha稳定分布由于其参数的可变性,包含高斯分布、柯西…

mysql 时间绝对值_datetime和timestamp--时间戳是绝对值,日期是相对值

遇到的问题:系统时间与数据库时间不一致,系统时间是8:20,存到数据库里是0:20。第一直觉是时区不同导致的。先看一段代码:Java代码public static void main(String[] args) {//System.out.println(TimeZone.getDefault());SimpleDa…

python网络编程自学_五分钟搞定Python网络编程实现TCP和UDP连接

Python网络编程实现TCP和UDP连接, 使用socket模块, 所有代码在python3下测试通过。实现TCP#!/usr/bin/env python3# -*- coding: utf-8 -*-import socket# 创建一个socket:s socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 建立连接:s.connect((www.baidu.co…

java自定义线程_Java自定义线程池详解

自定义线程池的核心:ThreadPoolExecutor为了更好的控制多线程,JDK提供了一套线程框架Executor,帮助开发人员有效的进行线程控制,其中在java.util.concurrent包下,是JDK并发包的核心,比如我们熟知的Executor…

java 垃圾回收 null_java方法中把对象置null,到底能不能加速垃圾回收

今天逛脉脉,看见匿名区有人说java中把对做置null,这种做法很菜,不能加速垃圾回收,但是我看到就觉得呵呵了,我是觉得可以加速置null对象回收的。测试的过程中,费劲的是要指定一个合理的测试堆大小&#xff0…

零基础学java web开发pdf_新手学Java Web开发.pdf

作 者 :杨磊等编著出版发行 : 北京:北京希望电子出版社 , 2010.01ISBN号 :978-7-89498-988-8页 数 : 480丛书名 : 新手学编程系列原书定价 : 49.80主题词 : 计算机编程软件,JAVA WEB中图法分类号 : TP3 ( 工业技术->…

java 外卖订餐系统_java外卖订餐系统小项目

本文实例为大家分享了java外卖订餐系统的具体代码,供大家参考,具体内容如下执行结果:通过选择功能序号,执行响应的功能:代码实现:package 外卖订餐系统;/** 代码优点,使用 循环:* 显…

java 字符串包含某个字符_java中判断字符串中是否包含某个特定字符串的方法有哪些...

判断一个字符串是否包含某个子串的n种方法:1、startsWith()方法2、contains()方法3、indexOf方法startsWith()方法这个方法有两个变体,用于检测字符串是否以指定的前缀开始。此方法定义的语法如下:public boolean startsWith(String prefix, int toffset…

java的方法调用中分不清_java中不太清晰的知识点

一、什么包需要导入,什么包不需要导入1.java.lang包的内容是自动导入的,不需要手动导入,其它必须手动导入。2.java.io.OutputStreamWrite已经是完整的类,无需再导入,而printWrite这个类,并不是调用完整的类…

java生命小游戏_Java修炼——飞机生存小游戏

在学习了java入门的课程之后,自己动手跟着老师写的一个小游戏,用的是Frame。总共有七个类。1.飞机游戏的主窗口(MyGameFrame)继承Frame。package com.bjsxt.plane;import java.awt.Color;import java.awt.Font;import java.awt.Frame;import java.awt.Gr…

链队列的基本运算java_链式队列基本操作的实现问题

问题描述:用链式存储方式实现队列的基本操作涉及变量:front:Node型自定义变量,指向队首元素rear:Node型自定义变量,指向队尾元素涉及教材:《数据结构——Java语言描述(第2版)》 清华大学出版社大…

mysql数据库优化看的书_MySQL 数据库优化,看这篇就够了

点击上方"IT牧场",选择"设为星标"技术干货每日送达!来源:segmentfault.com/a/1190000018631870前言数据库优化一方面是找出系统的瓶颈,提高MySQL数据库的整体性能,而另一方面需要合理的结构设计和参数调整,以提高用户的相…

python 升级所有库_自动更新Python所有第三方库

一般python用得比较久以后,就会安装很多第三方的库。比如这是我的pip list情况:pip list而且一屏还显示不完。通过如下命令可以看到需要更新的第三方库:pip list -o需要更新的库而pip提供的更新命令只能一个个的更新...pip install -U 库名 #…

java 反射 类变量_java反射机制取出model类的所有变量,以及value

工作上遇到个问题,顺便解决了,希望对大家有帮助package com.zuidaima.util;public static void main(String[] args) throws ClassNotFoundException, IllegalArgumentException, IllegalAccessException, InstantiationException {Class> obj Class.forName("com.roi…

php 去掉不可见字符串,php去掉指定字符串的办法

php去掉指定字符串的办法:首先创建一个PHP示例文件;然后定义字符串;最后通过“str_replace(array("_","",""),"",$str);”方法去掉指定字符串即可。推荐:《PHP视频教程》用正则可以解决问…

php文件上传并保存路径到数据库,thinkphp表单上传文件并将文件路径保存到数据库中?...

上传单个文件,此文以上传图片为例,上传效果如图所示创建数据库upload_img,用于保存上传路径CREATE TABLE seminar_upload_img ( id int(11) NOT NULL AUTO_INCREMENT, img_name varchar(255) DEFAULT NULL COMMENT 图片名称, img_url varchar(255) DE…