目录

软件准备

创建用户和安装目录

mysql安装

加入service启动项

数据库备份:


软件准备

Linux服务器版本:CentOS Linux release 7.6.1810 (Core)

MySQL软件下载官网:

MySQL :: Download MySQL Community Server (Archived Versions)

我的系统是64位,选择相应选项下载。

创建用户和安装目录

useradd mysql

会自动创建mysql同名的用户组。

mkdir -p /home/mysql/data

chown -R mysql:mysql /home/mysql/data

mysql安装

解压mysql

tar -xvf mysql-5.7.24-linux-glibc2.12-x86_64.tar

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

解压后目录如下:

改目录名字:

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

编辑my.cnf文件

vim /etc/my.cnf

[mysqld]
basedir=/home/mysql/mysql57
datadir=/home/mysql/mysql57/data
#socket=/var/lib/mysql/mysql.sock
socket=/home/mysql/mysql57/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd#数据库服务器id,这个id用来在主从服务器中标记唯一mysql服务器
server-id = 1#系统数据库编码设置,排序规则
character_set_server = utf8mb4
collation_server = utf8mb4_bin#可能的连接数
#指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中。
back_log = 1024#linux下要严格区分大小写,windows下不区分大小写
#1表示不区分大小写,0表示区分大小写。
#lower_case_table_names = 0
lower_case_table_names = 0#默认sql模式,严格模式
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION#是MySQL执行排序使用的缓冲大小。如果想要增加ORDER BY的速度,首先看是否可以让MySQL使用索引而不是额外的排序阶段
#如果不能,可以尝试增加sort_buffer_size变量的大小
sort_buffer_size = 16M#应用程序经常会出现一些两表(或多表)Join的操作需求,MySQL在完成某些 Join 需求的时候(all/index join),
#为了减少参与Join的“被驱动表”的读取次数以提高性能,需要使用到 Join Buffer 来协助完成 Join操作。
#当 Join Buffer 太小,MySQL 不会将该 Buffer 存入磁盘文件,而是先将Join Buffer中的结果集与需要 Join 的表进行 Join 操作
#然后清空 Join Buffer 中的数据,继续将剩余的结果集写入此 Buffer 中,
#如此往复。这势必会造成被驱动表需要被多次读取,成倍增加 IO 访问,降低效率。
#若果多表连接需求大,则这个值要设置大一点。
join_buffer_size = 16M#索引块的缓冲区大默认16M
key_buffer_size = 15M
# 消息缓冲区会用到该列,该值太小则会在处理大包时产生错误。如果使用大的text,BLOB列,必须增加该值
max_allowed_packet = 32M# mysql服务器最大连接数值的设置范围比较理想的是:服务器响应的最大连接数值占服务器上限连接数值的比例值在10%以上
# Max_used_connections / max_connections * 100%
max_connections = 512
# 阻止过多尝试失败的客户端,如果值为10时,失败(如密码错误)10次,mysql会无条件阻止用户连接
max_connect_errors = 1000000#单服务器环境,使用skip-external-locking,关闭外部锁定,
#多服务器使用同一个数据库目录时,必须开启external-locking,也就是说注释掉skip-external-locking
skip-external-locking#最大的空闲等待时间,默认是28800,单位秒,即8个小时
#通过mysql客户端连接数据库是交互式连接,通过jdbc连接数据库是非交互式连接
#交互式连接超时时间,超过这个时间自动断开连接
interactive_timeout = 600
#非交互式连接超时时间,超过这个时间自动断开连接
wait_timeout = 600#它规定了内部内存临时表的最大值,每个线程都要分配。(实际起限制作用的是tmp_table_size和max_heap_table_size的最小值。)
#如果内存临时表超出了限制,MySQL就会自动地把它转化为基于磁盘的MyISAM表,存储在指定的tmpdir目录下
tmp_table_size = 96M
max_heap_table_size = 96M##慢查询,开发调式阶段才需要开启慢日志功能。上线后关闭
slow_query_log = OFF
#慢日志文件路径
slow_query_log_file = /home/mysql/mysql57/logs/slow_query.log
#该值是ON,则会记录所有没有利用索引来进行查询的语句,前提是slow_query_log 的值也是ON
log_queries_not_using_indexes = ON
#记录管理语句
log-slow-admin-statements
#MySQL能够记录执行时间超过参数 long_query_time 设置值的SQL语句,默认是不记录的。超过这个时间的sql语句会被记录到慢日志文件中
long_query_time = 2#默认使用InnoDB存储引擎
default_storage_engine = InnoDB[mysqld_safe]
#log-error=/var/log/mariadb/mariadb.log
pid-file=/home/mysql/mysql57/mariadb/mariadb.pid
log-error=/home/mysql/mysql57/mariadb/mariadb.log
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

进入mysql的bin目录:

cd /home/mysql/mysql57/bin./mysqld --user=mysql --basedir=/home/mysql/mysql57/ --datadir=/home/mysql/mysql57/data/ --lower-case-table-names=1 --initialize

其中:--lower-case-table-names=1 表示表名不区分大小写

得到的root的临时密码是I!>*29(NzFI3

如果因为配置问题导致初始化失败,只能删除data目录,然后重新初始化

修改support-files/mysql.server文件中5个路径,路径是你自己的安装路径

启动服务:

./mysql.server  start

启动报错,经查询是因为 /etc/my.cnf里面的datadir写错了。

修改后重启:

登录mysql,密码是刚才的初始化密码

报错原因是我在 /etc/my.cnf里写了socket的路径,而在/tmp目录下没有,创建一个软连接即可:

ln -s /home/mysql/mysql57/mysql.sock /tmp/mysql.sock

重新启动成功。

加入service启动项

cp mysql.server /etc/rc.d/init.d/mysqldsystemctl daemon-reloadservice mysqld restart

修改密码为root,实际应用场景,这个密码需要设计得更复杂,通常包含大小写字母、符号等

set password for root@localhost = password('root');
flush privileges;

查看目前的数据库:

show databases;

选择mysql数据库:

修改远程连接数据库并生效

update user set host='%' where user='root';flush privileges;

远程连接成功!

创建新用户:

CREATE USER 'wjz'@'LOCALHOST' IDENTIFIED BY '123';'%' - 所有情况都能访问
‘localhost’ - 本机才能访问
’111.222.33.44‘ - 指定 ip 才能访问

更改wjz用户可以远程访问数据库

alter user 'wjz'@'%' identified with mysql_native_password by '123';

创建新数据库:

CREATE DATABASE test;

用户授权:

grant all on 数据库名.数据库表 to 用户名@'%'  identified by "密码";
all 可以替换为 select,delete,update,create,drop
数据库名 所有的 用*
数据库表 所有的 用*

增加wjz用户访问mysql数据库的权限

grant all privileges on test.* to wjz@'%' identified by "password" ;flush privileges;

mysql5.7与8.0密码加密方式

1.mysql5.7默认是方式是mysql_native_password;
2.mysql8.0默认是caching_sha2_password

数据库备份:

方式1:

备份步骤

1、向所有表施加读锁FLUSH TABLES WITH READ LOCK;
2、备份数据文件mkdir /mysql_bak
cp -a /mysql57/* /mysql_bak3.模拟数据丢失并恢复数据丢失
rm -rf /mysql57l/*恢复数据
cp -a /mysql_bak/* /mysql57重启服务

方式2:

mysqldump

备份前应退出MySQL,转到在bin目录下键入:mysqldump -u (用户名) -p(密码) (所要备份的库名) > (将要备份到的文件名,通常文件类型为.sql)

同版本的数据库之间可以全库备份,不同版本数据库之间建议单库备份!!!

全库备份:

mysqldump -uroot -p --all-databases  --lock-tables=0 > all.sql.bak

参数说明:

--all-databases    指定所有的数据库   --lock-all-tables  表示锁定所有的表

-lock-tables=0 加上0这个参数,表示不锁表备份

单库备份:

mysqldump -uroot -p 数据库名 >testbak.sql

二、还原

方法一:

退出MySQL,转到在bin目录下键入:mysql  -u (用户名) -p(密码) (将要还原到的位置,填数据库名) < (备份文件名)

注意:首先,说还原最容易被忽略的地方,博主初学MySQL时就因为这而犯难。特别要注意被还原的文件中数据库或表中所包含的格式,必须满足在某数据库中还原的该数据库也具有同样格式!如:utf8格式,中英文符号,空格等等。

mysql  -u root -p  数据库名<all.sql.bak

​​​​​​mysql5.7数据库mysqldump和XBK备份和恢复_qq_47501059的博客-CSDN博客_mysql5.7数据备份

参考文章:

在linux下安装mysql5.7_开心lulu的博客-CSDN博客_centos7编译安装mysql5.7

systemctl命令_怎么把mysqld.service服务加入到systemctl_weixin_39758229的博客-CSDN博客

MySQL5.7版本Liunx系统下安装相关推荐

  1. liunx系统下安装crontab

    Ubantu系统下安装crontab 正常情况下需要先执行$:apt-get upgrade 进行升级 基本命令 安装:apt-get install cron 启动:service cron sta ...

  2. 可选版本 安装软件_【Linux软件】在Deepin系统下安装LibreOffice 6.1.4版本的方法

    在Deepin系统下安装LibreOffice 6.4.1版本的方法 使用的是Deepin系统,从深度应用商店看到有LibreOffice,安装了一下,发现ui是真的丑,就像是十年前的xp那样,记得前 ...

  3. Ubuntu18.04系统下安装IDL8.4版本(破解版)

    Ubuntu18.04系统下安装IDL8.4版本(破解版) 为了安装IDL,把硬盘都弄坏了的我已经不知道重装了多少遍IDL了/(ㄒoㄒ)/~~ 踩了N多的坑,遇到N多问题,这一次终于算是安装好,可以成 ...

  4. Ubuntu 20.04 LTS 系统下 安装Nvidia 显卡驱动、CUDA、cuDNN, 并可进行CUDA版本切换

    因为做深度学习的研究项目,为全新机器在Ubuntu 20.04 LTS 系统下 安装Nvidia 显卡驱动.Cuda.Cudnn.并进行CUDA版本切换 成功安装完成了,写个记录. 1. 安装Nvid ...

  5. mysql5.7.25安装包,Mysql5.7.25在windows下安装

    在网上看到了很多安装方法,也试了很多,md,网上资源多了也是有各种坑,这里只说在windows下安装mysql5.7.25 一.下载安装包 下载后解压到自己想要安装的目录,我的是:D:\MYSQL\ ...

  6. win10 mysql安装转圈_win10系统下安装MySQL的过程

    转自脚本之家原链接 WIN10系统MYSQL的下载与安装详细教程,记录如下 前两天ubuntu下安装mysql遇到了一些依赖问题,结果解决了半天,没解决好,还把我的系统搞坏了,小白破坏力好强. 到现在 ...

  7. win10系统下安装MySQL的过程

    转自脚本之家原链接 WIN10系统MYSQL的下载与安装详细教程,记录如下 前两天ubuntu下安装mysql遇到了一些依赖问题,结果解决了半天,没解决好,还把我的系统搞坏了,小白破坏力好强. 到现在 ...

  8. 在linux下怎么安装mysql,手把手教你在Linux系统下安装MySQL

    在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB. 1. 下载并安装MySQL官方的 Yum R ...

  9. windows系统下安装JDK8的教程图解

    这篇文章主要介绍了windows系统下安装JDK8的教程图解,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友可以参考下 一.下载: http://www.oracle.com/technetw ...

最新文章

  1. 我用1台笔记本模拟黑洞引力波,和超算2个月得出的结果只差1%
  2. CentOS 6.3下rsync服务器的安装与配置
  3. 以下用于数据存储领域的python第三方库是-『爬虫四步走』手把手教你使用Python抓取并存储网页数据!...
  4. python打开一个文件-在“Python”中如何“尝试/抓住”打开一个文件?
  5. 专科生学什么计算机专业好,平均月薪5000以上的专科专业,机械排在首位,计算机专业有点意外...
  6. mysql relaylog 慢_MySQL 主从同步延迟的原因及解决办法
  7. 如何理解离散傅里叶变换(一)实数形式傅里叶变换
  8. bvp解算器是什么_对数小史,以及为什么ln x的导数是1/x
  9. mpu9250姿态融合算法_基于投票方式的机器人装配姿态估计
  10. Symbian^3对标准C++的支持
  11. Redis进阶实践之十三 Redis的Redis-trib.rb脚本文件使用详解
  12. 诺基亚n1支持java功能_关于诺基亚N1你必须要了解这10个问题!
  13. 如何在手机上编码python_如何在Python中进行热编码?
  14. 【异步FIFO】格雷码和二进制的相互转换
  15. c语言 常微分方程 库,使用C语言解常微分方程CODE.docx
  16. c#与汇川机器人通讯_C#与西门子PLC通讯
  17. 怎么用电脑制作证件照?使用这个工具就可以了
  18. Windows中快速获取文件目录的方法
  19. OR值的意义和计算公式,和95% CI
  20. 云服务器环境安装、卸载与配置:mysql

热门文章

  1. 什么产品祛雀斑最有效
  2. compilation terminated.
  3. c语言字符串非对称加密,RSA算法C语言实现(支持任意位密钥)
  4. 计算机底层:循环冗余校验码CRC
  5. HTML学生个人网站作业设计:电影网站设计——威海影视网站首页(1页) HTML+CSS+JavaScript 简单DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载
  6. VVC中用到的新技术点
  7. 与运行其他家庭计算机共享打印机,Win10系统电脑如何在局域网中共享打印机?...
  8. JAVA03_21学习总结(RabbitMQ消息队列)
  9. DGL无法把图放在GPU上
  10. UG二次开发GRIP创建螺牙