来,拿走MySQL(数据库)安装教程,以后可以搞事情
wxin55 2024-11-26 09:36 6 浏览 0 评论
写在文前:之所以教给大家进行数据库的常规操作,是因为对于某些分析,它能显著节省时间。话不多说,开搞。
想学SQL可以私聊,即可获取链接。
Windows版本
安装
如果电脑之前安装过低版本mysql,那么在cmd命令下执行下面命令
sc delete MySQL ----先删除
安装包安装:
① 解压mysql-5.7.17-winx64.zip压缩包,
② 添加环境变量:
将MYSQL_HOME追加到系统的path变量的末尾, 注意用英文分号(;)隔开。:
追加内容:;%MYSQL_HOME%\bin;
③ 将MySQL添加到系统服务中并启动:
1) 右键“开始”——> “运行(R)”或者快捷键:“开始”+“R”(以管理员身份运行cmd)
2) cd 到MySQL所在的本地磁盘路径的bin目录,然后回车:
执行:
mysqld install MySQL --defaults-file="D:\mysql\mysql-5.7.17-winx64\my-default.ini"
(自己实际解压的位置)
启动:
net start mysql
此时会出现MySQL服务无法启动,服务没有报告任何错误。
解决办法:
执行:
mysqld --installmysqld --initializenet start mysql
④ 修改mysql密码
Mysql在启动后会初始化一个默认密码,该密码在mysql的安装目录data/xxx.err结尾的文件中。
在cmd下执行:
mysql -uroot -p
输入上面文件中的密码:lsix6)UhXhsJ
修改密码,执行:
SET PASSWORD = PASSWORD('root');
退出使用新密码root登录。
测试
在cmd下执行:
mysql -uroot -p
输入正确的密码后就能登录到mysql中。
Linux版本
安装
Linux衍生版本很多,诸如Redhat,centos,Ubuntu等。
本文采用Centos 7.5安装 Mysql5.7.27
1. 下载 MySQL
本文采用的Linux为是腾讯云 标准型S2 (1 核 2 GB) Centos 7.5 64位
2. 上传文件并解压到安装目录
?2.1 使用xftp上传到指定目录 我的目录为
/app/tool
?2.2 解压
tar zxf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
?2.3 重命名
mv mysql-5.7.27-linux-glibc2.12-x86_64 mysql
?2.4 复制到指定目录
cp -r mysql /usr/local/
?2.5 解压目录结构
3. 添加用户组,用专门管理mysql,提高安全
?3.1 新建组
groupadd mysql
?3.2 新建用户
useradd -r -g mysql mysql
4. 修改mysql目录权限
?4.1 进入mysql根目录
cd /usr/local/mysql/
?4.2 修改拥有者为mysql用户
chown -R mysql:mysql ./
5. 配置mysql服务
?5.1 将mysql/support-files下的mysql.server 复制到 /etc/init.d/下并自定义为mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
?5.2 修改该服务
vi /etc/init.d/mysql
5.3 修改的内容
basedir=/usr/local/mysqldatadir=/usr/local/mysql/data
6. 配置mysql的配置文件
在其他版本的mysql 里面 support-files下有默认的配置文件,而5.7.27这个版本没有,需要自己准备,下面提供一份简单基本配置
在/etc/ 下新建my.cnf ,有些可能会提示已经存在,因为默认装的数据库配置文件也在,直接覆盖就行
?6.1 进入etc目录
cd /etc
?6.2 删除my.cnf
rm -rf my.cnf
?6.3 新建my.cnf
vi my.cnf
?6.4 编辑的内容
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the# *** default location during install, and will be replaced if you# *** upgrade to a newer version of MySQL.[client]port = 3306default-character-set=utf8[mysqld]# 一般配置选项basedir = /usr/local/mysqldatadir = /usr/local/mysql/dataport = 3306character-set-server=utf8default_storage_engine = InnoDBsql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
7. 初始化数据库
?7.1 进入mysql/bin目录下
cd /usr/local/mysql/bin/
7.2 执行初始化
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
?7.3 遇到错误
./mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
7.4 执行以下命令
yum -y install numactl.x86_64
7.5 再执行初始化
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
?7.6 遇到错误
./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
7.7 执行以下命令
yum -y install libaio
?7.8 再执行初始化
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
?7.9 执行完毕后会自动生成默认的密码在执行记录中,注意复制出来
8. 启动mysql服务
?8.1 执行启动命令
service mysql start
8.2启动成功会提示 ok
9. 登录及远程配置
?9.1 登录
进入mysql/bin目录下执行./mysql -uroot -p
?9.2 输入密码
Enter password:输入默认的临时密码
?9.3 修改密码
set password=password('root');
9.4 设置远程访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root';flush privileges;
?9.5 开放端口
??9.5.1 开启端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
??9.5.2 重载防火墙
firewall-cmd --reload
10. 设置开机启动和环境变量(可以忽略)
?10.1 开机启动
??10.1.1 查看自启服务列表
chkconfig --list
?10.1.2 添加mysql服务到自启服务
chkconfig --add mysql
??10.1.3 设置自启
chkconfig mysql on
?10.2 环境变量
??10.2.1 为了不用在mysql/bin目录下才能连接mysql 将mysql/bin目录设置到环境变量中
vi /etc/profile
??10.2.2 修改的内容
# mysql environmentexport MYSQL_HOME=/usr/local/mysqlexport PATH=$PATH:$MYSQL_HOME/bin
10.2.3 更新环境变量
source /etc/profile
连接工具:navicat
使用navicate工具远程连接mysql,提高效率
连接成功后,可以开始操作你的数据库了。
下期,我们来一次excel骚操作,你肯定需要!
写在文末
清代彭端淑在《为学一首示子侄》说“天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。人之为学有难易乎?学之,则难者亦易矣;不学,则易者亦难矣。”
相关推荐
- ES6中 Promise的使用场景?(es6promise用法例子)
-
一、介绍Promise,译为承诺,是异步编程的一种解决方案,比传统的解决方案(回调函数)更加合理和更加强大在以往我们如果处理多层异步操作,我们往往会像下面那样编写我们的代码doSomething(f...
- JavaScript 对 Promise 并发的处理方法
-
Promise对象代表一个未来的值,它有三种状态:pending待定,这是Promise的初始状态,它可能成功,也可能失败,前途未卜fulfilled已完成,这是一种成功的状态,此时可以获取...
- Promise的九大方法(promise的实例方法)
-
1、promise.resolv静态方法Promise.resolve(value)可以认为是newPromise方法的语法糖,比如Promise.resolve(42)可以认为是以下代码的语...
- 360前端一面~面试题解析(360前端开发面试题)
-
1.组件库按需加载怎么做的,具体打包配了什么-按需加载实现:借助打包工具(如Webpack的require.context或ES模块动态导入),在使用组件时才引入对应的代码。例如在V...
- 前端面试-Promise 的 finally 怎么实现的?如何在工作中使用?
-
Promise的finally方法是一个非常有用的工具,它无论Promise是成功(fulfilled)还是失败(rejected)都会执行,且不改变Promise的最终结果。它的实现原...
- 最简单手写Promise,30行代码理解Promise核心原理和发布订阅模式
-
看了全网手写Promise的,大部分对于新手还是比较难理解的,其中几个比较难的点:状态还未改变时通过发布订阅模式去收集事件实例化的时候通过调用构造函数里传出来的方法去修改类里面的状态,这个叫Re...
- 前端分享-Promise可以中途取消啦(promise可以取消吗)
-
传统Promise就像一台需要手动组装的设备,每次使用都要重新接线。而Promise.withResolvers的出现,相当于给开发者发了一个智能遥控器,可以随时随地控制异步操作。它解决了三大...
- 手写 Promise(手写输入法 中文)
-
前言都2020年了,Promise大家肯定都在用了,但是估计很多人对其原理还是一知半解,今天就让我们一起实现一个符合PromiseA+规范的Promise。附PromiseA+规范地址...
- 什么是 Promise.allSettled()!新手老手都要会?
-
Promise.allSettled()方法返回一个在所有给定的promise都已经fulfilled或rejected后的promise,并带有一个对象数组,每个对象表示对应的pr...
- 前端面试-关于Promise解析与高频面试题示范
-
Promise是啥,直接上图:Promise就是处理异步函数的API,它可以包裹一个异步函数,在异步函数完成时抛出完成状态,让代码结束远古时无限回掉的窘境。配合async/await语法糖,可...
- 宇宙厂:为什么前端离不开 Promise.withResolvers() ?
-
大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发。1.为什么需要Promise.with...
- Promise 新增了一个超实用的 API!
-
在JavaScript的世界里,Promise一直是处理异步操作的神器。而现在,随着ES2025的发布,Promise又迎来了一个超实用的新成员——Promise.try()!这个新方法简...
- 一次搞懂 Promise 异步处理(promise 异步顺序执行)
-
PromisePromise就像这个词的表面意识一样,表示一种承诺、许诺,会在后面给出一个结果,成功或者失败。现在已经成为了主流的异步编程的操作方式,写进了标准里面。状态Promise有且仅有...
- Promise 核心机制详解(promise机制的实现原理)
-
一、Promise的核心状态机Promise本质上是一个状态机,其行为由内部状态严格管控。每个Promise实例在创建时处于Pending(等待)状态,此时异步操作尚未完成。当异步操作成功...
- javascript——Promise(js实现promise)
-
1.PromiseES6开始支持,Promise对象用于一个异步操作的最终完成(包括成功和失败)及结果值的表示。简单说就是处理异步请求的。之所以叫Promise,就是我承诺,如果成功则怎么处理,失败怎...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- ES6中 Promise的使用场景?(es6promise用法例子)
- JavaScript 对 Promise 并发的处理方法
- Promise的九大方法(promise的实例方法)
- 360前端一面~面试题解析(360前端开发面试题)
- 前端面试-Promise 的 finally 怎么实现的?如何在工作中使用?
- 最简单手写Promise,30行代码理解Promise核心原理和发布订阅模式
- 前端分享-Promise可以中途取消啦(promise可以取消吗)
- 手写 Promise(手写输入法 中文)
- 什么是 Promise.allSettled()!新手老手都要会?
- 前端面试-关于Promise解析与高频面试题示范
- 标签列表
-
- hive行转列函数 (63)
- sourcemap文件是什么 (54)
- display none 隐藏后怎么显示 (56)
- 共享锁和排他锁的区别 (51)
- httpservletrequest 获取参数 (64)
- jstl包 (64)
- qsharedmemory (50)
- watch computed (53)
- java中switch (68)
- date.now (55)
- git-bash (56)
- 盒子垂直居中 (68)
- npm是什么命令 (62)
- python中+=代表什么 (70)
- fsimage (51)
- nginx break (61)
- mysql分区表的优缺点 (53)
- centos7切换到图形界面 (55)
- 前端深拷贝 (62)
- kmp模式匹配算法 (57)
- jsjson字符串转json对象 (53)
- jdbc connection (61)
- javascript字符串转换为数字 (54)
- mybatis 使用 (73)
- 安装mysql数据库 (55)