linux 安装mysql 8.0_Linux安装mysql 8.0的详细方法介绍(代码示例)

本篇文章给大家带来的内容是关于Linux安装mysql 8.0的详细方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

经过一番努力下载mysql文件,我们可以开始Mysql8.0的安装了。

解压文件// 解压文件生成两个xz格式的压缩文件

$ tar -xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar

mysql-router-8.0.13-linux-glibc2.12-x86_64.tar.xz

mysql-test-8.0.13-linux-glibc2.12-x86_64.tar.xz

// 我们需要先删掉/移除原有文件,才可以继续解压,因为解压出来的.tar文件和.tar.xz文件重名

mv mysql-8.0.13-linux-glibc2.12-x86_64.tar ../

xz -d mysql-router-8.0.13-linux-glibc2.12-x86_64.tar.xz

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

// 为了方便查找,改个名字

mv mysql-8.0.13-linux-glibc2.12-x86_64.tar mysql8

环境配置

我们需要专门的mysql进程启动用户和权限管理:// 创建mysql系统用户和用户组

useradd -r mysql

// 给予安装目录mysql权限

chown mysql:mysql -R mysql8

配置自己的mysql配置文件,因为我有多个Mysql库,我手动指定很多参数:[client]

socket=/home/work/lnmp/mysql8/tmp/mysql.sock

default-character-set=utf8

[mysql]

basedir=/home/work/lnmp/mysql8/

datadir=/home/work/lnmp/mysql8/data/

socket=/home/work/lnmp/mysql8/tmp/mysql.sock

port=3306

user=mysql

# 指定日志时间为系统时间

log_timestamps=SYSTEM

log-error=/home/work/lnmp/mysql8/log/mysql.err

# 指定字符集为utf8,因为mysql8.0中的默认字符集为utfmb4,会和其他程序引起兼容性问题

default-character-set=utf8

[mysqld]

basedir=/home/work/lnmp/mysql8/

datadir=/home/work/lnmp/mysql8/data/

socket=/home/work/lnmp/mysql8/tmp/mysql.sock

port=3306

user=mysql

log_timestamps=SYSTEM

collation-server = utf8_unicode_ci

character-set-server = utf8

# 指定默认认证的加密方式,mysql8.0中默认方式为caching_sha2_password,引起老版本兼容性问题

default_authentication_plugin= mysql_native_password

[mysqld_safe]

log-error=/home/work/lnmp/mysql8/log/mysqld_safe.err

pid-file=/home/work/lnmp/mysql8/tmp/mysqld.pid

socket=/home/work/lnmp/mysql8/tmp/mysql.sock

[mysql.server]

basedir=/home/work/lnmp/mysql8

socket=/home/work/lnmp/mysql8/tmp/mysql.sock

[mysqladmin]

socket=/home/work/lnmp/mysql8/tmp/mysql.sock

这个里面我指定了错误日志的路径,在接下来的操作中,如果出现错误,除了查看终端显示的错误,还要记得去错误日志里查看详细的信息。

因为我指定了一些文件,所以需要提前创建:mkdir log

touch log/mysql.err

touch log/mysqld_safe.err

mkdir tmp

chown mysql:mysql -R ../*

数据库初始化

如果我们不初始化,直接使用bin/mysqld_safe启动会报错,因为我们需要初始化mysql环境,此时参考文章:$ bin/mysqld --initialize --user=mysql --basedir=/home/work/lnmp/mysql8/ --datadir=/home/work/lnmp/mysql8/data/

2018-12-13T06:15:03.159123Z 0 [System] [MY-013169] [Server] /home/work/lnmp/mysql8/bin/mysqld (mysqld 8.0.13) initializing of server in progress as process 1190

2018-12-13T06:15:05.255817Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: !/7oy-u%(XfZ

2018-12-13T06:15:06.135143Z 0 [System] [MY-013170] [Server] /home/work/lnmp/mysql8/bin/mysqld (mysqld 8.0.13) initializing of server has completed

提示中提示我们已经创建了root的用户和一个临时密码,同时初始化成功。

启动数据库

这时根据官方文档我们使用mysqld_safe 命令来启动:$ bin/mysqld_safe

2018-12-13T06:16:58.604154Z mysqld_safe Logging to '/home/work/lnmp/mysql8/log/mysql.err'.

2018-12-13T06:16:58.629249Z mysqld_safe Starting mysqld daemon with databases from /home/work/lnmp/mysql8/data

打开数据库

数据库进程已经启动,我们可以在新终端正常使用mysql数据库了:$ ps aux | grep mysql

root 2141 0.0 0.0 815844 5328 pts/0 S+ 14:16 0:00 /bin/sh bin/mysqld_safe

mysql 2319 1.0 0.5 1997492 374448 pts/0 Sl+ 14:16 0:00 /home/work/lnmp/mysql8/bin/mysqld --basedir=/home/work/lnmp/mysql8/ --datadir=/home/work/lnmp/mysql8/data --plugin-dir=/home/work/lnmp/mysql8//lib/plugin --user=mysql --log-error=/home/work/lnmp/mysql8/log/mysql.err --pid-file=/home/work/lnmp/mysql8/tmp/mysqld.pid --socket=/home/work/lnmp/mysql8/tmp/mysql.sock --port=3306

work 25258 0.0 0.0 105356 824 pts/1 S+ 14:18 0:00 grep mysql

但是直接使用mysql命令报错:$ bin/mysql -uroot

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

根据mysql.sock的作用的说明,我们指定mysql.sock路径即可:bin/mysql -S /home/work/lnmp/mysql8/tmp/mysql.sock -h localhost -uroot -p

Enter password:

修改初始密码

我们打开数据库后使用任何命令会提示我们修改初始的临时密码:mysql> show databases;

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

修改密码:mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

Query OK, 0 rows affected (0.05 sec)

重新连接,新密码生效。

链接全局命令

此时,我们调用mysql只能用路径/home/work/lnmp/mysql8/bin/mysql或相对路径,需要链接为全局命令:$ ln -s /home/work/lnmp/mysql8/bin/mysql /usr/bin/

$ ln -s /home/work/lnmp/mysql8/bin/mysql_safe /usr/bin/

指定socket文件

在8.0这个版本,我尝试了很多方法试图在my.cnf中修改mysql命令查询的默认socket路径,依然不成功,所以只好在默认路径里面链接socket文件了:ln -s /home/work/lnmp/mysql8/tmp/mysql.sock /tmp/

然后我们再调用mysql命令就不会报错了。

重启数据库

在过程中我们调试参数可能需要重启数据库:// 杀死进程,相当于停止

cat tmp/mysqld.pid | xargs kill

// 正常启动mysql

bin/mysqld_safe --defaults-file=/home/work/lnmp/mysql8/my.cnf

新增用户&赋予权限

在mysql8里,我创建用户并赋值,结果报错:mysql > grant all privileges on *.* to root@localhost indentified by '123456';

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'indentified by '123456'' at line 1

根据网上资料,是由于Mysql8将创建账户和赋予权限的操作分开了:// 创建账户

create user '用户名'@'访问主机' identified by '密码';

// 赋予权限(修改权限时在后面加with grant option)

grant 权限列表 on 数据库 to '用户名'@'访问主机' ;

// 刷新权限

flush privileges;

总结

经过解压文件,创建mysql用户和用户组,配置my.cnf配置文件,修改权限,数据库初始化、启动,打开数据库,修改初始密码,链接全局命令和指定socket文件路径,所有的安装工作都已经完成了。

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

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

相关文章

亚信科技笔试面试2019届

首先笔试 笔试超级难 jsp 数据库 java 很多要百度 记得多找几个小伙伴哦~ 面试 一面: 技术面 讲一下你的项目 根据你的项目提问 面试官: 有哪些排序算法 我:冒泡 面试官: 只有一个冒泡? 我: 还有选择吧(我怕手写 &am…

Xamarin支持微软HoloLens混合现实开发

今年年初,微软以4亿美元的价格收购移动开发工具Xamarin,Xamarin允许开发者编写跨平台应用,提供Android、iOS和Windows10上原生应用体验。微软收购Xamarin后,Xamarin变得更加开放,比如Visual Studio用户免费使用&#x…

mysql fpmmm_zabbix配fpmmm(mpm)数据传送不了问题解决

我们环境用zabbix mpm来监控mysql,不过最近官网已经不叫mpm了,而是叫fpmmm,理由为:fpmmm is the successor of mpm. mpm was renamed to fpmmm because of the naming conflict with the Apache Multi-Processing Modules (MPM).好…

各种面试题(一)

转载自 各种面试题(一)1.说说你对缓存的理解? 1.使用缓存的目的: 提高应用程序的性能,减少到数据库的访问次数 2.缓存的介质(缓存的存储位置) 内存:临时性存储空间 存取数据快 减少网络通信量 硬盘&#…

浙大中控笔试面试2019届

学校招聘会投递简历 过了几天 叫我去滨江面试 先笔试 没人监考 (但是面试的时候会抽几道笔试题问你) 面试官是三个 吓尿了 面试官: 我: 面试官: JDBC会吗 讲一下 我: DriverManager获取连接对象..…

新闻发布项目——业务逻辑层(categoryTBService)

package bdqn.newsManageServlet.Service;import java.util.List;import bdqn.newsManageServlet.entity.categoryTB; import bdqn.newsManageServlet.entity.newsTb;/*** 新闻类别的业务逻辑层的接口* author Administrator**/ public interface categoryTBService {// 删除,根…

python初学函数_Python初学者速收藏!面向Python初学者的知识-函数

什么是函数式编程?函数式编程是一种编码范例,其中我们定义要做什么而不是执行什么动作。这个想法最初是从数学中采用的,我们定义输入到函数中的输入以及我们期望从中获得的输出。 函数式编程很少依赖状态管理-这意味着无论输出多少&#xff0…

通用业务流水号功能设计

有一段时间没有思考代码相关的工作了,最近项目经常碰到不同业务流水号的生成,下面的技术人员每次都针对流水号生成写一些复杂的代码;为了解放以后这方面的工作于是动了一下脑子想一个动态可配置的流水号生产组件,虽然没写代码一段…

时代银通笔试20181023

Java4种访问控制符 Java中的四个访问控制符权限从高到低分别为private、protected、包访问权限和private。访问控制符属于类所有,所以在方法中不能使用访问控制符修饰。访问控制符只能修饰类中的成员变量、成员方法和类本身。 1、private 修饰的成员变量&#xff…

总结Java常见面试题和答案

转载自 总结Java常见面试题和答案 int和Integer有什么区别? 答:int是java的原始数据类型,Integer是java为int提供的封装类,java为每个原始数据类型都提供了封装类。String和StringBuffer的区别? 答:String是不可变的对象&…

ubuntu 13.04 mysql_Ubuntu13.04 下MySQL5.6安装过程

1.mysql下载:按照自己系统选择 http://www.mysql.com/downloads/installer/2.mysql依赖包安装 (libaio1.so) 若已安装可以省略:sudo apt-get install libaio1sudo apt-get install cmake libncurses5-dev bison g (可不选,有问题时再执行)3.组及用户创建:sudo gro…

Exceptionless 本地部署

前两天看到了这篇文章免费开源分布式系统日志收集框架 Exceptionless,亲身体会了下,确实不错,按照官方的文档试了试本地部署,折腾一番后终于成功,记下心得在此,不敢独享。 本地部署官方wiki .NET 4.6.1 这个…

java文件读写

java.io几种读写文件的方式 一、Java把这些不同来源和目标的数据都统一抽象为数据流。 Java语言的输入输出功能是十分强大而灵活的。 在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作,网络…

经典笔试编程题--Java实现

转载自 经典笔试编程题--Java实现1.输入一个正数n,输出所有和为n的连续正数序列。 分析:设定两个指针,min指向和为n的连续正数序列的最小值,max指向和为n的连续正数序列最大值。sum表示真正的和。 初始情况下,min、max和sum 都指…

java虚拟机的内存模型_JVM(Java虚拟机)内存模型(转载/整理)

Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。JVM是为Java字节码定义的一种独立于具体平台的规格描述,是Java平台独立性的基础。对于字节码指令集不感兴趣,直接看寄存器。JVM设置了4个最为常用的寄存器。它们是…

如果你也会C#,那不妨了解下F#(6):面向对象编程之“类”

前言 面向对象的思想已经非常成熟,而使用C#的程序员对面向对象也是非常熟悉,所以我就不对面向对象进行介绍了,在这篇文章中将只会介绍面向对象在F#中的使用。 F#是支持面向对象的函数式编程语言,所以你用C#能做的,用F#…

新华三

百度 新华三 笔试题目 http://www.663395.net/xxs163090/ https://wenku.baidu.com/view/f61a1161ae1ffc4ffe4733687e21af45b307fe7d.html https://blog.csdn.net/qq_36562999/article/details/81436356 https://blog.csdn.net/kyyee/article/details/78090954?locationNum4&…

java面试题及答案(基础题122道,代码题19道)

转载自 java面试题及答案(基础题122道,代码题19道) JAVA相关基础知识 1、面向对象的特征有哪些方面 1.抽象:  抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打…

java aqs详解_Java AQS底层原理解析

AQS底层原理AQS(AbstractQueuedSynchronizer)是一个抽象同步队列,JUC(java.util.concurrent)中很多同步锁都是基于AQS实现的。AQS的基本原理就是当一个线程请求共享资源的时候会判断是否能够成功操作这个共享资源,如果可以就会把这个共享资源设置为锁定状…

在.NET Core程序中设置全局异常处理

以前我们想设置全局异常处理只需要这样的代码: 1 AppDomain currentDomain AppDomain.CurrentDomain;2 currentDomain.UnhandledException new UnhandledExceptionEventHandler(MyExceptionHandler); 但是在.NET Core中并没有AppDomain的相关实现,至少…